← 返回 2026-10-01

SkillGym:用自动生成的可验证环境训练技能使用智能体 SkillGym: Training Skill-Use Agents with Automatic Verifiable Environment Generation

Renxi Wang, Mingshan Hee, Fajri Koto, Timothy Baldwin, Haonan Li 📅 2026-09-29 👍 7 2026-11-11 18:30
LLM智能体 可验证奖励 技能使用 数据合成 环境生成 监督微调

自动把社区技能改造成可验证训练环境,SFT 后 9B 模型在两项基准上超过 397B 模型

前置知识

Agent Skill(智能体技能包)

一种轻量的知识封装格式:通常是一个含 SKILL.md 的文件夹,内含自然语言工作流说明、参考文档和可运行脚本(如 Anthropic 的 pptx、mcp 技能)。智能体在推理时按需读取技能内容,把文档中的流程翻译成具体动作,全程不需要更新模型权重。skills.sh 和 GitHub 上已有数万个社区技能,覆盖软件工程、金融、文档处理等 18 个以上领域。

本文全部出发点就是把这类技能批量转化为训练环境;不理解技能包的结构,就无法理解任务如何围绕技能内容构建。

Agent Harness 与交互轨迹

harness 是驱动 LLM 执行智能体任务的外层框架,负责把模型输出解析为工具调用并把观察结果回填。一次任务执行产生轨迹 $\tau = (o_0, a_0, \ldots, o_L)$,由观察 $o_t$ 和动作 $a_t$ 交错组成。不同 harness 的接口差异很大:MiniSwe-Agent 只允许 Bash 命令,Terminus-2 用 JSON 协议,AgentFly 和 OpenCode 提供专用文件操作工具。

论文用 3 个教师模型 × 4 种 harness 采集轨迹并刻意变化系统提示与工具 schema,轨迹多样性直接决定 SFT 数据质量。

可执行验证器(Executable Verifier)

一段自动判定任务是否完成的脚本,检查最终产物而非解题过程。这是可验证奖励(RLVR)范式的基础。本文要求验证器满足有效性门:在初始工作区上失败、在参考解执行后通过,即 $v(x_0)=0$ 且 $v(\mathrm{Exec}(\rho; E, x_0))=1$,并且要从输入重新计算期望值(recompute-verify)而不是硬编码答案,以接受任何正确解法。

任务可验证性是整条流水线的基石,也是『质量审查比单纯执行校验更好』这一消融结论得以成立的前提。

Builder–Reviewer 双智能体流水线

一种生成-审查式多智能体协作模式:builder 负责构造(Dockerfile、任务包),reviewer 独立验证(构建镜像真实运行测试、逐行审查验证器是否过严或过弱)并给出具体修复反馈,循环直到通过或达到轮次上限。类似代码生成中的 self-repair,但审查对象是环境本身和奖励函数本身。

这是论文的核心工程创新,消融实验证明经过质量审查的任务比仅执行校验的任务带来 4.7~9.3 点的训练增益差异。

监督微调(SFT)

用(指令, 轨迹)对更新模型权重,让模型模仿教师行为。相比 RL 不需要训练时的奖励信号,只要求演示轨迹事先通过验证器筛选。本文设置:2 个 epoch、学习率 $10^{-5}$ 线性衰减、AdamW 优化器、batch size 128,总计算量 64 GPU 小时。

本文所有模型改进都来自 SFT,RL 被留作未来工作;理解 SFT 能学到什么(触发技能)学不到什么(套用方法)是理解论文结论边界的关键。

研究动机

技能(skills)已成为 Claude Code、Codex、OpenClaw 等现代智能体框架的标准配置,但『会用技能』本身是一种未被充分训练的能力:智能体要解读技能内容、判断如何套用到当前任务、再把流程翻译成正确动作,例如按可用输入改编文档化流程、解决依赖、应对意外执行结果。现有技能使用训练方法(SkillRL、SAGE、Skill-to-LoRA 等)大多从智能体自身在少数固定环境中的交互经验里归纳技能,学习被局限在少数任务域。反方向看,社区公开技能规模巨大——skills.sh 排行榜约 9.7k 个、GitHub claude-skill-registry 约 174k 条目,覆盖软件工程、科学、金融、文档处理、营销等——但它们按『可复用资源』而非『训练材料』写成:没有任务、没有环境、没有成功判据。把它们变成训练数据有两大挑战:其一,任务必须『技能关键』(skill-critical),用不用技能应决定成败,但不用技能仍可勉强解出,否则模型学会绕过技能;其二,结果必须可靠可验证,验证器要反映任务需求、承认等价替代解法、并能区分真正完成与貌似合理的输出。

