Experience Distillation:让 Agent 把”临时记忆”变成”肌肉记忆”,还不用再和环境交互一次
场景:一个 Agent 的困境
想象你训练了一个 Agent 去做软件工程任务——修 bug、写函数、跑测试。它一开始什么都不会,但你让它在一个沙盒环境里试错:试了一种方法失败了,换一种,再失败,再换……经过 100 次交互,它终于学会了怎么处理这类任务。
现在问题来了:这 100 次交互的经验,怎么保留下来?
最直觉的方法是上下文学习(in-context learning)——把这 100 次交互的记录直接塞进 prompt 里,下次做新任务时让模型参考。这很有效,但有个致命缺陷:经验一旦从上下文里拿走,收益就消失了。每次推理你都得带着这 100 条交互记录,token 成本爆炸。
另一种方法是监督微调(SFT)——把这 100 次交互当作训练数据,直接微调模型权重。但这也有问题:直接 SFT 只能恢复 3.8% 的上下文学习收益。模型似乎从这些原始交互记录里学不到什么——因为交互记录里充满了失败、试错、冗余信息,模型学到的更多是”模仿失败”而不是”提取策略”。
第三种方法是强化学习(RL)——让 Agent 继续和环境交互,用奖励信号优化策略。但这需要更多的环境样本——而环境交互恰恰是最贵的。在真实场景里,每次环境交互可能意味着跑一个耗时实验、等一个人类反馈、执行一个昂贵操作。
Monash University 和 Stanford 的 Chenhui Gou、Haoqin Tu 等人 2026 年 7 月 23 日发布的论文(arXiv: 2607.21051)提出了第四条路:Experience Distillation(经验蒸馏)——把 Agent 的交互历史”蒸馏”进模型权重,不需要任何额外的环境交互,还能保留至少 64.8% 的上下文学习收益。
核心问题:为什么直接 SFT 不行
要理解 Experience Distillation,先得理解为什么直接 SFT 只能恢复 3.8% 的收益。
关键在于上下文学习和监督学习的信号差异。当 Agent 在上下文里看到 100 条交互记录时,它不是在”逐条模仿”——它是在提取一个”策略”:什么情况下该用什么方法、什么时候该放弃、什么时候该坚持。上下文学习利用的是 Transformer 的注意力机制,能同时看到所有记录,提取跨记录的模式。
但 SFT 是逐条学习的。它把每条交互当作独立的训练样本,让模型学习”在这个输入下产生这个输出”。问题是:交互记录里有很多”错误尝试”——如果直接 SFT,模型会学到”看到情况 A 就输出错误答案 B”。这种学习不仅没用,还有害。
这就像学开车——上下文学习是看一个老司机开 100 次,你观察他的整体策略;直接 SFT 是让你把这 100 次驾驶的每一秒都当作独立动作来模仿,包括他犯错的那几秒。前者能让你学到”驾驶感”,后者只会让你困惑。
Experience Distillation:用上下文作为蒸馏桥梁
Experience Distillation 的核心思路是:用上下文学习作为中间桥梁,把交互历史的信息”翻译”成模型权重能吸收的形式。
具体做法分两步:
第一步:上下文学习阶段。把 Agent 的交互历史放进 prompt,让模型带着这些经验做任务。这时候模型表现很好——因为它能利用上下文里的所有信息。记录下模型在这种设定下的输出。
第二步:蒸馏阶段。把上一步记录下的输出当作训练目标,不带交互历史地微调模型。模型现在要学的不是”模仿原始交互”,而是”重现上下文学习后的输出”——也就是学习”已经消化了交互经验后该怎么做”。
这个方法的关键创新在于:第二步不需要任何新的环境交互。训练数据来自第一步的模型输出,不是来自环境。你只需要收集一次交互经验,就能反复用它来蒸馏。
这和经典的”上下文蒸馏”(context distillation,Askell 等人 2022 年提出)有联系但有重要区别。经典上下文蒸馏是把”指令”或”示范”蒸馏进权重——输入是人为设计的。Experience Distillation 蒸馏的是”Agent 自己的交互历史”——输入是真实任务轨迹。这个区别让方法可以直接用于 Agent 学习场景,而不需要人工设计蒸馏数据。
实验结果:64.8% vs 3.8%
论文在两个领域做了实验:
领域一:749 个软件工程任务(基于 SWE-bench 类的代码修复任务) 领域二:6 个文字冒险游戏(text-adventure games,需要语言理解和决策)
结果对比:
| 方法 | 保留上下文学习收益 | 环境样本需求 |
|---|---|---|
| 直接 SFT(在原始交互上) | 3.8% | 已有经验 |
| Experience Distillation | 至少 64.8% | 已有经验(无额外需求) |
| 经典 RL 基线 | 相当 | 9.6 倍更多 |
几个关键数字:
– 64.8% vs 3.8%:Experience Distillation 保留了 17 倍于直接 SFT 的收益。这证明了”用上下文学习作为桥梁”的价值——同样的交互经验,经过上下文学习的”翻译”后,变得可以被权重吸收了。 – 9.6 倍样本效率:和经典 RL 相比,Experience Distillation 在达到相同性能时,只需要 1/9.6 的环境样本。对真实场景来说,这意味着 9.6 倍的成本节约——如果原来要 1000 次环境交互,现在只要约 104 次。
为什么这个方法重要
1. 打破了”上下文学习 vs 权重学习”的二元对立
之前的研究中,上下文学习和权重学习被视为两种不同的学习范式。上下文学习快但 transient(经验一拿走就没了),权重学习慢但 persistent(学到了就一直在)。
Experience Distillation 证明了:你可以先用上下文学习快速获得能力,再把这种能力”固化”进权重。两阶段结合,既保留了上下文学习的样本效率,又获得了权重学习的持久性。
2. 解决了 Agent 学习的”冷启动”问题
真实世界的 Agent 学习有一个困难:环境交互太贵。每次让 Agent 去真实环境里试错,可能意味着跑一个实验、等一个人类反馈、执行一个昂贵操作。经典 RL 需要大量环境交互来探索,这在真实场景里几乎不可行。
Experience Distillation 的思路是:收集一次经验,反复利用。你只需要一次环境交互(比如 100 次试错),然后可以在离线环境下反复蒸馏,不需要再碰环境。这把”贵的一次”和”便宜的一次”分开了。
3. 和步子哥关注的”颗粒度同构”原理呼应
步子哥之前在 Heddle 和 CodeRescue 的分析中提炼了”颗粒度同构”原理——优化颗粒度应该和被优化对象的颗粒度一致。
Experience Distillation 是这个原理的又一个实例。Agent 的经验是轨迹级别的(一条完整的交互历史),而不是单次调用级别的。直接 SFT 把轨迹拆成单次调用来学——颗粒度不匹配,所以只恢复 3.8%。Experience Distillation 通过上下文学习保持轨迹级别的处理,再蒸馏——颗粒度对齐了,所以恢复 64.8%。
这和 Heddle 把决策从”单次调用”提升到”轨迹”级别、CodeRescue 把恢复从”单次调用”提升到”恢复动作”级别,是同构的设计哲学。
诚实评价
这个方法不是没有局限。
1. 64.8% 不是 100%。Experience Distillation 仍然丢失了约 35% 的上下文学习收益。这部分损失可能来自蒸馏过程的信号损失——上下文学习利用的某些信息(比如跨记录的精细注意力模式)可能无法完全编码进权重。论文没有深入分析这 35% 到底是什么,这是一个开放问题。
2. 依赖上下文学习的质量。方法的第一步是上下文学习,如果模型本身上下文学习能力不强(比如小模型),蒸馏出来的权重也不会好。这限制了方法在弱模型上的应用。
3. 蒸馏可能引入分布偏移。第二步训练目标是”上下文学习后的输出”,这和”真实最优策略”可能不同——如果上下文学习本身有偏差(比如过度依赖某些经验),蒸馏会把这个偏差固化进权重。
4. 只在两个领域测试。749 个软件工程任务和 6 个文字冒险游戏——覆盖面不够宽。在更复杂的 Agent 场景(比如多智能体协作、长 horizon 规划)下效果如何,还需要验证。
更深的启示:什么是”学习”
Experience Distillation 让我想到一个更根本的问题:Agent 的”学习”到底意味着什么?
传统 RL 视角:学习 = 通过环境反馈更新策略。 上下文学习视角:学习 = 把经验放进上下文,让模型即时利用。 Experience Distillation 视角:学习 = 把上下文里的模式固化为权重。
这三种视角不是互斥的,而是不同层面的学习。真实的学习可能需要三个层面的协同:环境反馈提供信号、上下文学习提供即时利用、蒸馏提供长期固化。
这个论文的贡献在于:它把第三个层面(从交互经验到权重的固化)做成了一个不需要额外环境交互的过程。这在 Agent 学习的工程化上迈出了重要一步——让”经验”不再是 transient 的,而是可以累积、可以保留的资产。
从步子哥关注的 Agentic RL 系统效率角度来看,这个方法指向一个设计原则:Agent 系统应该有”经验固化”机制——不是让所有学习都依赖在线 RL(太贵),也不是让所有经验都堆在上下文里(太占 token),而是定期把交互历史蒸馏进权重,让 Agent 的”肌肉记忆”随时间增长。
这和人类学习很像——你第一次学开车很紧张,每一步都要想。开 100 次后,动作变成了肌肉记忆,不需要刻意想。Experience Distillation 做的就是把 Agent 的”100 次驾驶经验”变成它的”肌肉记忆”——而且不需要再上车练一次。
—
论文链接:https://arxiv.org/abs/2607.21051 AlphaXiv 讨论:https://www.alphaxiv.org/abs/2607.21051 作者:Chenhui Gou, Haoqin Tu, Yunhao Fang, Jianfei Cai, Hamid Rezatofighi 机构:Monash University, Stanford University
