Progressive Agent Skill Generation via Reinforcement Learning
Junhao Shen, Zhanqiu Zhang, Yiwen Guo, Hong Cheng
cs.LG, cs.CL
2026-08-03
把 agent 技能生成建模成可逐条评估的编辑序列,用「回滚奖励」让每个编辑在锚定任务上证明自己,tau2-bench 比 SkillPro 高 6.7 分。
让 agent 干复杂任务,常用的办法是给它一份「技能」(skill),就是一段文本规则或操作流程,告诉它在什么情况下该调用什么工具、按什么顺序走。技能能跨任务复用,所以怎么自动把文档或过去的执行经验提炼成高质量技能,是个有价值的问题。
难点在于技能本身没有现成的对错信号。一段规则写得通不通顺、完不完整,看不出来;它到底好不好,只有让 agent 拿去跑下游任务才知道。现有的生成方法要么靠人工设计的启发式,要么走 pipeline 式的整理流程,而且针对文档和针对经验往往要分别设计,缺乏统一框架。
Skill-α 把技能生成建模成一条「顺序编辑链」。从初始技能 z₀ 开始,模型按批次读证据(文档片段或执行轨迹),每读一批就产出一个局部编辑动作,把动作类型限定在五种:Create(补缺失的规则)、Update(修不准确的)、Merge(合并重叠的)、Prune(删有害或冗余的)、Noop(保持不动)。每一步编辑后,技能就更新一次。
核心创新是「回滚奖励」(rollback reward)。一次编辑到底好不好,不是看编辑本身,而是拿一个锚定查询(anchored query)让 agent 分别用编辑前的技能和编辑后的技能各跑一遍,只有当新版成绩更好时这次编辑才得 1 分。这样每一步编辑都拿到了一个明确的、来自下游执行的评价。训练用 GRPO(组相对策略优化)做组采样,底座是 Qwen3-8B,先 SFT 热身再上 RL,执行 agent 固定为 GPT-4o。
主结果在两个设置下:文档转技能(CL-Bench)和经验转技能(tau2-bench、SpreadsheetBench)。
| 设置 | Skill-α | 最强基线 | 提升 |
| CL-Bench 平均 | 10.38% | 7.11%(SkillPro) | +3.3 |
| tau2-bench 平均 | 55.83% | 49.17%(SkillPro) | +6.7 |
| SpreadsheetBench | 27.50% | 26.00% | +1.5 |
换 Claude-Sonnet-4.5 当执行 agent,技能照样能迁移:tau2-bench 平均 70.33%,比 Anthropic 自家技能生成器的 65.83% 高 4.5 分,说明学到的技能不挑 worker。
消融里最能说明问题的是回滚奖励:去掉它,CL-Bench 平均从 10.38 掉到 3.68,tau2-bench 从 55.83 掉到 46.67。去掉 Merge/Prune 这两个「做减法」的动作同样明显退步。Noop 也非摆设,它让模型学会在该收手时收手。
技能能跨任务复用,意味着一份高质量技能是一次投入、长期收益。Skill-α 的价值不在涨了几分,而在它给「技能生成」找到了一个统一且可学习的范式:不管证据来自文档还是经验,都拆成可逐条打分的编辑,奖励直接来自下游效果。回滚奖励这个思路(用反事实对照来给中间步骤分配信用)也容易迁到别的需要细粒度信用分配的场景。
作者自己承认:奖励和 verifier 接口仍依赖具体 benchmark,技能表示目前只有文本一种形态,而且奖励是局部的回滚对比,信号偏短视,长链路任务里一次好的编辑未必立刻见效。还有一处存疑:执行 agent 固定为 GPT-4o,而锚定查询的代表性直接决定奖励质量,论文对锚定查询怎么选、覆盖够不够着墨不多。