本文的目标是构建一条全自动流水线 SkillGym,把公开社区技能批量转化为技能关键且可验证的训练环境:从 184k 爬取条目中筛出 11,897 个可离线稳定执行的技能,围绕四种推理结构自动构造 6,772 个(约 6.8k)带参考解和可执行验证器的任务,采集 19,070 条通过验证的成功轨迹用于 SFT;量化目标是让 2B 到 122B、三个家族的六个模型在四个技能使用基准上全面提升,并验证增益能迁移到训练中未见过的技能(held-out skills)与少数派推理结构上。

与已有工作不同的是,已有任务/环境合成工作按驱动源分三类:任务驱动(Endless Terminals 先写任务再建容器环境)、环境驱动(EnvScaler、Agent-World 先建环境再配任务)、技能驱动(SKT 用模板从 skills.sh 技能生成任务包)。本文属技能驱动,但抓住两个被忽视的点:一是围绕显式『推理结构』——程序执行、溯因诊断、约束满足、偏序规划——定义四种任务 profile,使技能被应用的方式多样化,而非模板化的规则套用(SKT 评测集几乎全是规则套用);二是在双重执行校验之外增加一道 reviewer 对验证器本身的健全性审计——检查信息泄漏、过严(错杀合法替代解)与过弱(放水错误解),先前流水线只验证『任务可解』,不审计『奖励信号是否可靠』。

核心方法

直觉上,这像把一座开源图书馆改造成驾校:教材(技能)已经写好,缺的是『课程』(任务)、『考卷』(验证器)和『标准答案』(参考解)。技术路线分三阶段。阶段一,技能采集与筛选:从 skills.sh 与 GitHub registry 爬取 184,430 条技能条目,去重后 51,131 个,经 LLM 加规则标注(与人工专家一致率 94%)筛出 11,897 个可离线运行、无 GPU 依赖、非破坏性、≤300 文件的技能。阶段二,任务构造:对每个技能按四种推理结构之一(程序执行、溯因诊断、约束满足、偏序规划)生成任务包 $T=(u, E, x_0, v, \rho)$——任务指令、Docker 环境、初始工作区、可执行验证器、参考解;builder-reviewer 系统先建环境(构建镜像并独立验证依赖),再过三道门:fit-check(技能撑不起该结构就跳过)、有效性($v(x_0)=0$ 且参考解执行后 $v=1$)、质量(审查泄漏与验证器宽严)。阶段三,轨迹采集与训练:Kimi-K3、DeepSeek-V4-Flash、GLM-5.2 三个教师 × MiniSwe-Agent、AgentFly、Terminus-2、OpenCode 四种 harness,产出 19,070 条成功轨迹用于 SFT。

最本质的创新是『方向反转 + 奖励函数审计』。方向反转:先前工作(SkillRL、SAGE 等)让智能体在自己探索的环境中提炼技能,技能学习被锁死在少数域、且技能被编译进权重;SkillGym 反其道而行,从外部已有的 3.5k 个社区技能出发反向构造环境,保持技能外置,训练的是『使用公开技能』这一可迁移的通用行为——对 held-out 技能的增益(+19.5)甚至高于 held-in(+17.0)证明了这一点。奖励函数审计:多数合成环境流水线只做执行校验(初始态失败、参考解通过),但一个能通过双重执行检查的验证器仍可能很糟——只 grep 关键词会放水(过弱),断言导入风格会错杀等价解(过严),或在指令、工作区中泄漏答案。SkillGym 的质量门让 reviewer 按『最紧但接受所有正确解』的标准逐项审查验证器,builder 最多修 5 轮。消融证实:同等 token 预算下,用过审任务训练比只用执行校验通过的任务训练,在自建测试集高 4.7 点、SkillEval 高 6.7 点、Skill-Use-Bench 完成分高 9.3 点。

方法步骤详情

