一句话总结
SkillSynth 通过构建场景中介的技能图谱,从图中采样路径并利用多智能体系统自动合成多样化的终端任务实例,从而为训练终端智能体提供高质量、可扩展的执行轨迹数据。
背景与前置知识
▼终端智能体(Terminal Agents)
大型语言模型通过命令行界面(CLI)与计算系统交互,自主执行复杂任务。这类智能体不依赖专有 API,而是将终端作为通用的动作空间。核心挑战在于:如何获取足够多样、高质量的训练轨迹?
场景(Scenario)与技能(Skill)
终端智能体的执行轨迹可以抽象为"场景-技能"的交替序列。场景描述环境在某个决策点的语义状态(如"含有失败单元测试的 Python 项目"),技能是在该场景下执行的一系列连贯动作(如"运行 pytest 并捕获输出"),将环境从当前场景转移到下一个场景。
技能图谱(Skill Graph)
以场景为节点、技能为有向边构建的图结构。图中的有向路径对应一个真实的工作流程——技能的后置条件恰好是下一个技能的前置条件。
层次强化学习中的 Options
论文中的场景-技能抽象借鉴了层次强化学习中 options 的概念,将低级的动作序列提升到高级的语义层面来分析和优化。
核心思想详解
▼SkillSynth 的核心洞察是:训练终端智能体的关键不只是任务数量,而是执行轨迹在场景和技能两个维度上的多样性。
用一个类比来理解:想象一个厨师学徒的训练。传统方法只是不断增加菜谱数量(更多任务实例),但学徒反复练习的烹饪场景和手法可能高度重叠。SkillSynth 的做法是先构建一张"烹饪技能图谱"——节点是厨房中的各种状态(如"准备好的食材"、"半成品"),边是烹饪技能(如"切配"、"翻炒"),然后从图中采样路径来设计训练菜单,确保学徒在多样的厨房状态中练习多样的烹饪技能。
这个框架有三层结构:
- 技能图谱构建:从 ClawHub 和 GitHub 收集真实终端技能,用 LLM 推断每个技能的前置/后置场景,通过聚类去重和跨技能对齐,构建出包含 82,073 个场景节点和 57,214 条技能边的有向图。
- 图引导路径采样:使用逆频率加权采样算法,从图中采样有向路径作为工作流程的抽象。逆频率策略避免了高频节点和边的过度覆盖。
- 多智能体合成:将采样的路径通过 Planner-Constructor 分工的多智能体系统实例化为可执行的任务,双重验证确保任务可解且质量达标。