← 返回 2026-04-29

基于技能图的可扩展终端任务合成框架 Toward Scalable Terminal Task Synthesis via Skill Graphs

Zhiyuan Fan, Tinghao Yu, Yuanjun Cai, Jiangtao Guan, Yun Yang, Dingxin Hu, Jiang Zhou, Xing Wu, Zhuo Han, Feng Zhang, Lilin Wang 📅 2026-04-28 👍 11 2026-07-13 08:36
LLM 合成数据 技能图 智能体训练 终端Agent

用场景中介技能图采样多样化终端任务轨迹

前置知识

终端Agent

通过命令行接口(CLI)与计算系统交互的大语言模型智能体,可执行安装依赖、运行测试、修改代码等长链路任务,典型代表如 Claude Code、OpenHands。

本文核心问题就是终端Agent训练数据稀缺,没有这个背景就难以理解为什么需要合成任务。

层次强化学习中的Options框架

Sutton等1999年提出的时间抽象框架,将动作序列封装为"技能(skill/option)",技能以预条件场景为起点、以后条件场景为终点,可大幅缩短规划长度。

论文中的scenario+skill抽象直接借鉴Options,是公式1-4中将低级轨迹抽象为高级执行序列的理论根基。

场景中介图(Scenario-mediated graph)

一种以中间状态(场景)为节点、操作为有向边的图结构。相比直接以操作为节点的图,它能自然表达"前置状态→操作→后置状态"的因果链,便于多样性采样。

SkillSynth的技能图正是这种结构,理解它才能明白为什么图采样比单技能种子更具多样性。

Louvain社区检测

一种基于模块度优化的快速社区发现算法,可在亿级边的大图上几秒内完成粗粒度聚类,常用于图预分桶以降低后续层次聚类的计算成本。

论文附录B明确提到用Louvain做粗分桶+complete-linkage层次聚类替代全局层次聚类,避免O(n²)内存开销。

LLM-as-a-Judge评分

用大语言模型作为自动评分员,按人工定义的rubric对生成内容打分的做法。本文用它判断指令-测试一致性、指令自包含性,避免奖励信号被错配。

rubric-based验证是SkillSynth多代理框架质量保障的两大支柱之一,对理解高合成合格率至关重要。

研究动机

终端Agent的训练效果严重受限于高质量多样化执行轨迹的稀缺。手动构造终端任务成本高且难以扩展;现有合成方法主要聚焦"放大任务数量"而非"控制轨迹多样性",如Nemotron-Terminal通过LLM生成的分类法扩大领域覆盖,但常常偏离真实使用场景;又如SWESmith、CLI-Gym从GitHub仓库反演buggy环境来派生任务,但仅局限在issue解决、特性开发等软件工程领域。这些方法在场景(scenario)与技能(skill)两个维度上都缺乏显式控制,导致不同任务实例往往让Agent经历重叠的场景和重复的技能,训练收益递减。论文Figure 1量化揭示了这一现象:Nemotron等数据集在标准化后的唯一场景数、技能数和(场景,技能)对数都明显偏少,亟需新的合成范式。

本文的目标是本文旨在构建一个可扩展的自动化框架SkillSynth,专门合成"场景×技能"联合分布密集、轨迹多样化且执行可验证的终端任务实例。具体目标包括:(1) 从ClawHub和GitHub抓取真实技能,构建大规模技能图,使后续采样有充足的组合空间;(2) 设计路径采样算法,使合成的轨迹在场景和技能两个维度上均匀覆盖,同时保证单调推进;(3) 用多代理harness把采样路径自动实例化为可执行任务,使oracle求解成功率高、单任务成本可控;(4) 在Terminal-Bench 1.0/2.0等公开基准上验证"以图导引的多样性合成"比单技能/随机多技能基线更有效。

与已有工作不同的是,已有工作要么把技能组织成层级能力树(如AgentSkillOS)或关系图(如SkillNet),但聚焦在检索和编排而非轨迹合成;要么像Endless Terminals、TermiGen那样扩展任务数量,但缺乏对合成轨迹的显式多样性控制。SkillSynth的独特切入点是:以"场景"为节点、"技能"为有向边构建图,并基于Eq.4推导出的"场景-技能条件积空间覆盖"作为多样性目标函数;再用Algorithm 1的逆频率采样把经验分布推向均匀覆盖,从而让Agent在训练时见到更多不同的(σ,κ)对,最终在固定任务数量下获得更高下游性能。

核心方法

SkillSynth的整体直觉是"先组合、后实例化":如果直接把LLLM prompt成一次性生成完整任务实例,它往往专注于实现细节而忽略任务设计,导致任务过于简单或结构散乱。因此SkillSynth分三步走——先离线构建一张大规模"场景中介技能图",再用逆频率加权随机游走在图上采样得到"工作流路径",最后用多代理harness把每条路径实例化成包含instruction、初始文件系统、Docker环境、验证脚本和oracle解的完整任务包。在形式化上,论文将低级轨迹$\zeta=(o_0,a_0,\ldots,o_T)$抽象为高级序列$\xi=(\sigma_0,\kappa_1,\sigma_1,\ldots,\kappa_L,\sigma_L)$,并证明Eq.3的skill级对数似然与token级next-action对数似然在三项假设下完全等价(附录A),从而图采样得到的(σ,κ)分布会直接决定模型在Terminal-Bench等基准上的能力上限。

