RAGEN
Agent RL · arXiv 2025 · v2

RAGEN:多轮 Agent RL 会掉进 Echo Trap,先过滤低方差 prompt 组

单轮 RL 的 PPO / GRPO 直接搬到多轮 Agent,常见轨迹是「先涨一点,随后崩掉」:策略反复复读曾经带来局部奖励的推理模板,奖励方差、熵和梯度范数同时失控。 论文把优化单元从单步动作提升到完整轨迹,提出 StarPO;再用高方差 prompt 过滤、KL removal 与 Clip-Higher(StarPO-S)延缓崩溃。 代价是:推理在多轮稀疏奖励下会退化,专家 SFT 在 Sokoban 上仍远高于这套 RL。

Zihan Wang 等 · Northwestern / UW / Stanford / Microsoft 等 arXiv 2504.20073v2 ↗ 代码 ↗
TL;DR · 30 秒抓住核心

问题不是「不会多轮」,而是多轮 RL 训练不稳定。 单轮 PPO / GRPO 把每个输出当成独立样本;多轮环境里,奖励稀疏、延迟、带随机性,同一 prompt 的多次 rollout 方差会先塌,再出现梯度尖峰,最后策略复读(§4.1)。

StarPO 把整条轨迹当作优化单元。 目标从「单步输出奖励」改成「整条交互轨迹的累计奖励」:J = EM,τ~πθ[R(τ)];PPO 与 GRPO 都能挂在这个目标下,区别只在 token 级优势怎么估(§2.2)。

StarPO-S 用「不确定性」筛训练样本。 每个 prompt 生成 N 条 rollout,算组内奖励标准差 U,只保留 top p% 高方差 prompt;默认 p=25%。再加 KL removal 与 Clip-Higher(εhigh=0.28、εlow=0.2;Appendix D)稳定梯度(§4.2;Appendix C.2 说明 KL 只做事后监控)。

结果有两面。 过滤把 FrozenLake-PPO 的稳定训练从 100 步延到 140 步(保留 75%);保留 50% 时完全不崩。但推理在多轮任务里没有稳定变强,Sokoban 上专家 SFT 的 74.6% 远高于 StarPO-S 的 20.3%(Appendix G)。

25%
StarPO-S 默认保留的高方差 prompt 比例
按组内奖励标准差排序,不是逐条轨迹打分
33.59%
Sokoban 成功率(每轮最多 6 个动作)
7 个动作降到 22.27%
18.75pp
Bandit 上「有推理」对「NoThink」的优势
100.00 vs 81.25,相对 +23.1%
01

多轮 Agent RL 的失败不是「学不会」,而是「学着学着复读」

先建立共同认知:为什么把单轮 RL 的成功配方直接搬到多轮交互,会得到一个先升后崩的训练曲线。

论文把 Agent 任务写成 MDP:状态 st 是观察或交互历史,动作 at 通常是 token 序列,环境按转移概率返回奖励 rt 和新状态 st+1。一条完整轨迹是 τ = {s0, a0, r0, …, sK};多轮任务的关键是后面几步的奖励依赖于前面几步的动作,而单轮 RL 的样本单位只是一个输入-输出对(§2.1、§2.2)。

“Unlike static tasks such as single-turn math problem solving … or coding …, agent settings require models to make sequential decisions, maintain memory across turns, and adapt to stochastic feedback from their environment.”— §1(引用省略)

论文在四个环境上做受控研究,分别压不同的能力:Bandit 是单轮、随机反馈,考风险敏感推理;Sokoban 是多轮、确定性,箱子只能推不能拉,考不可逆规划;Frozen Lake 是多轮、随机转移,考不确定性下的规划;WebShop 是多轮、开放域,考自然语言 grounding 与长上下文交互(§3.1)。前三个是符号环境,便于观察训练动力学;WebShop 更接近真实网页任务。

现象 1

先涨后崩,且不是某一个算法的问题

Figure 3 中,Bandit 与 Sokoban 的基线 StarPO 都出现「早期提升、随后崩溃」;PPO 在这两个任务上比 GRPO 更稳,GRPO 在 Frozen Lake 上更稳。WebShop 上两种方法都能较快提升,论文推测是因为语言先验强、初始奖励高(§4.1 原文 “likely due to strong language prior and high initial rewards”)。