第一步,爬取与筛选:从 skills.sh(9,724 个热门技能)与 claude-skill-registry(174,706 条)下载完整技能文件夹,经 LLM 筛查与规则过滤(真实技能、英文、非存档仓库、无运行时网络、无 GPU、非交互、非破坏性、≤300 文件)得到 11,897 个技能,覆盖 19 个域。第二步,环境构建:builder 读 SKILL.md 写 Dockerfile 与依赖文件,reviewer 构建镜像并在容器内『真跑依赖』(import 并调用而非元数据检查),通过则固化,否则反馈重建。第三步,任务构造:builder 按 profile 的 fit-check 决定跳过或开工,产出 instruction.md、workspace 初始文件、solve.sh 参考解、test.sh 验证器与 grading.json;有效性门要求 $v(x_0)=0$ 且参考解执行后 $v=1$;质量门由 reviewer 审查答案泄漏与验证器过严/过弱(builder 最多修 5 轮)。难度层要求:真实规模输入防手算、验证器从输入重算期望值、至少一步依赖技能文档中的非显然知识。第四步,轨迹与训练:三教师 × 四 harness(变化系统提示、工具名与 schema)执行任务,19,070 条成功轨迹(中位 25k tokens)以 2 epochs、lr $10^{-5}$、AdamW、batch 128 训练 MiniCPM5-2B、Ministral-3-8B 与 Qwen3.5-4B/9B/27B/122B-A10B,共 64 GPU 小时。

技术新颖性

与最近的同方向工作 SKT 相比:SKT 用模板生成任务、评测集集中在『把技能给的规则套到条目列表』一种结构上,且无验证器审计;SkillGym 显式定义四种推理结构契约并配 reviewer 审计,构造的任务覆盖了事后标注的全部五种结构。与 SWE-bench 式溯因诊断、TravelPlanner 式约束满足相比,那些工作各自只覆盖一种结构且依赖人工构造;SkillGym 把它们统一为可自动实例化的 prompt 契约(附录 B 给出全部四套)。与 SkillsBench、Skill-Use-Bench 等基准相比,那些只有几百道人工题、专为评测设计;SkillGym 提供数千道可验证训练题,反用这些基准测迁移。工程化程度也罕见地透明:全程 API 成本仅 $5.7k–8.4k(约每任务 $1),任务构造用 DeepSeek-V4-Pro 离峰价且 58.4B 输入 tokens 命中缓存,轨迹采集仅 $0.14k。

Overview of SkillGym. Public skill packages are curated and transformed into executable tasks through two stages of builder-reviewer interaction: raw environment building and task authoring. Execution validation and quality review support task refinement, followed by multi-harness trajectory collection and supervised finetuning.
Figure 1: Overview of SkillGym. Public skill packages are curated and transformed into executable tasks through two stages of builder-reviewer interaction: raw environment building and task authoring. Execution validation and quality review support task refinement, followed by multi-harness trajectory collection and supervised finetuning.
(a) The parts shared by every task profile; the task-type contract differs across the four reasoning structures. (b) Tasks per domain (6,772 tasks from 3,494 skills). (c) Token length of successful (19.1k) and unsuccessful (15.6k) teacher trajectories; dashed lines mark the medians.
Figure 2: (a) The parts shared by every task profile; the task-type contract differs across the four reasoning structures. (b) Tasks per domain (6,772 tasks from 3,494 skills). (c) Token length of successful (19.1k) and unsuccessful (15.6k) teacher trajectories; dashed lines mark the medians.

实验结果

主实验(Table 1)覆盖 6 个骨干 × 4 个基准共 24 组对比,22 组提升,平均增益:自建测试集 +13.8、SkillEval +9.7、SkillsBench +9.7、Skill-Use-Bench SU +41.2。亮点:Qwen3.5-9B 从 41.3→59.5(自建)、65.7→74.7(SkillEval),双双超过 397B 的未训练 Qwen3.5-A17B(55.8/73.8);27B 在 SkillEval 上(80.1)超过三个教师中的两个;Ministral-3-8B 提升最猛(自建 17.5→49.5,SU 4.3→55.1);SkillsBench 增益随规模增长(4B +4.2 → 122B +23.5),2B 是唯一在该基准下降的(10.8→6.1)。迁移分析(Figure 3a):held-out 技能任务 42.5%→62.0%(+19.5),高于 held-in 的 +17.0,说明学到的是通用技能使用行为。技能收益分析(Figure 3b):基模型给技能仅多赚 7.5 点(33.8%→41.3%),SFT 模型多赚 16.5 点(43.0%→59.5%),且不给技能也涨 9.2 点。行为分析(Figure 4):SU 的 Trigger 分量从 28.0 暴涨至 96.0——基模型仅约三分之一任务会打开相关技能,这是其技能使用差的主因;Compliance 32.5→49.0,Boundary 57.7→64.0。结构分析(Figure 7):各结构增益均匀(自建 +16.9~+22.1),训练中仅占 12% 的规则应用结构在 SkillEval 上也涨 13.9 点,控制难度后的回归未见结构特异效应。技能关键性验证(Table 3):教师之一 Kimi-K3 无技能 60.5% → 有技能 68.8%(+8.3),52 题仅凭技能解出(McNemar 检验 p≈10^{-4}),程序类任务收益最大(+16.0)。

