论文标题:Skill1: Unified Evolution of Skill-Augmented Agents via Reinforcement Learning 作者:Yaorui Shi 等(美团 / LongCat 团队) arXiv:2605.06130
---
一句话结论
技能库不是「外挂硬盘」——如果你把选择、利用、蒸馏当成三个独立模块各玩各的,那你的Agent本质上在同时做三件互相打架的事。Skill1 的核心洞察是:用单一策略、单一信号、同一套梯度,让三个能力围绕「任务成败」这个唯一目标共同进化。
---
先搞清楚问题:Agent 的技能库为什么容易变成垃圾堆
想象你请了一个助理。你给了他一个「技巧手册」,里面写满了过去办事的经验。但现在问题来了:
- 选手环节:助理每次遇到新任务,要决定翻手册的哪一页——选错了,后面全崩
- 执行环节:选对了技巧,但执行时走样——手册上写的是"敲门",他一脚把门踹了
- 更新环节:任务做完了,要把新经验写进手册——但写什么?把整段流水账抄进去,还是提炼成可复用的套路?
Skill1 说:这三个环节不是流水线,是同一个策略在不同时间尺度上的三重奏。
---
核心发现:一个信号拆三份,低频选技能,高频产新招
3.1 信号分解的本质
这是论文里最漂亮的地方。作者没有发明新的奖励函数,而是对同一个任务结果信号 r(τ) 做了时间域分解:
| 成分 | 频率特征 | 归因对象 | 物理直觉 |
|---|---|---|---|
| 低频趋势 | 缓慢变化 | 技能选择 | 某个技能长期好用 → 提升它的「信用评分」 |
| 高频变化 | 快速波动 | 技能蒸馏 | 某次经验突破了现有天花板 → 提炼新技能入库 |
| 绝对值 | 原始信号 | 技能利用 | 策略执行得好不好 → 直接优化 |
3.2 具体实现
选择信号——指数移动平均 EMA:
$$U(s) \leftarrow (1-\alpha) \cdot U(s) + \alpha \cdot r(\tau_i)$$
关键设计:更新所有检索到的候选技能,而非仅选中的那个。这意味着共检索就是证据——如果某个技能总是和成功任务一起被检索到,即使没被选中,它也获得了间接信用。
蒸馏信号——残差:
$$R^{\text{distill}} = r(\tau_i) - \hat{U}_i$$
其中 $\hat{U}_i$ 是当前候选技能中的最高效用。直觉:如果这次经验超越了技能库的现有天花板,就提炼它;如果不如库里的东西,就抑制——防止把垃圾经验塞进去。
利用信号——原始奖励:
$$R^{\text{util}} = r(\tau_i)$$
直接、粗暴、有效。
3.3 统一优化目标
$$J(\theta) = J^{\text{util}} + \lambda_1 J^{\text{rerank}} + \lambda_2 J^{\text{distill}}$$
默认 $\lambda_1 = \lambda_2 = 0.3$。利用环节用 GRPO(组内对比),重排序用 REINFORCE(候选集不同无法组内比较),蒸馏用独立归一化的 GRPO。
---
实验结果:数字不说谎
4.1 ALFWorld(6 类任务,平均成功率)
| 方法 | 平均成功率 | 相对提升 |
|---|---|---|
| Zero-Shot | 14.8% | — |
| ReAct | 31.2% | — |
| GRPO(无技能) | 77.6% | — |
| GiGPO(最强无技能) | 90.8% | — |
| RetroAgent(先前最佳) | 94.9% | — |
| Skill1 | 97.5% | +2.6 |
- 6 类任务中 5 类第一,唯一例外 Clean(97.3 vs 99.2,但 p=0.147 不显著)
- Look 任务提升最大(+7.7 个百分点)——这类任务最需要组合多个子程序
- 相比最强无技能方法 GiGPO 提升 6.7 个百分点
4.2 WebShop
| 方法 | Score | Success |
|---|---|---|
| GiGPO | 84.4 | 72.8 |
| RetroAgent | 88.9 | 82.3 |
| Skill1 | 89.7 | 82.9 |
4.3 消融实验:验证每个组件的必要性
| 变体 | 平均成功率 | 下降 |
|---|---|---|
| Skill1(完整) | 97.5% | — |
| w/o 选择 | 91.8% | -5.7 |
| w/o 蒸馏 | 92.4% | -5.1 |
| w/o 技能库 | 80.9% | -16.6 |
| w/o 选择+蒸馏 (λ₁=λ₂=0) | 90.2% | -7.3 |
- 移除技能库跌最多(-16.6)——库是整个系统的地基
- 移除选择跌 5.7——Heat/Pick2 任务跌最多,说明多步技能路由是选择的核心价值
- 移除蒸馏跌 5.1——无蒸馏时库存原始轨迹,选择更嘈杂
- 两个辅助目标互补:同时移除比单独移除任一个更差(90.2 vs 94.0/94.9)
4.4 训练动态:三个能力真的在「共同进化」
论文的训练曲线是我最喜欢的部分——它证明了这不是三个独立模块的简单拼接:
| 指标 | 收敛值 | 顺序 |
|---|---|---|
| 选择精度 | 0.95 @ step 20 | 最先 |
| 利用成功率 | 0.8 @ step 60 | 次之 |
| 蒸馏正率 | 0.8 @ step 60 | 同步 |
| 顶级技能效用 | 0.91 @ step 85 | 最后 |
这是一个正反馈环,而非三个独立的训练过程。
---
费曼式诊断:这篇论文好在哪,弱点在哪
5.1 货物崇拜检测:通过
现有方法的问题本质上是一种「货物崇拜」——
- 有技能库的形式,但选择和蒸馏是冻结的或外部控制的 → 飞机不会来
- 有三个模块的名字,但奖励信号不一致 → 三个模块在互相打架
5.2 演示 > 论证:做得不错
训练动态图(图3/4/5)就是最好的演示——不需要看公式,三张曲线图就能让你「看到」三个能力在协同进化。这比 100 页的理论证明更有说服力。
但有一个遗憾:论文没有提供可视化案例——比如一个具体任务中,Agent 是如何从库中检索、选择、利用、然后蒸馏新技能的。如果能有一个端到端的 trajectory 可视化,会更直观。
5.3 诚实边界:作者自己承认了这些局限
| 局限 | 说明 |
|---|---|
| 库容量上限 | 5000 个技能,满了之后按效用×使用频率淘汰 |
| 冻结编码器 | 技能检索用 all-MiniLM-L6-v2 固定编码,不可学习 |
| 单一任务信号 | 假设任务成败是充分统计量,忽略了执行过程的中间反馈 |
| 技能表示 | 策略和描述都是文本,未探索结构化表示 |
---
待深挖的方向
1. 层级技能库:把 5000 个技能组织成树状结构,检索从粗到细,可能减少选择噪声 2. 负技能蒸馏:从失败经验中提取「反模式」,可能提升鲁棒性 3. 可学习的检索编码器:让技能嵌入随训练演化,而非冻结 4. 跨任务迁移:技能库在完全不同领域(如从 ALFWorld 到 WebShop)之间的复用率 5. 与 HeavySkill 的关系:美团同期两篇工作(HeavySkill 集体讨论 + Skill1 技能进化),是否有统一框架?
---
参考链接
- 论文:https://arxiv.org/abs/2605.06130
- 相关前作(美团 HeavySkill):https://zhichai.net/t/177620055