现象 2

崩溃前有可观测的早期信号

论文监控四个量:平均奖励、梯度范数、组内奖励标准差、输出熵。奖励标准差往往先塌,随后奖励均值才掉;梯度范数尖峰通常标志着不可逆崩溃;熵的快速上升或剧烈波动常伴随推理行为崩坏(§4.1、Figure 4)。

论文给这个失败模式起名 Echo Trap:模型在训练早期会给出多样的符号推理,后期却收敛到固定措辞,反复复用曾经带来局部奖励的模板。它和「模型在自生成轨迹上训练会多样性崩塌」的观察相似,但论文把它放在多轮 Agent RL 的训练动力学里分析(§4.1)。

02

两条路线:单步 RL 管不住长程信用分配,轨迹级 StarPO 也会崩

论文的对照不是「有没有 RL」,而是「RL 的优化单元是单步还是整条轨迹」。

路线 A · 单步 RL

PPO / GRPO 把每个输出当成独立样本

单轮目标的写法是 Jstep(θ) = Es~D, a~πθ[R(s,a)]:给定输入,优化一次输出。放到多轮环境里,它仍然按 token 或按单步动作分配优势,很难把「第 5 步的成功」归因到「第 1 步的探索」(§2.2)。

PPO 用 critic 估 token 级价值,GRPO 用组内归一化奖励替代 critic;两者都能工作,但论文的实验显示它们在多轮任务中仍会崩。作者认为 critic 可能延后不稳定、但不能阻止推理退化(§4.1 原文 “may delay instability, but would not prevent reasoning degradation”)。

路线 B · 轨迹级 StarPO

把整条交互序列作为优化单元

StarPO 的目标是 JStarPO(θ) = EM,τ~πθ[R(τ)]:一条轨迹包含观察、推理、动作和反馈,整条一起采样、一起更新。策略概率按 token 级似然分解,因此仍可直接套 PPO / GRPO 的 token 级目标(§2.2)。

但「轨迹级」本身不解决稳定性:论文的基线 StarPO 仍然出现 Echo Trap,说明问题不只是优化单元,还包括训练样本的方差与梯度塑形(§4.1、§4.2)。

论文还比较了 PPO 与 GRPO 在这四个环境上的差异:PPO 在 Bandit 与 Sokoban 上更强,作者解释为可能因为 critic 提供了更平滑的 token 级奖励信号;GRPO 在 Frozen Lake 上更强,作者推测随机转移让状态价值更难估,可能让 PPO 不稳定;WebShop 上两者都能成功,作者认为语言先验与高初始奖励降低了对 critic 的依赖(§4.1、Appendix I)。这不是「哪个算法更好」的结论,而是「任务结构影响 critic 的收益」。

03

StarPO-S:按 prompt 组内方差筛选,再改两处梯度形状

核心不是给每个 token 加奖励,而是决定「哪些 prompt 值得用来更新」。

StarPO 的轨迹级目标可以写成:

JStarPO(θ) = EM, τ~πθ[ R(τ) ]     τ = {s0, a0, r0, …, sK}
§2.2 · 整条轨迹的累计奖励;策略概率按 token 级似然分解

在这个目标下,PPO 与 GRPO 的差别只在优势估计。GRPO 的组内归一化优势是:

Âi,t = ( R(τi) − mean({R(τ1), …, R(τG)}) ) / std({R(τ1), …, R(τG)})
§2.2.3 · 同一组 G 条轨迹的奖励归一化;PPO 则用 critic 估 token 级价值

StarPO-S 的第一个改动是不确定性过滤。对每个初始状态 s0,用同一 prompt 采样多条轨迹,定义组内奖励标准差:

U(πθ, M, s0) = Stdτ~πθ(·|s0)[ R(τ) ]
Eq.7 · 方差太低说明任务太简单或太难,梯度信息量低

训练时按 U 对 prompt 排序,只保留 top p% 的高方差 prompt;默认 p=25%(§4.2)。摘要称 “trajectory filtering”,§4.2 的实现则明确写 “sort prompts … retain only the top p% highly-uncertain prompts”。据此推断,同一 prompt 的 N 条轨迹一起进出,不是逐条轨迹独立打分(依据:§4.2 只定义 prompt 级排序与保留比例,未定义逐条轨迹打分)。论文也用 active learning 的「不确定样本信息量最大」来解释这个选择,而不是用 DAPO 的过滤规则(§4.2)。

