SKT:用可验证合成数据教智能体调用 Agent Skills,4 基准全涨

SKT: Skill-Use Training at Scale via Verified Synthetic Data Generation

Zelin Tan, Yiqun Zhang, Hao Li, Zhiyao Cui, Hejia Geng, Shao Zhang, Hangfan Zhang, Yang Chen, Xiaosong Wang, Lilong Wang, Zhenfei Yin, Shuyue Hu, Chen Zhang, Lei Bai

cs.AI

2026-08-03

SKT 合成 2.7 万条可验证轨迹做 SFT,让 Qwen3.5-9B 和 Gemma 4 在四个技能基准上全面涨 3.2–18.9 分。

这篇在解决什么

Agent Skills(把可复用流程知识打包成 instructions + metadata + 脚本/模板,自 2025 年 10 月以来公开数量已超 60 万)本意是让 LLM agent 加载即用。但一个尴尬现实是:把技能直接塞给现有模型,它们并不能可靠地识别何时该用、按什么约束执行、把多个技能编排成连贯工作流。已有工作大多解决技能的检索、内化、自演化,却很少正面回答「模型怎么真正用好外部技能」。SKT 把这个空白当成数据问题来打。

方法

SKT 是一条三阶段、可验证的合成数据流水线。

Stage I 技能筛选:rubric LLM 从 skills.sh 选出能支撑可执行、可判分任务的技能,并按 cardinality k∈{1,2,3} 采样;k>1 时再过一道 composition 判官,要求多技能组成角色不重叠的连贯工作流,否则重采。

Stage II 任务合成:TaskGen 按 fixed template 生成完整 task package(instruction + 隔离 runtime + evaluator + reference solution)。然后三道闸门串行:rule-based 查包完整性、路径,并把 reference solution 放进干净 workspace 跑通拿满分,同时查 solver 可见材料有没有逐字抄答案或技能规则;agent-based 做 semantic 复查加配对 skill-dependence 测试(有技能 vs 无技能两次 rollout,要求 r⁺ > r⁻);difficulty control 用固定 solver 跑 N=5 次,若通过率 ≥0.6 就判太易。任何一道失败,诊断回灌给 TaskRepair 改整包,再从 rule-based 重跑。

Stage III 轨迹合成:四个 teacher(MiniMax-M2.5、GLM-5、Qwen3.5-397B-A17B、DeepSeek V4 Pro)× 两个 harness(DeepAgents、OpenCode)在 32,000 个组合上解题,留下 27,164 条通过 deterministic validator(满分 + 正常终止 + 工具轨迹良构 + 显式访问技能)和 LLM validator(每个技能在被引导动作之前被查阅、并实质影响决策)双重校验的轨迹。失败 rollout 不带反馈直接重采。最终用 masked autoregressive SFT 训练。

结果

2,000 技能 → 4,000 task package(1,520 单技能 / 1,295 双技能 / 1,185 三技能)→ 27,164 轨迹。Qwen3.5-9B 与 Gemma 4 E4B-IT 全参数 SFT,四基准 × 两 harness 共 16 组对比全部涨分,绝对增益 3.20–18.91。

代表性数字(mean,0–100):

配置OriginalSKT
Qwen3.5-9B / OpenCode / SkillEval55.2472.48
Qwen3.5-9B / DeepAgents / SkillEval51.6270.53
Qwen3.5-9B / OpenCode / SkillsBench5.8015.79
Gemma 4 / OpenCode / MolBench-Bind34.4645.27

关键消融:推理时撤掉技能,增益从 8.68–18.91 缩到 0.53–5.69,说明 SKT 教的是「用技能」而非内化;用未验证的 raw 合成数据做 SFT 反而把四个基准全拉低(−1.9 到 −19.5),与 SKT 拉开 11.91–24.61 分;cross-harness SFT 仍保留 matched gain 的 49.1–58.1%;mixed-harness 单 checkpoint 与专家仅差 ≤2.71;训练技能池从 100 扩到 2,000,SkillEval 从 55.24 单调升到 72.48。

为什么重要

对在搭 skill-using agent 的人来说,SKT 给出一条可复用配方:别指望 base 模型天然会用技能库,也别拿未验证的合成轨迹直接训——后者越训越糟。把 verification(规则 + 配对 skill-dependence + 难度)和 feedback repair 做扎实,一轮 SFT 就能把 9B 量级模型拉到接近专家 harness 的水平,而且技能调用能力可以跨 harness 迁移、随技能覆盖继续上涨。公开的 SkillEval(100 task、留出技能池)也给了社区一个对齐的评测面。

局限与存疑

论文承认收益是 harness-specific,mixed 训练只是部分缓解。额外的疑虑:skill-dependence 只在 bundle 层做 r⁺>r⁻,不做 leave-one-skill-out,多技能任务里可能存在某技能并未真正必需却仍入库;SkillEval 用的是与训练同一条流水线,即便技能池不重叠,任务分布偏好可能对自家方法有利;全程 SFT、未上 RL,也未在更大 backbone 验证;60 万公开技能里只筛了 2,000,长尾领域覆盖未交代;teacher 与 verifier 都依赖闭源强模型,复现成本与偏置都需关注。

术语

原文与代码

相关论文

全部论文解读