Main evaluation results, higher is better. SkillEval and SkillsBench show mean ± standard deviation over three runs; the other benchmarks use one run.
Table 1: Main evaluation results, higher is better. SkillEval and SkillsBench show mean ± standard deviation over three runs; the other benchmarks use one run.
Data ablations on Qwen3.5-9B (64k context, 2 epochs). Each pair is trained on a token-matched subset of SkillGym trajectories (110M tokens for review, 132M for structure).
Table 2: Data ablations on Qwen3.5-9B (64k context, 2 epochs). Each pair is trained on a token-matched subset of SkillGym trajectories (110M tokens for review, 132M for structure).
Kimi-K3 on the SkillGym test set without and with skills.
Table 3: Kimi-K3 on the SkillGym test set without and with skills.
Skill curation funnel by source. Registry skills are fetched from their GitHub repositories; skills that could not be fetched and exact duplicates are removed before screening.
Table 6: Skill curation funnel by source. Registry skills are fetched from their GitHub repositories; skills that could not be fetched and exact duplicates are removed before screening.
Collected trajectories. Successful trajectories pass the task verifier; unsuccessful ones are graded and fail.
Table 9: Collected trajectories. Successful trajectories pass the task verifier; unsuccessful ones are graded and fail.
Estimated API cost of building SkillGym at DeepSeek off-peak prices per million tokens.
Table 11: Estimated API cost of building SkillGym at DeepSeek off-peak prices per million tokens.
(a) Qwen3.5-9B success rate before and after SkillGym SFT, overall (400 tasks) and per skill split (200 each), with skills available. (b) Overall success rate without and with skills.
Figure 3: (a) Qwen3.5-9B success rate before and after SkillGym SFT, overall (400 tasks) and per skill split (200 each), with skills available. (b) Overall success rate without and with skills.
Mean component scores on Skill-Use-Bench for Qwen3.5-9B.
Figure 4: Mean component scores on Skill-Use-Bench for Qwen3.5-9B.
Share of tasks annotated with each reasoning structure (left; a task can have several) and each skill role (right). Columns: a stratified SkillGym training sample (n=300), the SkillGym test set (n=400), SkillEval (n=100), and SkillsBench (n=87).
Figure 6: Share of tasks annotated with each reasoning structure (left; a task can have several) and each skill role (right). Columns: a stratified SkillGym training sample (n=300), the SkillGym test set (n=400), SkillEval (n=100), and SkillsBench (n=87).
Change in success from Qwen3.5-9B base to SkillGym SFT for tasks with each structure, with skills available. Dots show mean paired differences and lines 95% task-bootstrap intervals; coral marks intervals that exclude zero, and hollow markers denote fewer than 15 tasks. Dashed lines show each set's overall gain.
Figure 7: Change in success from Qwen3.5-9B base to SkillGym SFT for tasks with each structure, with skills available. Dots show mean paired differences and lines 95% task-bootstrap intervals; coral marks intervals that exclude zero, and hollow markers denote fewer than 15 tasks. Dashed lines show each set's overall gain.
查看结构化数据
任务指标本文基线提升
SkillGym 自建测试集(400 题,含 held-out 技能) 任务成功率(%) Qwen3.5-9B + SkillGym SFT:59.5 Qwen3.5-9B 基模型:41.3;未训练 Qwen3.5-397B-A17B:55.8 较基座 +18.2,9B 超过 397B 模型 +3.7
SkillEval(SKT 构造的技能使用评测) 归一化奖励均值(3 次运行) Qwen3.5-9B + SkillGym SFT:74.7 同模型基座 65.7;未训练 Qwen3.5-397B-A17B:73.8;SKT SFT 报告值 74.1 较基座 +9.0,9B 追平/超过 397B(+0.9)
SkillsBench(专家编写、8 领域) 归一化奖励均值 Qwen3.5-122B-A10B + SkillGym SFT:53.6 同模型基座:30.1 +23.5(增益随规模从 4B 的 +4.2 增长)
Skill-Use-Bench(技能触发/流程遵循/边界遵守) SU 综合分 Qwen3.5-9B + SkillGym SFT:49.6 同模型基座:14.8 +34.8(六个骨干平均 +41.2)
技能触发率(SUB Trigger 分量,Qwen3.5-9B) 分量得分(0–100) 96.0 28.0(基模型仅约 1/3 任务会打开相关技能) +68.0
质量审查消融(token 匹配子集,Qwen3.5-9B) SkillEval 归一化奖励 过审任务训练:47.9 仅执行校验任务训练:41.2 +6.7(自建测试集 +4.7,SUB 完成分 +9.3)