改动 2

KL Term Removal:去掉对初始模型的黏性约束

PPO 目标里原本有 KL 惩罚,限制策略不要偏离初始模型太远。StarPO-S 去掉这一项,只保留 policy loss 与 entropy bonus,让策略更敢探索;KL 只做事后监控(§4.2;Appendix C.2 明确 “track KL post-hoc”;Appendix D 给出 KL removal 的消融)。

改动 3

Clip-Higher:上界比下界宽

非对称裁剪把上界设为 εhigh=0.28、下界设为 εlow=0.2(数值见 Appendix D),让模型更大胆地从高奖励轨迹学习,同时保留对低概率 token 的约束(§4.2;Appendix D 给出消融)。

口径提醒

论文三处概述不一致:critic incorporation / critic baselining / 三项无 critic

摘要写 “trajectory filtering, critic incorporation, and gradient stabilization”;§1 写 “variability-based trajectory filtering, critic baselining, and decoupled clipping”;§4.2 展开的三项是「不确定性过滤、KL removal、Clip-Higher」,不含新增 critic,并在同一节用 critic-free design 描述 GRPO。三处不能合并成一个确定清单。若 “critic” 指 PPO 原有的 critic baseline,Appendix A 确实描述了 PPO 的 token 级 critic;但论文没有把这个既有组件与摘要/§1 的 “incorporation / baselining” 对齐。推断(依据:§4.2 的三项清单与 GRPO 的 critic-free 描述、Appendix A 的 PPO critic;原文未说明三处措辞的对应关系)。页面按 §4.2 的三项展开。

04

训练配方:16 条 rollout 一组、5 轮,5–6 个动作最好,7 个反而下降

这一节回答「怎么训」:在固定算力下,任务多样性、每轮动作数和 rollout 新鲜度怎么影响泛化。

主实验用 Qwen2.5-0.5B-Instruct 跑三个符号任务,WebShop 用 3B 变体;训练 100–200 个 rollout-update 迭代,WebShop 因长上下文只跑 100 步。每个 batch 采 P=8 个 prompt,每个 prompt N=16 条 rollout,最多 5 轮交互、每轮最多 5 个动作、每条 episode 最多 10 个动作;更新 batch 为 32,mini-batch 为 4;GAE 用 γ=1.0, λ=1.0,Adam,entropy bonus 0.001,格式惩罚 −0.1(§3.2、Appendix C.2)。评测用每个环境 256 个固定 prompt,温度 0.5,5 轮后截断(§3.3)。

论文在固定 batch 大小下研究三个 rollout 维度。第一个是任务多样性:每个 prompt 的响应数越少,能覆盖的不同初始状态越多;但每个 prompt 仍需要多条 rollout 来做对比。Table 1 显示,4 条响应/ prompt 在 SokobanNewVocab 与 FrozenLake 上最好,而 32 条响应/ prompt 只在 SingleSokoban 上最高——「多样性」与「同题对比」之间存在权衡(§4.3)。

Table 1 · 每个 prompt 的响应数对泛化成功率的影响(%)
Responses / PromptSingleSokobanSokobanNewVocabFrozenLake
3221.0920.2217.97
1620.3121.4819.53
820.3119.5317.19
420.7025.3921.48
219.9225.0012.50
119.5322.2712.50

逐格转录自 Table 1;该表只报告三个环境的成功率,没有报告方差或置信区间。

第二个维度是每轮动作预算。Table 2 显示,预算从 1 增到 6 时多数环境成功率上升,6 个动作在 Sokoban 上达到 33.59%、SokobanNewVocab 上 31.64%;继续增到 7 反而降到 22.27% 与 28.52%,论文推测是因为过长的 rollout 引入噪声、稀释奖励反馈(§4.3 原文 “likely due to noisy transitions and diluted reward feedback”)。