核心创新在于把"任务多样性"显式建模为对条件积空间$\{(\sigma,\kappa):\sigma\in\Omega,\kappa\in\mathcal{K}_\sigma\}$的均匀覆盖,并据此设计场景中介技能图+逆频率路径采样。区别于已有工作:(1)相对AgentSkillOS的层级能力树或SkillNet的纯关系图,SkillSynth首次把技能组织成"前置场景→技能→后置场景"的有向图,使图上的有向路径自然对应可执行的真实工作流;(2)相对Nemotron-Terminal或TermiGen的LLM分类法,SkillSynth用算法1的逆频率游走主动抑制重复采样,让3,721条路径对应的(场景,技能)对数比基线多31%;(3)相对SWESmith的仓库反演,SkillSynth不局限于软件工程,而是覆盖26个领域(Figure 5),包括音频、3D仿真等长尾方向。

方法步骤详情

SkillSynth分三阶段。第一阶段构建技能图(§3.2):从ClawHub和GitHub抓取技能并按四条规则过滤;用DeepSeek Reasoner v3.2推断每个技能$\kappa$的前后场景;embedding后用Louvain粗分桶+complete-linkage层次聚类去重;跨技能对齐由LLM判语义兼容,得到82,073场景、57,214技能边、185,529条桥。第二阶段路径采样(§3.3):维护计数$\nu(\sigma)$和$\mu(\kappa)$,源场景按$p(\sigma)\propto(\nu+1)^{-1}$、下一步技能按$p(\kappa)\propto(\mu+1)^{-1}$采样,已访问节点在同路径内禁止重复;接受长度$L\in[1,7]$且技能集全新的路径。第三阶段多代理harness(§3.4):planner展开结构化子目标,constructor生成instruction、文件快照、Dockerfile、测试脚本和oracle解;执行式验证跑oracle,rubric式验证用LLM-judge评估一致性,失败触发最多R=3轮repair。

技术新颖性

技术新颖性体现在四点:(1)形式化把训练目标分解为Eq.4的$\sum_{\sigma}p_D(\sigma|g)\sum_{\kappa}p_D(\kappa|\sigma,g)\log\pi(\kappa|\sigma,g)$,首次明确给出"轨迹多样性→下游性能"的覆盖率理论解释,而不仅靠经验观察;(2)场景中介图的逆向频率路径采样算法1在图采样领域并不常见,传统随机游走会聚集在高节点度hub,论文用计数衰减项$(\nu+1)^{-1},(\mu+1)^{-1}$把分布推向均匀;(3)执行式+rubric式双验证的设计把"任务可解"和"评估信号正确"分开处理,这是单独用pass/fail或单用LLM-judge都难以做到的;(4)把整个流水线用于训练腾讯Hy3 Preview,说明该框架不只是学术原型,已在工业级大模型训练中验证有效。

Overview of SkillSynth
Figure 2: Overview of SkillSynth
Overview of the skill graph construction pipeline
Figure 3: Overview of the skill graph construction pipeline
A video-domain example of a sampled path and synthesized task instruction
Figure 4: A video-domain example of a sampled path and synthesized task instruction
Skill category distribution
Figure 5: Skill category distribution

实验结果

实验分四块。多代理harness质量(Table 1):3,721条路径产出3,560可用任务,oracle通过率95.7%、双验证全过率92.0%,平均2.31轮repair、单任务27.3美元,修复循环挽救721任务。任务难度(Table 2):38%任务0/3通过、25%任务3/3通过,约37%落在"可学"区间。主实验(Table 3):Qwen3-8B+SS达17.1%/13.5%、14B+SS达22.9%/19.9%、32B+SS达33.8%/29.6%(TB 1.0/2.0),32B+SS在TB 2.0上反超Qwen3 Coder 480B(23.9%)约5.7点。消融(Table 4):单技能25.4%/21.3%、随机多技能30.8%/25.8%、SkillSynth 33.8%/29.6%,比单技能高8.4/8.3点。多样性(§4.5):1,000条轨迹标准化后(场景,技能)对覆盖比单技能基线高31%。错误分析(Table 5)显示71.7%失败源于"部分实现"和"自测过度信任"。

