SkillGate:训练长程智能体的策略内技能选择 SkillGate: Training In-Policy Skill Selection in Long-Horizon Agents
把技能选择从结果奖励噪声中拆出,用双通道信用分配单独训练
前置知识
GRPO(组相对策略优化)
一种面向 LLM 的策略梯度 RL 算法:对同一 prompt 采样一组轨迹(如 8 条),用组内奖励的均值和标准差归一化得到优势 $A(\tau)=\frac{R(\tau)-\mu_G}{\sigma_G+\epsilon}$,同一条轨迹内所有 token 共享同一优势值(broadcast),并以 PPO 式 clip 目标限制单步更新幅度。
SkillGate 的任务通道就是标准 GRPO,本文全部改动都建立在这个序列级广播优势之上,理解它才能看懂作者要修复什么。
信用分配问题
长轨迹 RL 中通常只有终局奖励 $R(\tau)$ 可用,如何把这份奖励归因到具体 token 或动作上即信用分配问题。在优势广播方案下,一个 token 对梯度的贡献正比于其 token 数占比,因此短而关键的动作(写出技能名)会被成千上万个执行 token 稀释。
本文的核心诊断“选择者信用饥饿”正是信用分配失败的具体形态,方法的每一步设计都是对该问题的针对性修正。
技能库与渐进式披露
智能体框架把流程性知识封装为技能文件(如 SKILL.md),agent 平时只见技能名和一行描述,需要时再用工具调用读取正文。公共技能库已有数千条,远超上下文容量,于是“何时读、读哪个”成为策略必须在回合中途做出的决策。
论文要训练的就是这个中途读技能的选择动作,全文的 token 划分与效用函数都围绕 read 调用展开。
优势与损失权重的分工
优势 $A$ 决定更新的方向与符号(策略梯度按 $\nabla\log\pi\cdot A$ 缩放),而每个 token 的损失权重 $w_t$ 决定它在总损失中的响度。本文的关键机制之一是权重重标定 $\sum_t w_t = N$,使选择通道即使 token 极少也不被稀释。
不理解“优势值”与“损失质量”的分工,就无法理解公式 (2) 长度不变重标定的意义。
混合技能席(mixed slate)
评测设置:每个任务配 $K=16$ 个候选技能,其中 1 个是为该任务编写并验证过的 oracle,5 个是主题相邻但功能错误的误导性硬负例,其余 10 个从 2,045 条社区技能库抽样的相关/无关旁观者。agent 不被告知类别,可自由决定读或不读。
论文所有数字都在此标准设置下测得,“选对”的定义(读到 oracle)与效用函数都依赖 oracle 的存在。
研究动机
智能体技能库已膨胀到数千条,远超上下文窗口,agent 只能凭技能名和一行描述在回合中途决定读哪个文件——这个选择由策略自身发出,却长期没有训练信号直接优化它。SRA-Bench 发现基础模型经常加载错误技能,Canary Tools 的诱饵实验暴露系统性选择错误,扩大候选席甚至会因技能遮蔽降低成功率。最直觉的补救——用任务结果奖励做策略梯度 RL——被作者证明存在结构性缺陷:他们审计一次标准 GRPO 运行的 12,800 条训练轨迹,发现命名技能的 token 仅占轨迹损失权重的中位数 0.14%,且随轨迹变长稀释约 7 倍;约五分之二读对 oracle 的轨迹因后续执行失败而继承负优势,最长轨迹档位上正确选择被惩罚的概率超过 50%(跨过抛硬币线);而匹配 prompt 组内读对 oracle 本身价值 +11.2 个百分点的成功率。一个如此有价值的决策,得到的信号却几乎为零且越来越多是错号的。
本文的目标是本文的目标是让“策略自身在回合中途选择哪个技能”成为一个被显式、独立训练的决策,而不是淹没在任务结果奖励的噪声里。作者的核心主张是选择与执行应由不同证据判定:是否读对了文件只看候选席就能知道,任务做得好不好只能看结果,把两者塞进同一个优势会让彼此的信号互相污染。因此目标不是设计更好的奖励或更细的时间分辨率,而是在不改动 rollout、奖励函数和优化器的前提下,仅通过控制优势允许落在哪些 token 上,使一个 9B 策略在 16 候选混合技能席的五项智能体基准上把试验成功率从 40.8% 提到 53.2%,同时把误导性技能暴露压掉约三分之二、读更少的技能,并验证收益能迁移到训练时完全没见过的 Claw-Eval 任务上。
与已有工作不同的是,已有工作分两路:一路在执行前改进路由,如 SkillReducer 与 Capability Pages 重写技能表示,SkillSight、SkillRet、SkillRouter 校准或训练检索;另一路在任务奖励下联合优化技能构造与使用,如 SkillRL、Skill1、SkillRise。但它们要么把选择交给策略外部的组件,要么仍让结果优势间接擦过选择 token,都没有针对“策略自己发出的那次 read”做信用设计。本文的独特切入是:第一次在真实运行的训练产物上量化选择者信用饥饿——份额、符号、价值三个量都随轨迹长度单调恶化而决策价值不变;并提出解法不是重新分配同一个广播优势,而是把一条轨迹的 token 支撑划分为两个互不相交的信用通道:结果信用只到执行 token,动作局部优势只到命名技能的 token,使选择权重与轨迹长度彻底解耦。
核心方法
直觉上,SkillGate 只回答一个问题:一次策略梯度更新中,每个优势值允许落到哪些 token 上。它把一条轨迹的训练 token 沿 read 动作切开:命名技能的身份 span 归选择,其余全部 assistant token(推理与其他工具调用)归执行。更新时两条通道共存于同一个 GRPO 步:任务通道沿用组归一化结果优势 $A_{\text{task}}(\tau)=\frac{R(\tau)-\mu_G}{\sigma_G+\epsilon}$ 并广播到执行 token,但整个 read 调用被从损失掩码中删除,使任务结果无法修订选择;选择通道只在身份 token 上施加动作局部优势,效用为“恰好读一次且读的是 oracle”记 1、否则记 0,再在组内全部读动作上中心化。rollout、终局奖励和优化器均不改动。训练 Qwen3.5-9B 只需在标准 GRPO 配方上加一个系数 $\lambda=0.20$ 的选择项:100 步、每 prompt 8 条 rollout、全局 batch 128、16 张 H800 即可完成。
核心创新是把“选择”从执行噪声中物理隔离:两条通道的 token 支撑按构造不相交——身份 span 位于被删除的调用 span 内部,实现中在掩码构造、上下文并行分片和损失三处断言,违例即中止训练。与外部路由器的本质区别在于选择仍由同一策略在同一轨迹内完成,且选择项不是行为克隆、交叉熵或奖励加成,它只作用于策略自己生成的 token,保持完全 on-policy。效用函数的三个性质防止作弊:基线在动作组而非轨迹组上中心化,一条杂读四个候选的兄弟轨迹会拉低全组基线;动作加权的 $A_{\text{sel}}$ 之和恰为零,通道对“读多读少”没有立场;组内全对或全错时效用并列、$A_{\text{sel}}\equiv 0$,通道自动静默,信号只在组内意见分歧处出现。单读约束则堵住“读满全席买信用”的漏洞:读 oracle 后再读三条得 0 分,读两次同样得 0 分。
方法步骤详情
第一步,rollout 时跨度归因:仅从 assistant 生成文本识别打开技能文件的 read 动作(观测回显不算),在训练分词器下记录调用 span $C(a)$ 与嵌套的技能名身份 span $I(a)$,对不齐则判失败而非错误记账。第二步,任务通道:计算组归一化结果优势并广播,掩码删除所有 read 调用(含函数名与路径包装),剩余即执行 token。第三步,选择通道:按“$u(a)=1$ 当且仅当 $|A(\tau_a)|=1$ 且 $a$ 读 $s^\star$”计算 $A_{\text{sel}}(a)=u(a)-\frac{1}{|A(G)|}\sum_{a'}u(a')$,不做标准差归一化以免放大小样本噪声。第四步,权重重标定:$w^{\text{task}}_t=\frac{N}{N_{\text{task}}}m^{\text{task}}_t$、$w^{\text{sel}}_t=\frac{N}{M|I(a)|}$,使两通道每批次各占总损失质量 $N$,每个被记账动作权重恒为 $N/M$、与轨迹长度无关。第五步,联合优化 $\mathcal{L}=\sum_t w^{\text{task}}_t\ell_{\text{clip}}+\lambda\sum_t w^{\text{sel}}_t\ell_{\text{clip}}+\beta\mathcal{L}_{KL}$,取 $\lambda=0.20$、$\beta=3\times10^{-5}$、学习率 $10^{-6}$,从同一 Qwen3.5-9B SFT 检查点起训 100 步。
技术新颖性
技术新颖性体现在四点。其一,诊断新:首次在一次真实运行的训练产物上度量选择者信用饥饿,给出份额(中位 0.14%、随长度稀释 7 倍)、符号(约五分之二错号、最长档超抛硬币线)、价值(+11.2pp)三个随轨迹长度单调恶化的量化证据。其二,公式化新:现有细粒度信用方法(步级过程监督、回合级信用、工具专属奖励、反事实 token 信用)针对别的事件,没有一个把策略中途多路技能读取的身份 token 隔离成长度无关的独立损失通道。其三,机制新:删除式掩码加等质量重标定保证“删掉 read 调用”不会悄悄降低任务通道的有效学习率,选择决策的损失权重与包含它的轨迹长度无关,且每批次数值校验两个总和。其四,定位新:与 AutoTool 的 KL 正则 Plackett–Luce 排序、daVinci 的独立选择 agent 不同,SkillGate 不改技能描述也不改架构;且因效用不来自任务结果,它绕开了绑定结果奖励加权方案的不可能性结果。
实验结果
主实验(385 试协议、16 候选混合席)中,SkillGate 总体成功率 53.2%,高于同预算 outcome-only RL(47.0%)、SFT 初始化(40.8%)、Selection BC(44.7%)、SelSkill-DPO(46.2%)与 Task-mask only(46.0%),在五个基准上均为 9B 规模最佳或并列最佳(Claw-Eval 60.2%、SETA 54.2%、SWE 65.0%、TB2 37.5%),并超过 Qwen3.5-27B(43.6%)与 Qwen3.5-397B-A17B(51.7%),但仍低于约 60-61% 的最强前沿模型。行为上,oracle 暴露从 54.3% 升至 83.9%,误导暴露从 69.6% 降至 21.8%,每次试验读取数从 1.88 降到 1.11。消融显示信用落点须逐级收紧才有效:无处(42.1%)、组级(41.8%)、整条轨迹(41.8%)、首个 oracle 读(45.0%)、SkillGate 单读 oracle(50.0%),clean single-oracle 率从 21.4% 升至 75.4%。外部选择实验中,路由更准的 27B 路由器(top-1 68.6%)下游成功反而更低(36.8%),而 SkillGate 自选的 50.0% 甚至超过把答案喂给冻结执行器的 oracle 注入天花板(48.2%)。成本上,唯一技能读取降 41.2%、turns 降 5.2%、技能正文 token 约 2.2k,仅为满席预加载 34.7k 的约 1/16。留出 147 条 Claw 任务 pass@1 为 61.2%。统计上,与 SkillRL 的差异 +7.9pp(95% CI [2.1, 14.3])排除零,但 pass@4 的 +7.1pp(CI $[-1.4, 15.7]$)不显著。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 五基准汇总(385 试) | Trial success (%) | 53.2 | SkillRL (outcome only) 47.0;SFT 初始化 40.8 | 较同预算 outcome-only RL +6.2pp,较 SFT +12.4pp |
| SWE | Trial success (%) | 65.0 | SkillRL 45.0;SelSkill-DPO 60.0 | 较 outcome-only +20.0pp |
| Claw-Eval(训练未见) | Trial success (%) | 60.2(留出 147 题 pass@1 61.2) | SkillRL 57.1 | +3.1pp,支持迁移而非记忆 |
| SETA | Trial success (%) | 54.2 | SkillRL 50.0 | +4.2pp |
| 读行为(280 试协议) | Oracle / 误导暴露 (%) | 83.9 / 21.8(reads/trial 1.11) | SkillRL 54.3 / 69.6(reads/trial 1.88) | oracle +29.6pp,误导 −47.8pp,读取 −41.2% |
| 信用设计消融(280 试) | Trial success (%) | 50.0(clean single-oracle 75.4%) | Action credit 45.0;SkillRL 42.1 | 较最强消融变体 +5.0pp |
| 外部选择对比(280 试) | Trial success (%) | 50.0(SkillGate 自选全席) | Qwen3.5-27B 路由器 36.8;oracle-only 注入 SFT 48.2(天花板) | +13.2pp(对 27B 路由器),超过注入天花板 +1.8pp |
局限与改进
作者明确承认三条局限:每个配置只有单次运行(100 步、16 张 H800),不确定性只能靠任务级 bootstrap 刻画,而逐基准区间基于 8 到 30 个任务、全部跨越零,连 pass@4 的总体差异 +7.1pp(CI $[-1.4, 15.7]$)也不显著;方法要求训练任务的正确技能已知,oracle 的构造与人工验证在真实开放场景未必可得;动作局部方案无法奖励“弃读”——当没有任何技能适用时,不读这一正确决策得不到任何信用。我的补充观察:每任务恰有一个 oracle 的强假设简化了真实中常见的多技能组合情形,单读约束在需要串联多个技能的任务上可能适得其反(留出集上无此约束的 Action credit 反而更高也佐证了这一点);前沿参考行使用原生函数调用等接口适配,属非受控比较;Claw-Eval 161 题为自建数据且 oracle 正文经作者修复,存在构造偏倚风险;此外训练信号依赖误导硬负例与 oracle 在描述层面足够可分,而公共库中大量技能缺少可用路由描述,训练分布与部署分布可能有差距。
独立分析的弱点
第一,单读约束与多技能需求冲突:真实任务常需按序读取多个技能,而效用要求“恰好一次读”,策略可能被训练成回避合法的多读,留出集上 Action credit(65.3%)反超 SkillGate(61.2%)即是一例。改进方向是把效用从单读 oracle 推广为集合级目标,如按 oracle 集合覆盖或最小充分集记账,同时保留反杂读的动作组基线。第二,无法信用弃读:16 个候选皆不适用时正确行为是不读,但 $u(a)$ 只定义在读动作上;可引入显式“不读”动作或用(读错技能 vs 不读)负例对扩展效用表。第三,oracle 依赖昂贵的人工验证:附录 C 描述了逐一核对并修复技能正文的过程(错误端点、错误夹具假设等),可用执行轨迹通过率自动筛选 oracle 或对比合成 hard negative 以降低成本。第四,超参与规模未充分探索:$\lambda=0.20$ 等选择缺乏敏感性分析,且只测了 9B 一个规模,建议扫描 $\lambda$ 网格并复现到 3B/27B 验证规模效应。第五,单次运行使细粒度结论(如 SWE 上 +20pp)置信度有限,应多种子重复或扩大任务规模。
未来方向
作者在结论中把方法定位为一般原则:当一条轨迹交织着真正不同类型的决策时,划分 token 支撑是对单个广播优势做重分配的廉价且可验证替代——这直接暗示可推广到检索决策、工具选择、计划节点等其他中途决策事件。基于本文成果可延伸的方向包括:把效用推广到读集合以支持多技能组合选择并信用弃读;让执行通道也获得过程监督类的步级信号,与选择通道互补;构建自动 oracle 验证与 hard negative 合成的自监督流水线,降低对人工标注的依赖;探索 SkillGate 与外部路由的混合,因为表 3 显示对 SkillGate 注入 oracle 仍能从 50.0% 提到 52.9%,说明选择上限尚未触及;把技能库从 2,045 条扩展到数万条,检验选择难度加大后饥饿效应与方法的鲁棒性;以及在 >16k token 的超长轨迹档位上验证长度不变加权的收益是否进一步放大。
复现评估
可复现性较好。代码开源于 GitHub(DeepExperience/SkillGate),9B 模型权重发布在 HuggingFace(simonlqy/SkillGate-9B);附录 F 完整给出 read 调用表面、选择指令与候选席条目格式,附录 A/B/C/E 详述 385 试协议、前沿模型接口控制、留出集构造与不确定性方法(任务聚类 bootstrap 50,000 次重采样)。算力需求温和:RL 仅 100 步、每 prompt 8 条 rollout、全局 batch 128、学习率 $10^{-6}$,单配置 16 张 H800 完成,学术实验室可负担。主要难点在数据构造:491 个训练任务、每任务 1 个验证过的 oracle 加 5 个误导硬负例的混合席、来自 2,045 条公共技能的旁观者采样,以及 span 归因与 fail-closed 逻辑的工程细节。低成本入口是第 4.6 节的离线审计(无需训练,只重读训练轨迹重算 GRPO 优势)或表 2 的五变体消融(各 100 步小规模),可先验证核心机制再复现完整系统。
论文图表
上半部分示意一个序列级广播优势同时更新选择技能的少量身份 token 和数千个执行 token;下半部分给出 12,800 条训练轨迹上的三个量化证据:选择 token 的损失份额随轨迹变长稀释约 7 倍(中位 0.14%),读对 oracle 的轨迹中约五分之二继承负优势且随长度上升跨过抛硬币线,而匹配 prompt 组内正确读取价值 +11.2pp 任务成功。
这张图是全文动机的核心,用一图讲清“为什么结果奖励教不会技能选择”,是理解 SkillGate 必要性的起点。
把 SkillRL (outcome only) 的 12,800 条训练轨迹按 5 个长度档分层:(a) read 调用与身份 token 的中位损失权重份额随长度下降;(b) 读与不读优势差的组内信噪比坍缩;(c) oracle 读取继承负优势的份额单调上升并跨过 50%,而 SkillGate 按构造为零。
用一次已完成运行自身的训练产物逐档验证“饥饿随视界恶化”的诊断,是动机部分三个论断(份额、符号、价值)的直接证据来源。