Table 2 · 每轮最大动作数对成功率的影响(%)
Max Actions / TurnSokobanSokobanNewVocabLargeSokobanFrozenLake
112.1113.671.1711.72
216.4121.093.5218.36
319.5319.531.9520.88
426.9526.955.0820.70
528.1325.786.2521.09
633.5931.646.6418.36
722.2728.523.9119.53

逐格转录自 Table 2;加粗行为论文推荐区间(5–6 个动作)中的 6 动作设置。

第三个维度是rollout 新鲜度。论文用 Online-k 表示同一组 rollout 被连续复用 k 次更新;k 越大,策略与数据越不同步。Figure 7 显示 Online-1(每次更新都重新采样)收敛更快、跨任务泛化更好;论文据此把「rollout 要反映当前策略」列为多轮 RL 的设计原则(§4.3)。

4 条响应/ prompt:SokobanNewVocab 25.39,FrozenLake 21.48;SingleSokoban 20.70,比 32 条时低 0.39 个百分点。
手算:代表条目的成功率、条宽与差值Table 1 / Table 2 · 仅列代表条目

Table 1 · 4 vs 32 条响应:SokobanNewVocab 25.39 vs 20.22,差 5.17 个百分点;FrozenLake 21.48 vs 17.97,差 3.51 个百分点;SingleSokoban 20.70 vs 21.09,低 0.39 个百分点。条宽按 value / 40 × 100%:25.39 → 63.5%,20.22 → 50.6%,21.48 → 53.7%,17.97 → 44.9%;此处只列代表条目,其余条宽由 JS 按同一公式计算。

Table 2 · 6 vs 7 个动作:Sokoban 33.59 vs 22.27,差 11.32 个百分点;SokobanNewVocab 31.64 vs 28.52,差 3.12 个百分点;LargeSokoban 6.64 vs 3.91,差 2.73 个百分点;FrozenLake 18.36 vs 19.53,低 1.17 个百分点。条宽按 value / 40 × 100%:33.59 → 84.0%,22.27 → 55.7%,31.64 → 79.1%,28.52 → 71.3%;同样只列代表条目。

05

一条轨迹从 rollout 到更新,StarPO-S 在中间插一道组内筛选

把图 2 的循环拆成两段:采样一整条轨迹,和决定哪些 prompt 的轨迹进入更新。

下图按 §2.2 与 §4.2 重绘,不是论文原图。它覆盖「prompt → 多轮 rollout → 轨迹奖励 → PPO/GRPO 更新」的主循环,以及 StarPO-S 的组内方差筛选;没有画出 critic 的具体结构、PPO 的 GAE 细节与 WebShop 的环境接口。

初始状态 s₀ 一个 prompt 策略 πθ LLM 生成 think + answer 动作 aₜ <think>…</think><answer>… 环境 返回 rₜ 与 sₜ₊₁ 轨迹 τ K 轮交互 轨迹奖励 R(τ) 整条轨迹的累计奖励 PPO / GRPO 更新 token 级策略梯度 更新后的 πθ StarPO-S 过滤:每个 prompt 采 N 条 rollout 按组内 R(τ) 的 std 排序,保留 top 25% 高方差 prompt 只有被保留的 prompt 进入更新 KL removal + Clip-Higher 同时生效
按 §2.2 / §4.2 重绘:主循环是 prompt → 多轮 rollout → 轨迹奖励 → PPO/GRPO;StarPO-S 在更新前按 prompt 组内奖励标准差筛选。图中「N 条」「top 25%」「KL removal」「Clip-Higher」来自 §4.2 与 Appendix D;未画出 critic、GAE 与每个环境的 reward 定义。

论文对「过滤为什么有效」的解释是环境依赖的:在 Bandit、Sokoban、FrozenLake 这类组内方差容易塌的任务上,过滤的收益更大;WebShop 的 rollout 方差本来就高且稳定,过滤的边际收益更小(Appendix E、Figure 13)。所以 StarPO-S 不是「任何多轮任务都该开」的通用开关,它的收益与任务方差结构绑定 推断(依据:Appendix E 把收益差异归因于各环境的组内方差水平,且 WebShop 的差距更小)。

06

推理在单轮任务里有用,在多轮任务里会缩水;专家 SFT 仍然更强

先看两个反直觉:加推理不一定更好,加 RL 也不一定比专家数据更强。

