SKILL-DISCO:将智能体轨迹提炼并编译为可重用的程序化技能
摘要
Skill-DisCo 是一个框架,它将可重用的程序化技能从成功的智能体轨迹中提炼出来,并将其编译成可调用、可执行的程序。在 ALFWorld 和 WebArena 上的实验表明,该框架提高了成功率并减少了智能体的回合数。
arXiv:2606.26669v1 公告类型:new
摘要:智能体常常从零开始反复解决类似的任务实例,导致不必要的推理成本和较长的执行轨迹。先前的工作探讨了工作流重用和可执行技能归纳,但尚不清楚哪些任务场景允许程序化技能,以及如何在成功的轨迹之间表示共享的程序化结构。我们在有限状态机定义的场景中研究这一问题,其中成功的轨迹可以看作是未知转移图中的路径,并将程序化技能形式化为可重用的参数化控制流子图。基于这一视角,我们引入了 SkillDisCo,一个蒸馏与编译框架,它从成功的轨迹中蒸馏出可重用的 PFSM 子图,并将其编译成可调用、可执行且可验证的程序化技能。在 ALFWorld 和 WebArena 上的实验表明,SkillDisCo 在多个基准测试和模型规模上提高了成功率并减少了智能体的回合数,证明了将共享经验表示为可重用执行结构的优势。
查看缓存全文
缓存时间: 2026/06/26 05:15
# Skill-DisCo:将智能体轨迹蒸馏和编译为可复用的过程技能
来源:https://arxiv.org/html/2606.26669
郭仲新¹,齐丹瑞¹,顾瀚文²,程鹏¹,熊永强¹
¹微软研究院 ²北京外国语大学
\{zhongxin.guo, danruiqi\}@microsoft.com
###### 摘要
智能体经常从零开始反复解决相似的任务实例,导致不必要的推理成本和冗长的执行轨迹。先前的工作探索了工作流复用和可执行技能归纳,但仍不清楚哪些任务场景能够支持过程技能,以及跨成功轨迹的共享过程结构应如何表示。我们在FSM定义场景中研究这个问题,其中成功轨迹可以看作未知转移图中的路径,并将过程技能形式化为可复用的参数化控制流子图。基于这一视角,我们引入了**Skill-DisCo**,这是一个**蒸馏与编译**框架,它从成功轨迹中蒸馏出可复用的PFSM子图,并将其编译成可调用、可执行且可验证的过程技能。在ALFWorld和WebArena上的实验表明,Skill-DisCo在多个基准测试和模型规模上提高了成功率并减少了智能体的交互轮数,展示了将共享经验表示为可复用执行结构的优势。
## 1 引言

