SkillGen:经过验证的推理时代理技能合成
摘要
本文介绍了 SkillGen,这是一个多智能体框架,通过对比成功和失败的轨迹来合成和验证可复用的推理时大语言模型(LLM)代理技能。该方法确保技能可审计,并通过实证验证其对代理性能具有净正面影响。
arXiv:2605.10999v1 公告类型:新论文
摘要:技能是一种在不进行重新训练的情况下提升大语言模型(LLM)代理能力的有前景的方法,同时保持所添加过程的可复用性和可控性。然而,高质量技能目前仍主要依赖人工编写。我们引入了 SkillGen,这是一个多智能体框架,能够从基础代理生成的轨迹中合成单一且可审计的技能。其输出为人类可读的工件,在使用前可供检查。SkillGen 不仅是对轨迹的简单总结,而是通过对成功和失败轨迹进行对比归纳,来识别可复用的成功模式、反复出现的失败模式,以及那些出现在邻近成功案例中却缺失于失败案例的行为。随后,SkillGen 生成候选技能并迭代优化该技能。SkillGen 的一个关键创新在于,我们将代理技能建模为干预措施,以实证验证技能对整体性能的净影响。具体而言,我们在相同实例上比较有技能和无技能的结果,从而同时考虑到修复(技能修正了基线失败的情况)和回归(技能导致基线成功失败的情况)。在广泛的代理和数据集上,SkillGen 一致性地提升了未见数据的性能,优于现有的技能生成基线方法,并产生了能够在不同模型间迁移的技能。
查看缓存全文
缓存时间: 2026/05/13 06:26
# SkillGen:经过验证的推理时代理技能合成
来源:https://arxiv.org/html/2605.10999
作者:Yuchen Ma¹, Yue Huang²¹¹footnotemark:1, Han Bao², Haomin Zhuang², Swadheen Shukla³, Michel Galley³, Xiangliang Zhang², Stefan Feuerriegel¹
¹慕尼黑机器学习中心,慕尼黑大学 ²圣母大学 ³微软研究院
###### 摘要
技能是一种有前景的方法,可以在不重新训练模型的情况下提升大语言模型(LLM)智能体的能力,同时保持所添加流程的可复用性和可控性。然而,高质量的技能目前仍主要依靠手工编写。我们提出了 **SkillGen**,这是一个多智能体框架,能够从基础智能体生成的轨迹中合成单一的可审计技能。其输出是人类可读的工件,在使用前可以进行检查。SkillGen 不仅仅是对轨迹进行总结,而是利用成功和失败轨迹的对比归纳,识别可复用的成功模式、常见的失败模式,以及那些出现在附近成功案例中但缺失于失败案例中的行为。随后,SkillGen 生成候选技能并对其进行迭代优化。SkillGen 的一个关键创新在于,我们将智能体技能建模为干预措施,以实证验证技能对整体性能的净效应。具体而言,我们在相同的实例上比较有无技能的结果,从而同时考虑修复(技能修正了基线失败的情况)和回归(技能破坏了基线成功的情况)。在广泛的智能体和数据集上,SkillGen consistently 提升了保留集性能,优于现有的技能生成基线,并且生成的技能能够跨模型迁移。
## 1 引言
大型语言模型(LLMs)越来越多地被用于解决复杂的多步任务(Schick et al., 2023; Qin et al., 2024; Yao et al., 2023; Wang et al., 2023a)。形式化此类行为的一种常见方式是通过**技能**:可复用的、推理时的程序,它们编码了特定任务的指导,如指令、可执行代码和领域知识,而不修改模型权重(Zhang et al., 2025; Anthropic, 2025)。技能具有模块化且可审计的特性:因为它们是可读的推理时工件,而非权重更新或提示搜索,人们可以检查其编码的过程,直接修改它,并在部署前测试其效果。然而,在实践中,高质量的技能仍然主要依靠手工编写。
自动化技能合成旨在从智能体的经验中学习可复用的技能(Shin et al., 2023; Zhao et al., 2024; Ni et al., 2026; Alzubei et al., 2026; Wang et al., 2026a; Zhang et al., 2026)。然而,现有方法存在两个关键缺陷。首先,现有方法主要从成功轨迹中学习,即使考虑到失败,通常也是孤立地总结失败,而不是将其与同一任务上附近的成功案例进行对比。因此,先前工作错过了成功与失败之间的关键对比信号——即智能体在相似上下文中正确执行了什么,以及在失败的展开中遗漏了什么。例如,成功轨迹可能包含一个中间验证步骤,而失败的尝试中缺少该步骤,但仅基于成功的学习无法隔离出这种中间验证的重要性,也不会将其放入可复用的模式中。其次,现有方法没有明确*验证*生成技能的实证效益。虽然技能可能修复某些失败,但它也可能在智能体以前正确解决的案例中引入新的失败模式。因此,技能合成从根本上来说是一个干预问题,需要比较有和无候选技能时对智能体性能的净效应。此外,这种性能评估对于最终构建以原则性方式迭代优化候选技能的方法也是必要的。
我们引入了 **SkillGen**:一个*用于自动推理时技能合成的多智能体框架*(见图1)。SkillGen 以现有的 LLM 轨迹数据集为输入,并派生出一个单一的可审计技能:这是一种可读的干预措施,其任务上下文、成功程序和失败教训可以进行检查,且其实证净效应在部署前得到验证。输入数据集可以在基线 elicitation(激发)阶段收集,以编译成功和失败的轨迹。我们的框架通过三个专门的智能体运行:(1)一个*对比归纳智能体*分析输入轨迹以提取可复用的成功模式并*识别*常见的失败模式,旨在揭示成功与失败展开之间的对比。因此,它输出一个紧凑且可解释的摘要,包含任务诊断信息。(2)在一个生成-验证-优化循环中,诊断信息被转化为候选技能,然后根据反馈(使用*生成智能体*和*验证智能体*)迭代优化技能。最终的技能通过测量对最终保留集性能的净效应来选择。这确保了所选技能提升整体性能,从而考虑了“修复”(即技能修正失败时)和“回归”(即技能破坏正确案例时)。据我们所知,SkillGen 是第一个将推理时技能合成建模为干预问题的智能体框架,以确保对性能产生积极的、经实证验证的效果。
我们还在广泛的交互、科学、编码和其他工具使用基准上展示了 SkillGen 的有效性。我们使用几种开源权重和专有基础 LLM 进一步评估了 SkillGen。作为主要结果,SkillGen 提高了所有八个评估的基础 LLM 的平均准确率,保留集增益范围从 +3.27 到 +10.08 个百分点。我们将 SkillGen 与最先进(SOTA)的技能生成基线(Ni et al., 2026; Wang et al., 2026a; Alzubei et al., 2026; Zhang et al., 2026)进行了比较,其中 SkillGen consistently 保持正值,并以显著优势实现了最大的平均改进。我们的消融实验表明,对比归纳、验证引导的优化以及验证门控各自都对性能提升做出了贡献。我们还进行了跨模型迁移分析,以证明生成的技能具有通用性,不依赖于产生它们的 LLM。
**贡献。** 我们的主要贡献有三点:
1. 我们为自动推理时技能合成制定了一个通用的端到端学习任务:生成单一的可审计技能以改进基础智能体。
2. 我们引入了 SkillGen,一个多智能体框架,通过对比归纳从失败和成功轨迹中学习,然后生成新的候选技能并进行迭代优化和验证。最终选择的技能对整体性能具有积极的净效应。
3. 我们提供了广泛的实证研究,以展示一致且显著的保留集性能提升。SkillGen 优于最先进的技能生成基线,并产生无需参数更新即可跨模型迁移的技能。
## 2 预备知识
我们将推理时技能视为*干预措施*,这些干预措施修改基础智能体的行为,从而改变其任务性能。这种观点自然地引出了在同一输入上有无给定技能的结果比较。
**任务设置。** 设 $\mathcal{X}$ 为输入空间,$p$ 为 $\mathcal{X}$ 上的任务分布,$\mathcal{T}$ 为智能体轨迹空间。轨迹 $\tau \in \mathcal{T}$ 由 LLM 交互的完整序列组成,包括消息、工具调用、环境观察和最终输出。对于技能合成,我们将训练数据分为:(i) 一个归纳子集 $\mathcal{D}_{\mathrm{ind}}=\{x_i\}_{i=1}^n$,用于分析智能体行为;以及 (ii) 一个构建时验证子集 $\mathcal{D}_{\mathrm{ver}}=\{\tilde{x}_j\}_{j=1}^m$,用于评估和选择候选技能。我们考虑一个*基础智能体* $\mathcal{A}$,它将输入映射为轨迹,我们寻求对其进行改进。我们将 $\mathcal{A}$ 建模为随机轨迹核 $P_{\mathcal{A}}(\tau \mid x; \eta)$,其中 $x$ 是任务实例,$\eta$ 是加载到智能体上下文中的推理时干预。空干预 $\eta=\varnothing$ 定义了“无技能”行为,定义为 $\tau^{0}(x) \sim P_{\mathcal{A}}(\cdot \mid x; \varnothing)$。
为了形式化结果 $Y$,我们定义一个任务级评估器 $\mathcal{E}: \mathcal{X} \times \mathcal{T} \rightarrow [0,1]$。在实践中,这可能是 LLM-as-a-judge、基准分数或与某些环境结果的检查。因此,评估器为每个实例-轨迹对分配成功概率。观察到的结果为 $Y(x, \tau) \sim \operatorname{Bernoulli}(\mathcal{E}(x, \tau))$,确定性评估器作为特例 $\mathcal{E}(x, \tau) \in \{0,1\}$。对于任何实例 $x$,我们定义基线结果 $Y^{0}(x)=Y(x, \tau^{0}(x))$;对于归纳实例,我们写 $\tau_i^0 = \tau^0(x_i)$,并让 $y_i^0$ 表示基础智能体的实现结果。
**技能干预:** 我们将候选*技能*定义为推理时干预 $s=(u, a, \mathcal{P}, \mathcal{R})$,其中 $u$ 是结构化提示,$a$ 是任务元数据(例如,任务描述),$\mathcal{P}$ 是可选的可执行脚本集,$\mathcal{R}$ 是可选的辅助文档集合。这些组件共同定义了 SkillGen 考虑的技能空间。
我们将技能建模为改变智能体行为及其结果的干预。为了对技能学习进行 comparative assessment(比较评估),我们采用潜在结果框架(Rubin, 2005)作为形式化治疗效应的原则性方法。对于任何输入 $x$ 和候选技能 $s$,我们定义两个潜在结果:基线结果(即,$Y^{0}(x)=Y(x, \tau^{0}(x))$)和技能增强结果(即,$Y^{s}(x)=Y(x, \tau^{s}(x))$,$\tau^{s}(x) \sim P_{\mathcal{A}}(\cdot \mid x; \eta(s))$)。加载技能 $s$ 对应于将干预 $\eta(s)$ 应用于 $\mathcal{A}$。
**目标:** 我们的目标是测量并最大化技能相对于基础智能体的期望效应:
$$
\Delta(s) \;=\; \mathbb{E}_{x \sim p}\left[\mathbb{E}\!\left[Y^{s}(x) \mid x,s\right]-\mathbb{E}\!\left[Y^{0}(x) \mid x\right]\right]. \quad (1)
$$
因此,$\Delta(s)$ 捕捉了由技能干预 $s$ 引起的净效应:它测量技能在相同输入分布上改善(或降级)性能的程度,同时考虑“修复”(即技能修正基线失败的情况)和“回归”(即技能破坏基线成功的情况)。因此,技能合成的目标是选择一个对保留集性能具有积极净效应的技能,而不依赖于人工编写的特定任务技能。在构建期间,每个候选技能都在 $\mathcal{D}_{\mathrm{ver}}$ 上进行评估,在有无技能的情况下使用相同的输入。因此,我们得出一个所谓的 status $\sigma_{\mathrm{ver}}(s;\mathcal{D}_{\mathrm{ver}}) \in \{\mathrm{active}, \mathrm{deprecated}\}$。在部署时,仅加载 active 技能;deprecated 技能归入空干预 $\varnothing$。
*(图1说明:SkillGen 概览。我们的多智能体框架从基线轨迹中合成单一的可审计技能。1 它首先激发成功和失败的展开作为输入。2 它提取成功和失败模式的可复用模式。3 它遵循迭代生成-验证-优化循环以生成和优化新的候选技能。)*
## 3 SkillGen
**概览。** SkillGen 接受以下输入:一个基础智能体、一组观察到的 LLM 轨迹(分为归纳子集和验证子集),以及一个任务级评估器。然后 SkillGen 返回一个单一的可审计技能。SkillGen 遵循一个智能体的三阶段框架(见图1;附录 A 中的算法 1)。
* **阶段 1 基线激发:** 此阶段使用基础智能体收集成功与失败的轨迹。
* **阶段 2 对比归纳:** 此阶段提取常见的失败模式,以识别区分成功与失败展开的局部模式;这些模式通过*归纳智能体*合并为任务级诊断的紧凑、可解释摘要。
* **阶段 3 迭代生成-验证-优化循环:** 此阶段将诊断信息转化为候选技能(通过*生成智能体*),在验证子集上测试每个候选技能以进行性能评估(通过*验证智能体*),最后对候选技能进行优化。最后,返回具有最大构建时净效应 $\Delta(s)$ 的候选技能。
### 3.1 阶段 1:基线激发
我们首先在归纳子集上运行基础智能体并存储
$$
\mathcal{B}=\{(x_i, \tau_i^0, y_i^0)\}_{i=1}^n, \quad \mathcal{I}^-=\{i: y_i^0=0\}, \quad \mathcal{I}^+=\{i: y_i^0=1\}. \quad (2)
$$
这里,$\mathcal{I}^-$ 索引失败的基线展开,$\mathcal{I}^+$ 索引成功的基线展开。直观地说,失败显示了基础智能体需要帮助的地方;而成功显示了基础智能体已经能够执行的程序。使用这两个分层是 SkillGen 的独特之处,也是重要的:仅凭失败可能产生误导或无用的建议,而仅凭成功无法识别能力差距。
我们进一步缓存构建时验证子集上的无技能结果,即,
$$
\mathcal{B}_{\mathrm{ver}}=\{(\tilde{x}_j, \tilde{\tau}_j^0, b_j)\}_{j=1}^m, \quad \tilde{\tau}_j^0 \sim P_{\mathcal{A}}(\cdot \mid \tilde{x}_j; \varnothing), \quad b_j=Y(\tilde{x}_j, \tilde{\tau}_j^0). \quad (3)
$$
缓存的结果既不被归纳智能体也不被第一轮生成智能体使用;相反,缓存的结果随后用于构建时验证和后续的...相似文章
SkillMaster:迈向大语言模型智能体的自主技能掌握
本文介绍了 SkillMaster,一种训练框架,使大语言模型智能体能够通过轨迹知情审查和反事实效用评估,自主地创建、优化和选择技能。
COLLEAGUE.SKILL:通过专家知识蒸馏实现自动化AI技能生成
本文介绍COLLEAGUE.SKILL,一个开源系统,能够从异构轨迹中自动提炼基于人的AI技能,形成可检查、可纠正、可移植的技能包,使LLM代理能够携带有限的人类专业知识和交互风格表征。
SkillGraph:通过动态演进的技能图增强智能体的强化学习
SkillGraph 是一个框架,将可复用技能表示为有向图中的节点,使大型语言模型智能体能够通过结构化的技能检索和持续演进,更有效地处理组合任务。
SkillDAG:大规模LLM技能选择中的自进化类型化技能图
介绍了SkillDAG,一种用于大规模LLM技能选择的自进化类型化有向图,它建模了技能间关系,并允许智能体在执行过程中查询和演化该图,在ALFWorld和SkillsBench上优于基线。
MIND-Skill:通过多智能体归纳与演绎实现质量保证的技能生成
MIND-Skill 是本研究论文提出的一种新框架,它利用基于 TextGrad 优化的多智能体归纳和演绎,自动化生成高质量、可复用的智能体技能,并提供质量保证。