论文用一组对照实验检查「推理」本身的价值:同一套 StarPO-S,比较正常输出 <think> 与去掉思考的 NoThink 版本。Table 3 的结果分成两半:在 Bandit 系列上,推理带来明显提升;在多轮 Sokoban / FrozenLake 上,差异很小甚至为负。

Table 3 · 有推理与 NoThink 的泛化成功率(%)
设置Train on BanditTrain on Sokoban
BanditBandit-RevFrozenLakeLargeSokobanSokobanSokobanNewVocab
StarPO-S100.0067.5819.922.3421.4818.75
NoThink81.2556.2519.532.7320.7326.17

逐格转录自 Table 3;每列对应不同评测环境,训练设置由表头分组(Train on Bandit / Train on Sokoban);不可把不同列的数值相加 推断(依据:Table 3 表头按训练集分组,列内是不同评测环境,单元格是独立成功率)。

Bandit 上,有推理的 100.00 对 NoThink 的 81.25,高 18.75 个百分点(相对 +23.1%);Bandit-Rev 上 67.58 对 56.25,高 11.33 个百分点(相对 +20.1%)。这说明在单轮、需要把符号名称与奖励分布联系起来的任务里,显式推理确实帮助泛化。

多轮任务的结果就不一样:FrozenLake 上 19.92 对 19.53,只高 0.39 个百分点;Sokoban 上 21.48 对 20.73,高 0.75 个百分点;LargeSokoban 上 2.34 对 2.73,反而低 0.39 个百分点;SokobanNewVocab 上 18.75 对 26.17,低 7.42 个百分点(相对低 39.6%)。论文推测:多轮任务的奖励稀疏、延迟,无法区分「推理 coherent」与「碰巧试对」,于是模型会生成看似合理、实际与环境状态不一致的思考(§4.4 原文 “We presume …”)。

Table 4 · 不同训练步数下 <think> 块的平均 token 长度
StepBandit OriginalBandit NoThinkBandit ReverseReverse NoThinkSokoban OriginalSokoban NoThink
066.012.768.812.7307.168.6
10025.612.433.713.0104.655.3
20017.612.430.713.089.560.0

逐格转录自 Table 4;Bandit 的 NoThink 行基本稳定(12.7 → 12.4 → 12.4);Sokoban NoThink 从 68.6 降到 60.0,仍有变化。

推理长度也在缩:Sokoban 原始设置从 307.1 降到 89.5(少 217.6 token,相对 70.9%);Bandit 从 66.0 降到 17.6(少 48.4,相对 73.3%);Bandit-Rev 从 68.8 降到 30.7(少 38.1,相对 55.4%)。论文把这解释为模型在抑制自己的思考过程,而不是学会了更高效的推理(§4.4)。

另一个对照是「小模型 RL」与「大模型零样本」。Table 5 里,0.5B 模型以每 prompt 4 条响应训练后,在 Sokoban 上 20.70%、FrozenLake 上 21.48%;GPT-4o 零样本是 27.73% / 26.56%,Qwen2.5-72B 零样本是 19.53% / 23.83%。论文的结论是:0.5B 训练后与这些大模型「同一量级」,参数量少 100 倍以上;但它并没有超过 GPT-4o(Appendix D、Table 5)。

Table 5 · 零样本大模型与训练后 0.5B 的对比(0.5B 每 prompt 4 条响应)
模型Sokoban (%)FrozenLake (%)Response LengthEffective Action (%)
GPT-4o27.7326.56190.3 / 132.170.0 / 88.7
Qwen2.5-72B19.5323.83179.4 / 107.367.8 / 87.3
0.5B(ours)20.7021.4889.5 / 110.679.2 / 80.7

逐格转录自 Table 5;Response Length 与 Effective Action 的两个数依次对应 Sokoban / FrozenLake。大模型是零样本、无 fine-tuning、无 in-context rollout;0.5B 是每 prompt 4 条响应训练后的结果(Table 5 表注),条件不同(零样本 vs 训练后)。