LLM智能体越来越多地用于需要大量推理和行动步骤的交互式任务(Yao等人,2023 (https://arxiv.org/html/2606.26669#bib.bib19);Shinn等人,2023 (https://arxiv.org/html/2606.26669#bib.bib10);Wang等人,2024b (https://arxiv.org/html/2606.26669#bib.bib14);Yang等人,2024 (https://arxiv.org/html/2606.26669#bib.bib18))。然而,即使使用更强的动作表示(如CodeAct (Wang等人,2024b (https://arxiv.org/html/2606.26669#bib.bib14))),智能体通常仍独立解决每个任务,反复发现跨相关任务共享的底层动作模式(图1 (https://arxiv.org/html/2606.26669#S1.F1))。这增加了推理成本、执行长度和泛化的脆弱性(Wang等人,2024c (https://arxiv.org/html/2606.26669#bib.bib16),2025 (https://arxiv.org/html/2606.26669#bib.bib15))。最近关于经验重用的工作通过从轨迹中提取可复用工作流(Wang等人,2024c (https://arxiv.org/html/2606.26669#bib.bib16))或归纳可执行技能(提高可验证性和可组合性)来解决这一问题(Wang等人,2025 (https://arxiv.org/html/2606.26669#bib.bib15))。这些结果表明,智能体应该积累可复用的过程,而不是从零开始解决每个任务。
然而,过程技能发现的基础仍不明确。当任务共享稳定的执行模式时,可复用技能才有意义,但对于开放式、实例特定的生成,它们变得难以定义。现有方法通常直接从成功轨迹中使用LLM合成技能。由于缺乏对共享结构的明确概念,生成的技能库可能变得碎片化和冗余,倾向于轨迹特定的表面模式,而非可复用的过程逻辑。
我们通过聚焦于**FSM定义场景**来明确过程技能发现的范围,其中执行动态由有限状态、可行动作和确定性转移描述。在此类场景中,成功轨迹是未知转移图中的路径,而过程技能对应于帮助达到目标状态的重复转移结构。如果这个图已知,任务完成将简化为图搜索。然而,在现实的智能体设置中,图是不可用的,智能体只能观测到成功轨迹。为了捕捉跨轨迹的共享结构,我们通过**参数化有限状态机(PFSM)**视角来形式化过程技能。PFSM将具体状态和动作抽象为参数化状态和算子,因此具有不同对象、状态或长度的轨迹可以实例化相同的执行模式。基于这一视角,每个成功轨迹可以被提升为一个参数化轨迹图,而一个过程技能是在参数绑定下跨轨迹匹配的可复用PFSM子图。因此,技能不仅仅是文本例程或LLM生成的脚本,而是共享执行逻辑的结构化抽象。
这种形式化并不假设潜在的PFSM是直接可观测的。在现实的智能体环境中,既没有完整的转移图,也没有从原始轨迹到PFSM子图的提升函数。因此,Skill-DisCo通过从成功轨迹中恢复可复用的参数化控制流模式,并通过技能编译进行验证,来近似基于PFSM的技能发现。这产生了一个**蒸馏与编译**框架。蒸馏发现紧凑、高覆盖率的PFSM子图,这些子图偏好可复用结构而非轨迹特定例程。编译通过显式规范和基于执行的验证,将每个发现的结构转化为可调用、可执行且可验证的技能。
我们的贡献如下:(C1) 我们通过聚焦于FSM定义场景,明确了过程技能发现的范围,其中成功轨迹是未知转移图中的路径,可复用技能具有明确定义的转移语义。(C2) 我们将过程技能形式化为可复用的参数化控制流子图,这些子图可以在参数绑定下匹配多个成功轨迹。这为技能发现提供了结构目标,而不是将每个成功轨迹视为独立例程。(C3) 我们引入了**Skill-DisCo**,一个蒸馏与编译框架,它近似这些结构目标并将它们编译为经过验证且可执行的过程技能。(C4) 广泛实验表明,Skill-DisCo在不同基准测试和模型规模上均提高了成功率和效率。进一步分析表明,紧凑的编译技能减少了库冗余,提高了执行可靠性,并将过程知识从更强的归纳模型转移到更小的执行模型。
## 2 基础知识
### 2.1 FSM定义场景
本文聚焦于其执行动态可以形式化为有限状态机的场景。此类场景具有有限状态空间、有限动作空间和确定性转移:给定状态 \(s \in \mathcal{S}\) 和动作 \(a \in \mathcal{A}\),下一状态由 \(\delta(s, a)\) 唯一确定。我们称此类场景为**FSM定义场景**。
###### 定义1 (FSM定义场景)
如果一个场景的执行动态可以表示为有限状态机 \(\mathcal{M} = (\mathcal{S}, \mathcal{A}, \delta, \mathcal{S}_0, \mathcal{S}_{\mathrm{goal}})\),其中 \(\mathcal{S}\) 是有限状态集合,\(\mathcal{A}\) 是有限动作集合,\(\delta: \mathcal{S} \times \mathcal{A} \rightarrow \mathcal{S}\) 是确定性转移函数,\(\mathcal{S}_0 \subseteq \mathcal{S}\) 是可能初始状态集合,\(\mathcal{S}_{\mathrm{goal}} \subseteq \mathcal{S}\) 是目标状态集合,则该场景称为FSM定义场景。对应的转移图定义为 \(G^* = (V^*, E^*)\),其中 \(V^* = \mathcal{S}\) 且 \(E^* = \{ (s, a, s') \mid s, s' \in \mathcal{S}, a \in \mathcal{A}, \delta(s, a) = s' \}\)。
对于FSM定义场景,如果完整的转移图 \(G^*\) 和目标状态已知,任务完成可以简化为在 \(G^*\) 上从初始状态到目标状态寻找路径。然而,在许多智能体设置中,完整的转移图是不可用的。因此,我们的目标是从过去的成功轨迹中推断可复用的转移结构。
###### 定义2 (原始算子)
原始算子是一个元组 \(\mathrm{op} = (\mathcal{X}, \mathcal{Y}, \mathrm{Pre}, \mathrm{Post})\),其中 \(\mathcal{X}\) 是输入空间,\(\mathcal{Y}\) 是输出空间,\(\mathrm{Pre}: \mathcal{X} \rightarrow \{0,1\}\) 是前提条件谓词,\(\mathrm{Post}: \mathcal{X} \times \mathcal{Y} \rightarrow \{0,1\}\) 是后置评估谓词。对于任何满足 \(\mathrm{Pre}(x)=1\) 的输入 \(x \in \mathcal{X}\),执行 \(\mathrm{op}\) 产生唯一输出 \(y = \mathrm{op}(x) \in \mathcal{Y}\),使得 \(\mathrm{Post}(x,y)=1\)。
###### 定义3 (成功轨迹)
给定一个FSM定义场景 \(\mathcal{M} = (\mathcal{S}, \mathcal{A}, \delta, \mathcal{S}_0, \mathcal{S}_{\mathrm{goal}})\),智能体轨迹是一个有限执行记录 \(\tau = (o_0, a_0, o_1, a_1, \ldots, a_{T-1}, o_T)\),其中 \(o_t\) 表示智能体在步骤 \(t\) 接收到的观测,\(a_t \in \mathcal{A}\) 是智能体执行的动作。该轨迹由底层状态轨迹 \((s_0, a_0, s_1, a_1, \ldots, a_{T-1}, s_T)\) 诱导,使得 \(s_{t+1} = \delta(s_t, a_t)\),并且每个观测 \(o_t\) 由底层状态 \(s_t\) 生成。如果底层执行从有效初始状态开始并达到目标状态,即 \(s_0 \in \mathcal{S}_0\) 且 \(s_T \in \mathcal{S}_{\mathrm{goal}}\),则称 \(\tau\) 为成功智能体轨迹。注意,在FSM定义场景中,每个动作 \(a \in \mathcal{A}\) 被视为一个原始算子,即成功轨迹中的动作都是原始算子。为清晰起见,本文中我们将这些原始算子简称为动作。
### 2.2 基于PFSM的过程技能发现
标准FSM将任务完成表示为从初始状态到目标状态的具体路径。这样的路径精确记录了一次执行,但通常过于实例特定,因为每个转移都基于具体状态和动作。因此,具有相同控制逻辑的执行在不同对象、位置或中间状态下可能表现为不同路径。为了捕捉可复用的执行模式,我们引入了**参数化有限状态机(PFSM)**的概念。PFSM用参数抽象具体状态和动作,允许多个具体FSM路径由同一个参数化控制流结构表示。
###### 定义4 (参数化FSM (PFSM))
参数化有限状态机定义为 \(\widetilde{\mathcal{M}} = (\widetilde{\mathcal{S}}, \widetilde{\mathcal{A}}, \Theta, \widetilde{\delta}, \widetilde{\mathcal{S}}_0, \widetilde{\mathcal{S}}_{\mathrm{goal}})\),其中 \(\widetilde{\mathcal{S}}\) 是有限参数化状态集合,\(\widetilde{\mathcal{A}}\) 是有限参数化动作集合,\(\Theta\) 是参数空间,\(\widetilde{\delta}: \widetilde{\mathcal{S}} \times \widetilde{\mathcal{A}} \times \Theta \rightarrow \widetilde{\mathcal{S}}\) 是确定性参数化转移函数。每个参数赋值 \(\theta \in \Theta\) 将参数化转移实例化为具体的FSM转移。这里,参数化状态 \(\tilde{s} \in \widetilde{\mathcal{S}}\) 表示抽象执行状态,而非完全具象的环境状态。参数化动作 \(\tilde{a} \in \widetilde{\mathcal{A}}\) 表示动作模式,其参数由参数实例化。
#### 示例1.
考虑两个成功轨迹,用于寻找并拿取目标物体:
\(\tau_1\): `go_to(drawer1) → open(drawer1) → go_to(drawer2) → open(drawer2) → go_to(desk1) → go_to(bed) → take(book) → end`
\(\tau_2\): `go_to(shelf1) → go_to(shelf2) → go_to(drawer1) → open(drawer1) → go_to(drawer2) → open(drawer2) → take(mug) → end`
在标准FSM中,这两个轨迹对应于不同的具体路径,因为它们访问了不同数量的位置。然而,它们共享相同的参数化控制流模式:
该模式可以表示为PFSM,带有参数化动作如 `go_to(l)` 和 `take(o)`,其中 \(l\) 是位置参数,\(o\) 是物体参数。候选位置的循环抽象了具体位置的数量和身份,同时保留了完成任务所需的可复用控制逻辑。
给定一组成功轨迹,每个轨迹可以从具体FSM路径提升为PFSM转移图的一个子图。这样的子图捕捉了成功轨迹的参数化执行结构,包括其抽象状态、参数化动作和控制流关系。我们称这个提升后的子图为**参数化轨迹图**。由于底层PFSM不可用,提升函数 \(\phi: \tau_i \mapsto \widetilde{G}_i\) 没有封闭形式的定义。我们通过第3节 (https://arxiv.org/html/2606.26669#S3) 中描述的多阶段流水线来近似它。
我们的目标是从成功轨迹中发现过程技能。直观地说,一个过程技能对应于多个成功轨迹共享的PFSM子图。这样的子图捕捉了在不同具体实例化中帮助智能体达到目标的重复控制流结构。
###### 问题1 (过程技能发现)
给定一组成功轨迹 \(\mathcal{T}^+ = \{ \tau_1, \tau_2, \ldots, \tau_N \}\) 和一个将每个轨迹映射到参数化轨迹图的提升函数 \(\phi: \tau_i \mapsto \widetilde{G}_i\),目标是发现一组过程技能 \(\mathcal{K} = \{ K_1, K_2, \ldots, K_m \}\),其中每个技能 \(K_j\) 是一个参数化控制流子图。相似文章
RESOURCE2SKILL:从人类创建的多模态资源中提炼可执行智能体技能
RESOURCE2SKILL是一个框架,它将教程视频、代码仓库、文章和工件等多模态资源提炼为层次化的SkillWiki中的可执行智能体技能,相比无技能智能体,将智能体性能提升了11.9个百分点。
COLLEAGUE.SKILL:通过专家知识蒸馏实现自动化AI技能生成
本文介绍COLLEAGUE.SKILL,一个开源系统,能够从异构轨迹中自动提炼基于人的AI技能,形成可检查、可纠正、可移植的技能包,使LLM代理能够携带有限的人类专业知识和交互风格表征。
SkillSmith: 将智能体技能编译为边界引导的运行时接口
SkillSmith是一个边界优先的编译器-运行时框架,从LLM智能体技能中提取细粒度的操作边界,使智能体能够动态访问仅相关的组件,在SkillsBench基准测试上减少了57.44%的求解阶段令牌使用量和42.99%的思考迭代次数。
skillhub - 用于AI代理技能的包管理器(兼容Claude Code、Cursor、Codex)
skillhub是一个用于AI代理技能的包管理器,兼容Claude Code、Cursor和Codex。
通过演示而非手动编写构建代理技能:一种记录与编译的方法
一款记录与编译工具允许用户演示桌面任务,随后由LLM将操作会话转换为结构化的技能文件,供代理重放,旨在降低僵化性并降低创建可复用代理能力的门槛。