局限与改进

作者承认的局限:(1)SkillsBench 增益高度依赖技能角色——参考文档类 +28.0,但『领域方法』类 +2.3、『自带工具』类 +0.0、『修改系统』类 -0.1(Figure 5),说明训练主要教会『查阅技能』而非『套用方法』;(2)数据消融中所有小规模子集模型在 SkillEval 上反而低于基座(41.2 vs 65.7),因 64k 上下文下许多 rollout 重复推理耗尽输出预算;(3)只做 SFT 未做 RL。我的观察:(1)数据分布偏斜——技能池中软件工程占 53%,任务靠每域配额才勉强均衡,agents/meta 与 writing 两个域被整体排除;(2)构造通过率有限:6,772 个任务中 1,581 个(约 23%)reviewer 未在轮次预算内解决严格性担忧,只能标记 unresolved,偏序任务另批构建未计入统计,全自动质量门仍依赖配额干预;(3)成功轨迹中 Kimi-K3 贡献约 56%,多样性受教师能力上限约束,15.6k 条失败轨迹被弃用、未用于偏好学习;(4)『从输入重算期望值』要求技能知识可程序化表达,对文档型技能友好、对工具型技能天然困难,可能正是 Figure 5 结构性偏科的成因之一。

独立分析的弱点

第一,『查』与『用』的鸿沟:Trigger 涨到 96.0 但 Compliance 只到 49.0,模型学会了打开技能却不总照做;改进方向是提高程序执行类任务占比、引入逐步检查的过程奖励。第二,方法/工具型技能零增益:自带工具的技能 +0.0、修改系统的任务 -0.1,部分源于筛选排除了需运行时联网的技能(占 31.4%),而工具价值必须真实调用才能兑现;改进方向是为联网技能构建带 mock API 的离线沙箱。第三,教师数据天花板:56% 轨迹来自 Kimi-K3,教师解不出的任务永远没有训练信号,失败轨迹被完全浪费;改进方向正如作者所言,用现成验证器做 RL,把失败轨迹转为负样本或 DPO 偏好对。第四,质量门不彻底:23% 任务 unresolved,与过审任务混在同一池发布却未区分用途;改进方向是按审查轮次或缺陷类型加权采样,或对 unresolved 任务定向 repair。第五,评测口径单一:评测固定用只允许 Bash 的 MiniSwe-Agent,而训练覆盖 4 种 harness,接口不匹配可能扭曲真实部署时的表现,缺少跨 harness 评测矩阵。

未来方向

作者明确提出两个方向:其一,在 SkillGym 环境上做强化学习——每个任务的验证器已经提供现成的结果奖励(outcome reward),19k 失败轨迹也可转化为负信号或偏好数据;其二,针对『领域方法』与『自带工具』型技能重新设计数据构造,使任务强制要求执行技能脚本而非仅阅读文档,弥补 Figure 5 揭示的短板。基于论文成果可延伸的方向:把四种推理结构 profile 泛化为可组合的『任务文法』,自动搜索技能×结构的组合空间并按训练信号动态配额;用同一流水线为垂直领域(生物信息、合规审查等)的企业内部技能定向生成训练环境;利用 Kimi-K3 在不同任务类型上的技能增益差异(程序类 +16.0 到偏序类 +3.0)构建难度课程表做课程学习;以及研究技能内容渐进式披露(progressive disclosure)策略对 Trigger 与 Compliance 的因果影响,把『会查』进一步转化为『会用』。

复现评估

复现条件相当友好。代码与数据已在 GitHub 开源(github.com/Reason-Wang/SkillGym),包含 6,772 个任务环境与轨迹数据。成本透明:按 DeepSeek 离峰价估算,任务构造 $3.6k(实测,含失败尝试外推上限 $6.3k)、质量审查约 $1.9k、轨迹采集仅 $0.14k,总计 $5.7k–8.4k,约合每个发布任务 $1,中等预算团队即可负担。算力方面 SFT 只需 64 GPU 小时(9B、batch 128、2 epochs),单节点 8×A100 一天内可完成。复现难度中等:主要工程量在容器化执行基建(Docker 沙箱、断网约束、非破坏性检查)与 builder-reviewer 循环的提示词工程;附录 B/C 完整给出四个 profile 的 prompt 契约与 builder/reviewer 系统提示,附录 D 给出四类任务完整示例,可直接照搬。风险点:skills.sh 排行与 GitHub registry 随时间漂移,标注与教师模型版本更替会改变数据分布;部分基线(如 SKT SFT 的 74.1)引用自他文报告值且 harness 不同,严格对齐需自行复跑。

相似论文推荐