最强的反例来自 Appendix G:用 BFS 专家轨迹做 SFT,Sokoban 达到 74.6%,FrozenLake 23%;同一篇论文的 StarPO-S 是 20.3% 与 21.8%。也就是说,在有专家数据时,监督学习在这两个任务上远强于「从零自我进化」的 RL。两组条件不同:SFT 用 1,000 条训练样本、100 条测试样本,RL 用 256 个固定 prompt;但差距的量级仍然提示 RL 的样本效率是瓶颈 推断(依据:Appendix G 的 SFT 与 StarPO-S 训练/评测样本数不同,且没有控制数据量的对照)。

Sokoban:SFT 74.6,StarPO-S 20.3,差 54.3 个百分点。
SFT(BFS 专家轨迹) StarPO-S
手算:SFT 与 StarPO-S 的两组差值Appendix G

Sokoban:SFT 74.6 − StarPO-S 20.3 = 54.3 个百分点。条宽按 value / 80 × 100%:74.6 → 93.3%,20.3 → 25.4%。

Frozen Lake:SFT 23.0 − StarPO-S 21.8 = 1.2 个百分点。条宽:23.0 → 28.8%,21.8 → 27.3%。

条件:SFT 用 BFS 生成的 1,000 条训练样本、100 条测试样本,LoRA rank 64 / alpha 32;StarPO-S 是论文主实验的 256 个固定 prompt 评测。两组不是同一评测集 推断(依据:SFT 用 100 条测试样本,RL 用 256 个固定 prompt),差值只用于说明量级。

07

它诊断了「怎么崩」,但没有解决「怎么让推理真的变强」

把论文明确写出的限制、以及页面对实验条件的观察放在一起,避免把「StarPO-S 更稳」外推成「多轮 RL 已经可用」。

边界 1

主实验只有 0.5B / 3B,7B 的 WebShop 还跑不动

主实验用 Qwen2.5-0.5B-Instruct 跑三个符号任务,WebShop 用 3B。Appendix D 只给了 3B/7B 的有限扩展(Figure 10);72B 仅作为零样本对照出现在 Table 5,不是 RL 训练结果。论文明确说 7B 在 WebShop 上因长上下文在 4×H100 上 OOM,所以 WebShop 只报 3B(Appendix D)。这些发现能否外推到更大模型,未系统验证 推断(依据:Figure 10 只画 0.5B/3B/7B,Table 5 的 72B 是零样本)。

边界 2

有专家数据时,SFT 在 Sokoban 上远强于这套 RL

Appendix G 的 SFT 是 74.6%(Sokoban)与 23%(Frozen Lake),StarPO-S 是 20.3% / 21.8%。论文自己把这列为需要「更 scalable、更 effective 的 agent RL」的理由。也就是说,RAGEN 展示的是「无专家数据时也能学」的路径,不是「RL 已经优于监督学习」。

边界 3

StarPO-S 的收益依赖环境方差结构

Appendix E 的结论是:Bandit、Sokoban、FrozenLake 的组内方差容易塌,过滤收益大;WebShop 的方差本来就高且稳定,过滤的边际收益小。默认 p=25% 也是论文自己说「可能不是所有场景最优」的激进值(§4.2)。

边界 4

推理的忠实性没有被奖励约束

训练奖励只看任务成败,不看 <think> 是否与环境状态一致。论文在 §4.4 明确说模型可以生成 incoherent 或 hallucinated reasoning 却仍拿到高奖励;格式惩罚只检查标签结构,不检查推理质量。因此「有 think 标签」不等于「真的在推理」。

什么时候别用

需要长程信用分配、要求推理忠实、或有高质量专家轨迹时

这套方法在 5 轮、10 个动作的短程任务上验证;更长的 horizon、需要跨数千步 credit assignment 的场景没有覆盖。主实验在线采样(Online-1);论文在 §6 Limitations 里把 omission of replay buffers 列为限制。如果样本效率是瓶颈,离线或半离线方法可能更合适。最后,Echo Trap 的指标是「早期预警信号」:论文没有做直接操纵组内方差并随机分组的因果实验;§4.2 的过滤比例干预(保留 75%/50%)与 Appendix D 的 KL/Clip 消融是间接证据 推断(依据:这些实验只改变过滤比例或梯度塑形设置并观察训练曲线,未随机分组操纵组内方差)。它提供的是相关性诊断,因果方向未被直接检验。