Multi-agent harness outcomes and repair statistics
Table 1: Multi-agent harness outcomes and repair statistics
Difficulty distribution of the 3,560 usable task instances
Table 2: Difficulty distribution of the 3,560 usable task instances
Experimental results on Terminal-Bench 1.0 and 2.0 with the Terminus 2 scaffold
Table 3: Experimental results on Terminal-Bench 1.0 and 2.0 with the Terminus 2 scaffold
Ablation study on synthesis seed selection strategy
Table 4: Ablation study on synthesis seed selection strategy
Error analysis of failed trajectories
Table 5: Error analysis of failed trajectories
Structural statistics of the skill graph G (Left: metrics; Right: connected component size distribution)
Table 6: Structural statistics of the skill graph G (Left: metrics; Right: connected component size distribution)
查看结构化数据
任务指标本文基线提升
Terminal-Bench 1.0 (80任务) Pass rate (Terminus 2 scaffold) Qwen3-32B + SS: 33.8% ± 3.1 Qwen3-32B 基线: 未给出 / 单技能合成: 25.4% ± 1.8 / 多技能合成: 30.8% ± 1.8 相对单技能基线+8.4点,相对随机多技能基线+3.0点
Terminal-Bench 2.0 (89任务) Pass rate (Terminus 2 scaffold) Qwen3-32B + SS: 29.6% ± 1.6 Qwen3-32B 基线: 未给出 / 单技能合成: 21.3% ± 2.8 / 多技能合成: 25.8% ± 2.8 相对单技能基线+8.3点,相对随机多技能基线+3.8点,反超Qwen3 Coder 480B(23.9% ± 2.8)约5.7点
Qwen3-8B / 14B 全量评测 (TB 1.0/2.0) Pass rate 8B+SS: 17.1%/13.5%; 14B+SS: 22.9%/19.9% 公开同尺寸Qwen3模型基线 8B/14B/32B三个尺寸上SS都带来一致提升,且提升幅度随模型尺寸增大

局限与改进

局限性可分四层。第一,合成合格率仍非100%,Table 1显示5%的任务oracle失败,且77%的rubric失败源自指令-测试错配,LLM第一轮生成的文件快照损坏很难在repair循环内恢复,作者建议用更高采样温度重跑。第二,图构建依赖DeepSeek Reasoner v3.2做大规模LLM判定,工程量大且对模型版本敏感,论文虽未公布具体调用次数,但单任务成本$27.3说明整体开销不小。第三,路径采样长度上限$L_{\max}=7$,无法表达真实世界中需并行执行多条技能的复杂工作流,作者在§4.7中明确承认"未来应采样子图而非链"。第四,错误分析(§4.6)显示71.7%的失败都源于Agent对自身自测的过度信任,但SkillSynth并未在数据合成层面针对这一失败模式做专门干预,可能只是缓解而非根治。

独立分析的弱点

独立审视论文的弱点有四处。第一,单任务成本$27.3乘以3,560任务超过97,000美元,论文虽未把token数算成环境成本,但相对人工标注仍偏高,若想进一步扩展到百万任务规模必须显著降低单任务成本或用更便宜的开源模型替换DeepSeek-judge。第二,技能图静态构建一次后就固定了,新出现的技能或工具(比如新的CLI工具、新的框架)无法自然融入,需要重跑整套对齐流程;社区贡献式增量更新机制未在文中给出具体算法。第三,下游评测只用Qwen3系列做SFT验证,没在Llama、DeepSeek等其它主流系列上验证是否仍能复现增益。第四,Task-Bench 1.0/2.0合计169个任务都偏软件工程向,而技能图覆盖26个领域(Figure 5),训练分布与评测分布存在mismatch,可能导致Table 3里8B/14B提升幅度有限(不到10个点)的部分原因;改进方向是引入更均衡的领域划分或加入领域内held-out评测集。

未来方向

作者在§4.7明确给出两点方向:扩展到更大数据规模并适配更便宜的harness模型;采样子图而非链以表达并行技能执行。本人认为还可延伸的方向包括:(1)把Eq.4的覆盖率目标改成"以训练loss或benchmark性能为奖励"的反向设计,让图采样直接优化下游指标;(2)把rubric评判器换成reward model,再用RL而非SFT训练Agent,正好规避Table 5中"自测过度信任"的失败模式;(3)把场景中介图推广到非终端场景,比如GUI Agent、Web Agent,构建跨模态的统一技能拓扑;(4)在HumanEval-X、SWE-bench Verified等更贴近真实工业软件的基准上做评测,验证SkillSynth合成的轨迹在真实长尾任务上的迁移能力。

复现评估

复现性评估:论文并未声明代码或数据开源,但作者团队来自腾讯混元,合成数据已被用于训练Hy3 Preview,部分数据可能随模型权重公开。技能图的关键统计(82,073场景、57,214技能、185,529桥)在附录D的Table 6中公开,degree分布(Figure 6)和组件大小分布也给出了具体数值,可作为读者重建图的参考。算法1的伪代码、奖励统计、双验证阈值($R=3,N_\mathrm{tool}=20$)等超参数都写得很清楚。主要复现难点有三:(1)ClawHub和GitHub的具体仓库列表未公开,无法精确复现技能池;(2)DeepSeek Reasoner v3.2的具体prompt只在附录E给出三个片段,未涵盖全部LLM调用;(3)Harness用Terminus 2 scaffold + Harbor并行128 Docker环境,对算力要求较高,单卡研究者难以在合理时间内复现完整pipeline。建议从单技能vs多技能vs SkillSynth的消融(对应Table 4)切入复现,相对最便宜。