SkillX:为智能体自动构建技能知识库 SkillX: Automatically Constructing Skill Knowledge Bases for Agents
通过分层技能表示和自动化构建流程,让LLM智能体高效复用经验
前置知识
ReAct范式
ReAct(Reasoning + Acting)是一种结合推理和行动的智能体交互范式。智能体在每一步先进行推理分析,然后执行具体行动,再观察环境反馈,如此循环直至任务完成。例如在API调用场景中,智能体会先思考需要调用哪个函数以及传入什么参数,再执行函数调用,最后根据返回结果决定下一步行动。这种范式将显式推理与工具使用紧密结合,使智能体能够动态规划多步骤任务。
SkillX的工作基础是智能体通过ReAct范式执行任务并收集轨迹,理解这一范式对于理解如何从执行轨迹中提取技能至关重要。
轨迹蒸馏
轨迹蒸馏是指从智能体执行任务产生的完整轨迹(包括观察、推理、行动、环境反馈等序列)中提炼出可复用的知识和模式的过程。这个过程通常涉及去除冗余信息(如错误尝试、探索性动作),提炼关键步骤,并将具体实例抽象为通用模式。例如,从多次成功认证Spotify账户的轨迹中,可以蒸馏出先检查存储的凭据,再使用凭据登录的通用认证技能。
SkillX的核心是从成功轨迹中提取三层技能,理解轨迹蒸馏的概念有助于理解技能提取的动机和方法。
语义检索
语义检索是一种基于文本语义相似度而非精确匹配的信息检索方法。它通过将文本(如任务查询、技能描述)映射到高维向量空间,然后用余弦相似度等度量计算向量间的相似程度,从而找到语义上最相关的内容。例如,当用户询问如何获取推荐艺术家时,系统会检索与Spotify推荐、获取艺术家列表等语义相关的技能,即使具体用词不完全一致。这种方法提高了检索的鲁棒性和泛化能力。
SkillX在执行新任务时需要从技能库中检索相关技能,理解语义检索的原理和实现细节对于理解SkillX的使用机制至关重要。
少样本学习
少样本学习是指模型通过观察少量示例来学习新任务或概念的能力。在LLM智能体场景中,这通常意味着在提示词中提供几个成功执行相似任务的轨迹作为示例,帮助模型理解应该如何处理当前任务。例如,通过提供2-3个发送邮件并设置提醒的成功轨迹,模型可以学会处理类似的多步骤API调用任务。这种方法避免了大量标注数据的需求,但受限于示例质量和相关性。
SkillX与ExpeL等基线方法的对比涉及经验表示形式,理解少样本学习有助于理解不同方法在经验复用上的差异。
研究动机
现有LLM智能体的自进化范式存在三个结构性问题,导致经验学习效率低下。首先,孤立学习问题:不同智能体在执行相同任务时反复从零开始探索和提取经验,导致大量冗余。例如,多个智能体都需要独立学习如何调用Spotify API进行认证,每个都经历相似的试错过程。其次,经验泛化能力弱:在复杂环境中(如AppWorld包含457个API端点),高质量训练数据稀缺,从有限数据中挖掘的经验难以迁移到新任务。例如,智能体学会了如何处理特定用户的播放列表,但无法泛化到其他用户或类似场景。第三,模型能力瓶颈:当经验仅通过智能体自身的探索和反思来获取时,最终能够提取的知识被智能体当前的能力边界所限制。例如,能力较弱的智能体可能永远无法发现某些高效的API调用组合,导致其经验库质量低下。
本文的目标是本文的具体目标是构建一个即插即用的技能知识库,该知识库能够跨不同能力的智能体和不同环境复用,从而提升智能体在复杂长周期任务中的性能和执行效率。具体而言,SkillX旨在设计一种能够被广泛复用的经验表示形式,并提供一个完全自动化的框架来构建和优化这样的技能库,使得即使能力较弱的基座智能体也能通过使用这个预构建的技能库获得显著的性能提升。
与已有工作不同的是,本文的独特切入角度是提出分层技能表示,将原始轨迹转换为战略规划、功能技能和原子技能三个层级的层次结构,而不是将经验表示为单一的行为模式。与现有的insights、workflows或trajectories等表示形式不同,SkillX的分层设计同时提供了强可迁移性、高效检索和直接可执行性。此外,SkillX是完全自动化的构建框架,与Claude Skills等依赖长上下文逐步揭示的方法不同,SkillX采用层次化、条目化的表示,可以通过轻量级检索模块存储和检索,并一次性注入到系统提示中,更容易在不同基座模型间迁移。
核心方法
SkillX的整体思路是从智能体的执行轨迹中分层提取技能,然后通过迭代精炼和探索性扩展持续改进技能库质量。具体而言,首先使用一个强基座智能体(GLM-4.6)在训练任务上执行并收集轨迹,然后从成功轨迹中提取三层技能:规划技能(捕获高层次任务组织)、功能技能(实现可复用的基于工具的子程序)和原子技能(编码执行导向的使用模式和约束)。提取的技能通过精炼算子(合并和过滤)进行优化,最后通过经验引导的探索主动扩展技能空间,以覆盖种子训练数据之外的工具和行为。整个过程完全自动化,最终生成的技能库可以被直接插入到不同能力的基座智能体中,无需额外训练。
核心创新点是提出了分层技能表示和相应的自动化构建流程。与现有的单一经验表示不同,SkillX将经验组织为规划、功能、原子三个互补的层级,使得技能既简洁又可组合,同时对分布变化具有鲁棒性。这种分层设计的本质区别在于它将复杂任务分解为不同抽象级别的可复用组件,规划技能处理整体任务组织,功能技能实现特定子任务,原子技能补充工具使用的细粒度约束和模式。这种设计使得技能在不同能力的智能体之间具有更好的可迁移性。
方法步骤详情
SkillX的完整流程包含四个主要步骤。第一步是Rollout和技能提取:给定任务q,首先进行m次执行以收集轨迹,然后使用技能提取器f从这些轨迹中提取多层技能。规划技能提取通过压缩轨迹为有序的高级步骤集合,并过滤掉非本质转换(如探索、回溯、试错)。功能技能提取利用先前提取的规划技能作为指导,迭代提取与每个子任务目标对齐的功能技能。原子技能提取提示模型从轨迹中提炼工具调用模式、典型参数配置和实用说明。第二步是迭代技能精炼:在第k次迭代中,从当前技能库D^(k)开始,在训练任务集上重复执行并提取多层技能,然后应用精炼算子phi(包括技能合并和技能过滤),最后更新技能库为D^(k+1) = D^(k) ∪ phi[S^(k)]。第三步是探索性技能扩展:基于种子集上的执行经验(如智能体可靠使用的工具、高失败率的工具、从未调用的工具)引导探索,鼓励智能体与环境交互并使用更广泛的工具。收集探索轨迹后,从这些交互中合成新任务Q_syn,然后在生成的数据上重新运行技能获取和精炼流程以迭代扩展技能库。第四步是技能使用:对于新任务,首先检索相关的规划技能P(q) = rho(q),然后提示模型基于当前任务重写任务特定的伪计划ptilde(q) = LLM_rewrite(q, P(q))。对于伪计划的每个步骤,检索相关的功能和原子技能S_i = rho(step_i),去重后让模型自我过滤以保留适用的技能S_q。最终智能体通过检索的技能集S_q生成轨迹。
技术新颖性
SkillX的技术新颖性体现在三个方面。首先,分层技能表示创新性地将经验组织为战略规划、功能技能和原子技能三个层级,同时提供强可迁移性、高效检索和直接可执行性,这与现有的单一经验表示有本质区别。其次,迭代精炼机制通过技能合并和技能过滤持续改进技能库质量,其中技能合并将语义相似的技能聚合为一个更通用的技能,技能过滤通过通用过滤器和工具特定过滤器两阶段验证确保技能的高精度。第三,经验引导的探索策略主动扩展技能空间,以覆盖种子训练数据之外的工具和行为,与随机探索相比能够发现更多样的技能。这三个技术创新共同构成了一个完全自动化、可扩展的技能知识库构建框架。
实验结果
实验结果表明SkillX在三个复杂的长周期用户交互基准测试上一致性地提升了基座模型的性能。对于Qwen3-32B模型,SkillX在BFCL-v3的Avg@4指标上从53.67%提升到63.67%,提升了约10个百分点;在AppWorld的Avg@4指标上从27.68%提升到35.12%。对于Kimi-K2-Instruct-0905模型,SkillX在AppWorld的Avg@4指标上从49.70%提升到56.40%,在tau2-Bench的三个子域(Retail、Airline、Telecom)上都有显著提升,其中Telecom子域从77.50%提升到82.50%。对于更强的GLM-4.6模型,SkillX在BFCL-v3的Avg@4指标上从76.67%提升到79.50%,在AppWorld的Avg@4指标上从60.27%提升到64.88%。这些结果表明,技能库不仅能够提升较弱模型的性能,还能进一步增强强模型的执行效率。分析还发现,不同模型对不同技能组合的偏好存在差异:GLM-4.6在使用所有技能类型时表现最佳,K2在功能技能加原子技能组合下表现最佳,而Qwen3-32B在仅启用规划技能时达到最佳性能,这进一步证明了多层技能设计能够全面覆盖不同模型执行智能体任务所需的能力。迭代精炼和技能扩展组件在适当设置下都能带来额外增益。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| BFCL-v3 (Qwen3-32B) | Avg@4 | 63.67% | ExpeL: 57.33% | 6.34个百分点 |
| BFCL-v3 (Qwen3-32B) | Pass@4 | 82.00% | ExpeL: 77.67% | 4.33个百分点 |
| AppWorld (Qwen3-32B) | Avg@4 | 35.12% | ExpeL: 32.87% | 2.25个百分点 |
| AppWorld (Kimi-K2) | Avg@4 | 56.40% | ExpeL: 52.53% | 3.87个百分点 |
| tau2-Bench Telecom (Kimi-K2) | Pass@1 | 82.50% | ExpeL: 78.75% | 3.75个百分点 |
| BFCL-v3 (GLM-4.6) | Avg@4 | 79.50% | ExpeL: 78.83% | 0.67个百分点 |
局限与改进
作者承认SkillX目前最自然地适用于技能可以锚定在相对稳定的工具环境中的场景。提取的技能与特定的工具模式相关联,这使得在实质不同的领域或工具生态系统之间的直接复用更加困难。此外,当前研究主要集中在使用工具的智能体环境,更多的用户交互场景,特别是没有函数调用的对话场景,还不是本研究的主要关注点。我观察到另一个潜在局限性是SkillX依赖于强基座智能体(GLM-4.6)来提取技能,如果强智能体的能力在某些任务上受限,可能会影响提取的技能质量。此外,技能库的构建需要多个迭代和探索过程,计算成本较高,这可能限制了在实际部署中的可扩展性。
独立分析的弱点
独立分析的第一个弱点是SkillX在跨环境迁移方面的局限性。由于提取的技能与特定的工具模式相关联,当面对新的领域或工具生态系统时,技能库的复用性会显著降低。改进方向可以是设计跨环境抽象层,将技能与环境细节解耦,或者开发环境适配机制,自动将技能映射到新环境的工具模式。第二个弱点是SkillX在对话场景中的适用性有限。当前研究主要关注工具使用场景,对于没有函数调用的纯对话任务,技能表示的效力尚未充分验证。改进方向可以扩展技能表示以包括对话策略、话题切换等软技能,或者设计混合技能表示同时支持工具使用和对话交互。第三个弱点是技能库的构建成本较高,需要多个迭代和探索过程。改进方向可以开发更高效的技能提取和精炼算法,或者利用弱监督和主动学习减少对大规模轨迹的依赖。
未来方向
作者提出的未来研究方向包括发布由SkillX构建的优化技能库以促进进一步的社区探索,以及在更多样的基准测试和实际应用场景中验证SkillX的有效性。基于当前成果可延伸的研究方向包括:一是开发动态技能更新机制,使技能库能够在智能体执行新任务时实时更新和适应,而不是仅依赖预构建的静态库;二是研究技能库的压缩和优化,减少存储和检索开销,使技能库更易于部署和扩展;三是探索技能库与强化学习的结合,通过试错反馈进一步优化技能的执行策略;四是研究技能库的可解释性和可控性,使用户能够理解和干预智能体的技能使用决策;五是开发跨领域技能迁移的通用框架,解决不同环境和工具生态系统之间的技能复用问题。
复现评估
论文指出代码将很快公开发布在https://github.com/zjunlp/SkillX,这为复现提供了基础。实验使用了三个公开可用的基准测试:BFCL-v3、AppWorld和tau2-Bench,每个基准测试都有明确定义的训练和测试集划分。论文详细描述了实现细节,包括技能提取时的温度设置(0.9)、每个训练任务独立采样四个轨迹、环境反馈超过1500个token时进行总结、使用DBSCAN聚类提取技能(余弦相似度阈值0.9)、每个聚类最多保留15个技能、最多三轮迭代精炼等。技能检索使用FAISS构建语义向量存储(HNSW索引),检索Top-100最近技能后应用余弦相似度阈值0.45过滤,并使用MMR进行多样性感知选择。这些详细的超参数设置为复现提供了充分信息。从算力需求来看,构建技能库需要多次迭代和探索,计算成本较高,可能需要较强的GPU资源。总体而言,SkillX的复现难度中等,主要挑战在于需要较强的基座模型(GLM-4.6)和充足的计算资源来执行多轮迭代和探索。
论文图表
这张图对比了Claude Skills和SkillX两种不同的技能表示方法。左侧展示了Claude Skills的长上下文逐步揭示格式,需要复杂的沙箱系统和多次交互,这对鲁棒推理提出了挑战。右侧展示了SkillX采用的层次化、条目化表示,可以通过轻量级检索模块存储和检索,并一次性注入到系统提示中,使其更容易在不同基座模型间迁移。
这张图对理解论文至关重要,因为它清晰地说明了SkillX与现有技能表示方法的本质区别,突出了SkillX在可移植性和实用性方面的优势。这有助于读者理解为什么SkillX的分层设计是创新和必要的。
这个表格展示了SkillX三个核心组件的消融实验结果。Vanilla-Iter1仅使用多层技能设计,Vanilla-Iter2和Vanilla-Iter3额外加入了技能精炼,Expand-Iter1使用多层技能设计和技能扩展,Expand-Iter2和Expand-Iter3结合了所有三个组件。结果在BFCL-v3和AppWorld上报告Avg@4和Pass@4指标,表明技能精炼和技能扩展可以在适当设置下带来额外增益,但SkillX对其潜在的经验表示具有鲁棒性。
这个表格对理解论文至关重要,因为它提供了对SkillX每个组件贡献的定量分析,帮助读者理解多层技能设计、技能精炼和技能扩展的相对重要性以及它们的交互效应。这对于理解SkillX的设计决策和优化空间非常关键。