AgentGym-RL × ScalingInter-RL: 给多轮 agent RL 配上"模块化框架 + 渐进 horizon 课程"
速读卡片 (TL;DR)
一句话:把 multi-turn agent RL 里两件事拆开做——(1) 一个 解耦 的开源训练框架,把 environment/agent/training 三模块用 server-client + 标准 API 隔离;(2) 一个简单但管用的 horizon 课程 ScalingInter-RL,训练早期把交互轮次卡小(逼 exploit),后期再放大(允许 explore),避免长 horizon 直接训崩。
立场:不是新算法,是新工程基线 + 一个被低估的训练 trick。亮点不在 RL 公式,而在"长 horizon 多轮 RL 终于能稳训"这件事:模块化让别人复现你,horizon 课程让模型自己跑得稳。
1 · 动机:为什么 multi-turn agent RL 总训不稳
1.1 历史脉络:从单轮 reasoning RL 到多轮 agent RL
2024 年以来,RL post-training 在单轮任务(MATH / CodeForces / 各种 verifiable task)上取得了相当成熟的范式——DeepSeek-R1 路线是其代表:一个 prompt → 生成一段长 CoT → outcome reward → GRPO 更新。这一支系研究的核心问题是 reasoning 长度,而非环境交互。
但 agent 任务本质是 POMDP:agent 给 action,环境返回 observation,agent 再给 action……一个 episode 可能有 5 / 10 / 30 轮交互。把单轮 reasoning 那套直接搬过来,会撞到三类全新的麻烦:
- 长 horizon 下的 credit assignment 噪声爆炸。WebArena 一个 episode 经常 20+ 步,sparse reward 的方差随轨迹长度近线性放大。
- 环境本身不稳。WebArena 默认是单浏览器单进程,SciWorld 的内部 clock 有 memory leak,TextCraft 的递归 crafting tree 是指数级 self-replication——这些都是"单机 demo 没事但 RL 跑几小时就崩"的级别问题。
- 没有统一框架。每篇 paper 各写各的环境胶水,再各自集成各自的 RL trainer——每篇都"几乎"复现不了。
这篇 paper 想做的事可以一句话总结:把 reasoning RL 那一套搬到 multi-turn agent RL 上,中间该补的工程债一次性补齐。
1.2 别的方案为什么不够
同期已经有一些 agent RL 框架/工作:Search-R1、WebRL、ToolRL、AgentRL、verl/AgentGym 旧版。它们各自都覆盖了一个切片,但没有一个是"训练框架 + 多 scenario 环境 + 稳定算法"的全栈方案:
| 方案 | 覆盖 | 主要短板 |
|---|---|---|
| Search-R1 / ToolRL | 单一 scenario(检索 / 工具) | 环境 hard-coded,横向不可扩 |
| WebRL | web 一个 scenario | SFT warmup 强依赖,无法 from-scratch |
| 原版 AgentGym | 多 scenario,但只支持 SFT/DPO | 没有 online RL pipeline |
| OpenRLHF / verl / NeMo-RL | RL 训练框架本身 | 默认是 single-turn,没有 env client 抽象 |
| prime-rl / AReaL | 异步 RL 训练 | 高性能但 env 集成靠用户自己写 |
| AgentGym-RL 👈 | 多 scenario × online RL × 解耦架构 | 填了"训练框架 + 多 env + 课程"的中间地带 |
另一类天真做法是"加大 max horizon 让模型自由探索"。Paper 里 Figure 7 给了非常清晰的反例:Deep Search 上 H=10 早期 reward 上得快,但 200 步后直接崩;H=5 稳定但 ceiling 低。固定 horizon 没法同时拿到稳定性和上限——这是 ScalingInter-RL 出场的直接动机。
1.3 为什么这事不平凡
表面上"模块化 + 课程"听起来都不新,但实际工程里有几道坎:
- 环境隔离与并行。WebArena 默认设计是 1 server / 1 chromium,RL 要并行 64 trajectory 就得 64 进程——必须重构成 subprocess 池,而且 episode 之间要 full-reset。
- Memory leak 在小测试里看不到。SciWorld clock / TextCraft crafting_tree 都是"跑 5 个 episode 没问题,跑 5000 个就 OOM"。Paper 列的几个修复都是 RL 训练独有的工程债。
- Horizon 课程跟 KL/ratio clip 互动复杂。放大 horizon 等于扩大 trajectory 长度,在 GRPO 里意味着 advantage 的方差放大、reward shaping 重整——curriculum 切换点选不好会引发训练 spike。
- "to SFT or not to SFT"是研究态度问题。这篇坚持 from-scratch RL(不做 SFT warmup),意味着早期奖励信号极稀疏——这正是 ScalingInter-RL 的另一存在理由:小 horizon 下 trajectory 短、容易撞到正信号。
2 · 背景速查
2.1 关键术语
| 术语 | 含义 |
|---|---|
| POMDP | (U,S,A,O,T,r)。U=instruction,S=隐状态,O=observation。Agent 看不到完整 S,只能靠 O。 |
| Trajectory τ | τ = (a₀ᵀ, o₁, a₁ᵀ, ..., aₖ₋₁ᵀ, oₖ)。aᵀ 表示 action 里包含 thinking 段。 |
| Horizon H / K | 一个 episode 允许的最大 agent-env 交互轮数。本文核心变量。 |
| GRPO | DeepSeekMath 提出的 group-relative PPO,用一个 prompt 下多个 sample 的 reward 标准化作 advantage,无需 value model。 |
| REINFORCE++ | REINFORCE 加了 PPO 风格 clip + KL penalty 的稳定版。 |
| RLOO | 同 batch 其他 sample 的均值作 baseline,比 GRPO 更朴素。 |
| Outcome reward | 整个 episode 结束后由 env 一次性给的 r ∈ [0,1]。中间步无 reward。 |
| Sequential / parallel scaling | 测试时增加 compute 的两种方式:加 turn 数 vs 加 sample 数(Pass@K)。 |
| Scenario / Environment / Task | 本文层级:5 个 scenario(web/search/game/embodied/sci) × 多 env × 共 27 sub-task。 |
| veRL | 字节开源的 RL 训练框架,本文 training 模块的底座。 |
2.2 GRPO 复习
从同一个 prompt 采 G 个 trajectory,每条得 r_i;advantage 是组内 z-score。Loss 用 PPO 风格 clipped surrogate:
ρ 是 token-level 的 importance ratio。在 multi-turn 设置里,A_i 的 r_i 是整条 episode 的 outcome reward,但 ρ 还是 per-token——所有 turn 里 agent 自己生成的 token 都会被同一个 advantage 放大或抑制。这是 multi-turn agent RL 的典型建模方式。
3 · 框架架构:三件套 + server-client
3.1 顶层结构
三个核心模块,各自独立可换:
- Environment 模块:每个 env 实现一个 HTTP server,暴露
reset() / step() / observe()。Trainer 端用BaseEnvClient通过统一协议访问。 - Agent 模块:封装 policy 的 reasoning + decision 流程,支持长 horizon planning、self-reflection 等高级模式;实质是 prompt 模板 + RolloutHandler 状态机。
- Training 模块:RL pipeline。底座 veRL,提供 PPO / GRPO / REINFORCE++ / RLOO,以及 SFT / DPO / rejection-sampling (AgentEvol)。
BaseEnvClient 实现三个方法,换 RL 算法只需在 Training 模块替换 advantage/objective 计算——这是"plug-and-play"的具体含义。h_t。这是为什么"模块化"和"horizon 课程"能正交组合的根本原因。3.2 Rollout 主循环 (paper 的伪代码)
tasks = expand(task_ids, sample_num) # G 个 sample / prompt
envs = create_env_clients(tasks, "webarena", base_url)
parallel: env.reset(task) for env, task in zip(envs, tasks)
handlers = [RolloutHandler().add_user_message(env.observe()) for env in envs]
for i in range(max_rounds): # 关键:max_rounds 受 ScalingInter 控制
prompts = [h.get_prompt() for h in handlers]
responses = actor.generate(prompts) # vLLM 批生成 (cross-trajectory)
parallel: results = [env.step(resp) for env, resp in zip(envs, responses)]
for h, r, res in zip(handlers, responses, results):
h.add_assistant_message(r)
h.add_user_message(res.state)
h.score = res.score
if all_done(handlers): break
batch = gen_batch_from_rollout_handlers(handlers)
batch = actor.compute_log_prob(batch)
batch = reference.compute_ref_log_prob(batch)
batch = compute_advantages(batch, method="grpo")
actor.update_actor(batch)
设计上的关键 invariant:
- Rollout 阶段每条 trajectory 用同一份 frozen actor 权重 → on-policy 性质保留。
- 不同 env client 之间互不干扰(独立 server),失败一个不会污染整 batch。
max_rounds是外部传入的——这一个参数就是 ScalingInter-RL 唯一的钩子。
3.3 工程债清单(paper 自爆)
| 问题 | 修复 |
|---|---|
| WebArena 单浏览器单进程,无法并行 | 改成 subprocess pool,一个 server 多 chromium |
| SciWorld 多实例并行 init/reset 失败 | 重写 init/reset 路径 |
| WebArena 跨 episode 状态污染 | full-reset interface,每 episode 还原 web server |
TextCraft crafting_tree 递归 self-replication → 指数 OOM | 消除冗余 list copy |
| SciWorld 内部 clock memory leak | 重写 clock 机制 |
这些看起来"无聊"的工程修复其实是 paper 最被低估的贡献:它们让"长 horizon RL 训几小时不崩"从科幻变成默认。
3.4 三个常被混淆的概念,逐个讲清
(1) "Memory leak" 是什么 —— 不是 agent memory,是进程级内存泄漏
论文里出现两次 "memory leak",都指的是 开源 env 代码的 Python 进程级 bug,跟"agent long-term memory"完全不是一回事。两处具体来源:
| 环境 | 泄漏来源 | 后果 | 修法 |
|---|---|---|---|
TextCraft | recursive crafting_tree 实现 里 list 反复 self-replicate | 指数级内存增长 → 训练几小时 OOM 崩溃 | 重构递归,消除冗余 list copy |
SciWorld | 内部 clock 机制每 step 累积对象不释放 | 线性内存累积,长 rollout 不稳定 | 重写 clock 实现 |
(2) "多 env" 指什么 —— 并行环境客户端架构
"多 env" 在论文里是 parallel environment clients 的简称。具体是什么?Trainer 一次要采 sample_num × batch 条 trajectory,如果每条 trajectory 串行跑一个 env,一个 rollout 要等几分钟。AgentGym-RL 的解法:server-client 架构 + 一个 server 多实例:
对比 paper 之前的方案:WebArena 原版是"一个 Chromium = 一个 OS 进程",上 16 个 parallel rollout 就要 16 个独立进程,内存爆炸还慢。AgentGym-RL 把这个改成 subprocess pool,一个 server 进程内开多个 Chrome,context 共享、内存可控。
(3) 这个框架到底是什么,能干嘛,支持什么
本质: 一个 训练 harness(不是模型,不是算法),用来在多个 multi-turn agent 场景上做 RL 训练。回答你三个具体的子问:
| 问题 | 答 |
|---|---|
| 是什么 | 建在 veRL 之上的 multi-turn agent RL training framework + 一个名为 ScalingInter-RL 的训练 recipe |
| 能达到什么 | Qwen2.5-7B 训完跨 5 场景平均涨 +33.65 个点,匹敌甚至超过 OpenAI o3 / Gemini-2.5-Pro。把"7B 模型也能做 agent"从假设变成实证 |
| 谁不用它 | 纯单轮 RLVR (math/code) 用 veRL/AReaL 更直接;单 GUI 场景用 ClawGUI 部署更全;算法层创新用 RLAnything 更激进。AgentGym-RL 的位置是跨多 domain 的 multi-turn agent 训练 |
支持的 5 个 scenario × 5 个 benchmark(论文 §4.1):
| Scenario | 具体 benchmark | 任务形式 |
|---|---|---|
| Web Navigation | WebArena | 4 个 domain: online shopping / forum / 协作开发 / business 内容管理。点击 + 表单 + 多页面跳转 |
| Deep Search | RAG-based 自建环境 | multi-hop QA,LLM 调 search engine + Python interpreter |
| Digital Games | TextCraft | 文字版 Minecraft-style 合成游戏,自然语言交互 |
| Embodied | BabyAI | 2D grid world,文字指令驱动 agent 导航 + 拿取 |
| Scientific | SciWorld | 科学实验模拟,agent 设计实验、读反馈、迭代假设 |
共 27 个 task,所有场景共用同一套 trainer 代码、同一组 RL 算法、同一份 ScalingInter-RL recipe。
支持的 RL 算法(可一行配置切换):
- Online RL: PPO / GRPO / RLOO / REINFORCE++(全部 multi-turn 适配)
- Offline / 复合: SFT / DPO / AgentEvol(rejection sampling)
支持的 backbone: 任意 HuggingFace causal LM。论文实测 Qwen2.5-3B / 7B 为主,作 baseline 用 Qwen-72B / Llama-3.1-8B/70B / DeepSeek-R1 / GPT-4o / Gemini-2.5-Pro / o3 / Qwen-Max 对比。
4 · ScalingInter-RL: horizon 课程
4.1 现象先于公式
Paper 的 Figure 7(Deep Search)给出了 ScalingInter-RL 最有说服力的动机图。复现一下核心走势:
4.2 调度规则
Paper 用的是简单的 monotonic step schedule:
具体数字 paper 没给一张完整表,但结合 Figure 6 / 7 / 8 的横轴可以推出:
- Deep Search: 大约 H ∈ {5 → 7 → 10},切换点放在 RL 总 step 的 ~1/3、~2/3。
- WebArena / SciWorld: 起步 H 更小(~5),后期可以拉到 15–25(SciWorld test-time 实测 H=30 仍有收益)。
- BabyAI / TextCraft: 起步 H=4–5,因为本身任务上限就低。
Paper 在文字里强调"不靠精细 hyperparameter 调,只把 transition 点按 RL 总步数等比例切"—这个简化是它能"跨 5 个 scenario 都 work"的关键。
4.3 为什么"先 exploit 后 explore"是对的
- 初始 policy 已经是预训练 LLM,本来就有"基线行为"。Explore 不缺,缺的是"把基线行为下的偶尔成功 trajectory 稳稳放大"。小 H 等于把搜索空间剪到 base policy 的高密度邻域。
- 稀疏 outcome reward 下,长 trajectory 的方差是杀手。H=10 时每条轨迹都很长,GRPO 组内 std 大,advantage signal 被噪声淹没;H=5 时方差天然降一半。
- Credit assignment 在长 H 下指数恶化。20 个 turn 的 trajectory,每个 turn 几百 token,GRPO 只有一个 outcome reward——这个 reward 要分摊到 ~10⁴ 个 token 上。
- 反向论证:如果一开始就放 H 大,会怎样?Figure 7 给了实证答案——前 ~150 step reward 比 ScalingInter 高,但 ~200 step 后开始急速下滑,300 步基本崩盘。机制猜测是 policy 学会了"在长 trajectory 里 bandit 式刷 reward 的 spurious behavior",一旦这种 shortcut 被放大,真正的 exploration 反而消失。
4.4 Worked example: 在 GRPO 里 ScalingInter 改了什么
展开:具体的 batch shape 与 advantage 计算
设 batch_size=64, group_size G=8(同 prompt 8 sample),即一个 RL step 处理 8 个 prompt × 8 trajectory。
| 阶段 | H_max | 每条 trajectory token | batch 总 token | GRPO advantage 标准差 |
|---|---|---|---|---|
| Phase 1 (step 0–100) | 5 | ~1.2k | ~610k | 低 (~0.2) |
| Phase 2 (100–200) | 7 | ~2.0k | ~1.0M | 中 (~0.35) |
| Phase 3 (200–) | 10 | ~3.5k | ~1.8M | 高 (~0.5) |
注意 Phase 1 时 batch 总 token 只有 Phase 3 的 1/3,RL step 时间也短得多——这就是 paper 提到的"reduce computational resources and time"的来源:不是 algorithmic trick,而是早期物理上 batch 就小。
5 · 公式 + 物理直觉
5.1 优化目标
关键变化只在约束 K ≤ h_t:每条 trajectory 的最长交互轮数受 phase t 当前 horizon 上限。当 K 在某一步达到 h_t 还没完成,episode 就被截断,对应的 outcome reward = 0(或环境给的部分分,看具体 env)。
5.2 GRPO 在 multi-turn 下的具体形式
其中 ρ_t = πθ(token_t | ctx_t) / πθ_old(token_t | ctx_t),context 是整个 trajectory 到 t 时刻的所有 (action, observation) 拼接。这一点跟单轮 RL 的本质区别在 context 里包含 env-returned observation token——这些 token 不在 loss 里(只 mask 掉,不参与 ratio),但参与了 attention。
5.3 物理直觉
把 trajectory 视为一个"被 chunk 成 K 段、中间有外部 token 注入"的长序列。GRPO 的 advantage A 是整段的标量,所有 agent-generated token 共享一个 A:
- A > 0(成功 trajectory):所有 agent token 被均匀放大。意味着即使中间 turn 的 action 是 suboptimal,只要 episode 成功就被 credit。
- A < 0(失败):所有 agent token 被均匀压制,包括早期可能正确的探索行为。
这种"全或无"的 credit 在 H 大时极其有害——一个失败 trajectory 里可能有 80% 的 turn 是合理的,全被压低。ScalingInter-RL 早期小 H 等于变相缩短了"无差别奖惩"的范围,让正信号不被噪声稀释。
5.4 数值敏感度
| H | 典型 success rate (Deep Search) | 每个 prompt 至少 1 条成功的概率 (G=8) | GRPO 标准差稳定? |
|---|---|---|---|
| 3 | ~5% | ~33% | 是,但学不深 |
| 5 | ~15% | ~73% | 稳定,信号充足 |
| 10 | ~25%(早期高,后崩) | ~90% | 早期好,后期方差爆炸 |
这张表解释了为什么 H=5 是个"甜点":每个 prompt 的 8 条 sample 里大概率至少有 1 条正反馈,GRPO 的 z-score 不会因为全 0而退化(全 0 → std=0 → advantage=NaN/0)。
6 · 5 个 scenario × 27 任务概览
| Scenario | 环境 | 子任务示例 | 典型 H | Action 形态 |
|---|---|---|---|---|
| Web Navigation | WebArena | Shopping / CMS / Maps / GitLab&Reddit | 10–25 | click[id] / type / scroll / tab_focus |
| Deep Search | RAG env | NQ / TriviaQA / PopQA / HotpotQA / 2Wiki / Musique / Bamboogle | 3–10 | search(q) / answer(a) |
| Digital Game | TextCraft | Depth 1–4 物品合成 | 5–15 | craft / get / inventory |
| Embodied | BabyAI | GoTo / Pickup / AOD / Find / Room / SLoc | 5–10 | go forward / turn / pickup / toggle |
| Scientific | SciWorld | Measure / Test-Cond / Find / Chem-Mix / Lifespan | 15–30 | 自然语言 + 物体操作 |
5 × 多 = 27:WebArena 4 + Deep Search 7 + TextCraft 4 + BabyAI 6 + SciWorld 5(各 paper 表里直接对应一栏)。这是 paper 标题里"27 tasks"的具体来源。
7 · Worked example: Deep Search 的 8 轮 trajectory
用 NQ-style 多跳问题为例,过一遍 ScalingInter-RL 在 Phase 2(h=7)下的一条成功 trajectory:
Question: Who was the screenwriter of the film that won Best Picture at the Academy Awards in the year that the actor who played Tony Stark in the MCU was born?
| turn | agent action | env observation | 评注 |
|---|---|---|---|
| 1 | think: 我需要先找 Tony Stark 的演员。search("actor played Tony Stark MCU") | "Robert Downey Jr." | 子任务 1 启动 |
| 2 | search("Robert Downey Jr birth year") | "April 4, 1965" | 得到 1965 |
| 3 | search("Best Picture Academy Award 1965") | "My Fair Lady (1964 film), winner at 37th Academy Awards (April 5, 1965)" | 需要消歧义 |
| 4 | think: Oscar 是颁前一年片子,所以 1965 颁的是 1964 年片 My Fair Lady。search("My Fair Lady 1964 screenwriter") | "Alan Jay Lerner" | 关键 reasoning step |
| 5 | answer("Alan Jay Lerner") | r = 1.0,episode 终止 | 5 步完成 |
对比 base Qwen2.5-7B 在同问题上的失败 trace(简化):
| turn | action | obs |
|---|---|---|
| 1 | search("Tony Stark actor birth year") | 多个结果,模型直接抓到错的"1968" |
| 2 | search("Best Picture 1968") | "In the Heat of the Night" |
| 3 | search("In the Heat of the Night screenwriter") | "Stirling Silliphant" |
| 4 | answer("Stirling Silliphant") | r = 0.0 |
ScalingInter-RL 学到的具体能力:
- 多跳分解:把复合问题切成 (A) actor → (B) 出生年 → (C) 该年 Oscar → (D) 该 Oscar 影片 → (E) 编剧。
- 消歧义:意识到 Oscar 颁奖年 ≠ 影片出品年。这种"中间 verification"是早期 H=3–5 的小 horizon 阶段几乎不可能学到的——但 H 一上去,base policy 又直接崩。课程的价值正是在这里。
- Outcome reward 反传到所有 agent token:成功 trajectory 里第 4 步那个"think 消歧义"被 advantage A=+1.x 系数放大,在后续训练中变成稳定行为。
展开:同一道题在 H=10 固定训练崩坏后的失败模式
Paper 的 over-interaction case study(Figure 16 web 版)显示:H 大且训练后期模型会陷入"无意义重复点击 / 重复搜索",哪怕已经拿到了答案也不 stop。机制猜测:大 H 下 trajectory 长,outcome reward 的 noise floor 高,policy 学到的反而是"多动总比少动好"的伪相关。这正是 paper 里说的 "overfitting to spurious behaviors"。
8 · 实验关键结果
8.1 总览(Figure 1 加权)
| 模型 | 5-scenario 平均 | 对比基线提升 |
|---|---|---|
| Qwen2.5-7B (base) | ~25% | — |
| AgentGym-RL-7B | ~52% | +27 |
| ScalingInter-7B | ~58.6% | +33.65 |
| GPT-4o | ~46% | — |
| Gemini-2.5-Pro | ~52% | — |
| OpenAI o3 | ~62% | — |
7B 模型超过 70B Llama3.1 (~47%) 和 72B Qwen2.5 (~43%)。这就是 paper 标题里"matches/surpasses commercial models"的来源——但需要注意商用模型未做 task-specific RL,这是公平 vs 不公平的边界。
8.2 SciWorld:最戏剧性的提升
| 模型 | Overall | Test-Cond | Find | Chem-Mix |
|---|---|---|---|---|
| Qwen2.5-7B base | 1.50 | 0.00 | 0.00 | 0.00 |
| OpenAI o3 | 41.50 | 25.30 | 56.82 | 40.00 |
| AgentGym-RL-7B | 50.50 | 59.04 | 65.91 | 0.00 |
| ScalingInter-7B | 57.00 | 55.42 | 88.64 | 0.00 |
1.50 → 57.00 是 paper 最强信号——但同时 Chem-Mix 全模型 0 分(包括 o3)说明 multi-turn agent RL 没有解决真正的程序化科学推理瓶颈,只是把"环境探索 + 信息提取"做到了上限。
8.3 GRPO vs REINFORCE++(Table 6)
| Backbone | Algo | TextCraft | BabyAI | SearchQA |
|---|---|---|---|---|
| Qwen2.5-3B | GRPO | 75.00 | 93.33 | 25.75 |
| Qwen2.5-3B | REINFORCE++ | 28.00 | 70.00 | 13.25 |
| Qwen2.5-7B | GRPO | 83.00 | 92.22 | 34.00 |
| Qwen2.5-7B | REINFORCE++ | 73.00 | 84.44 | 24.00 |
3B GRPO 全面超过 7B REINFORCE++ —— paper 直接得出结论:在 sparse-reward agent 任务里 algorithm 比 model size 更重要。物理解释:REINFORCE++ 的 Monte Carlo return 在长 trajectory 下方差爆炸,GRPO 的组内 z-score 是天然的方差缩减。
8.4 Test-time scaling(Figure 8/9)
- Sequential scaling:agent 给更多 turn 还能继续涨——证明 ScalingInter 训练阶段的 horizon 习惯能 transfer 到推理阶段。
- Parallel scaling (Pass@K):K=64 时 RL 模型在 Deep Search +5.5%,SciWorld +7.05%。说明 RL 不是单纯把 single sample 推上去,而是把整个 sample 分布往好处搬。
9 · 与同类工作对比
| 框架 | 定位 | 多 env | Online RL | 课程/horizon 调度 | 开源 | 主要差异点 |
|---|---|---|---|---|---|---|
| AgentGym-RL | multi-turn agent RL 全栈 | 5 scenario / 27 task | PPO/GRPO/REINFORCE++/RLOO | ScalingInter | 是 | 把 env / agent / training 三模块完全解耦 |
| AgentRL (Wang et al.) | multi-turn agent RL | 少数 env | PPO/GRPO | 无 | 是 | 无 horizon 调度,默认依赖 SFT warmup |
| verl / OpenRLHF | RL training 框架 | 无 env 抽象 | PPO/GRPO/REINFORCE++ | 无 | 是 | 底座型,本文 training 模块即基于 veRL |
| NVIDIA NeMo-RL | RL training 框架 | 用户自带 env | PPO/GRPO + speculative | 无 | 是 | 偏 single-turn / reasoning,训练侧工程优化深 |
| prime-rl / AReaL | 异步 RL pipeline | 用户自带 | PPO/GRPO async | 无 | 是 | 关注 throughput;多轮 env 集成需用户自写 |
| Search-R1 / WebRL / ToolRL | 单 scenario 工作 | 1 scenario | PPO/GRPO | 部分有 hand-tuned | 是 | environment hard-coded,跨任务不可复用 |
定位差别一句话:OpenRLHF / NeMo-RL / prime-rl / AReaL 是训练侧框架,Search-R1/WebRL/ToolRL 是单任务工作,AgentGym-RL 填的是中间——多 env × online RL × 解耦架构 × horizon 课程。
同期姊妹笔记参考:
- 01 · DR-Venus — 4B edge-级 deep research agent,关注端到端推理压缩。
- 02 · LiteResearcher — 轻量化 research agent。
- 03 · Agent-World — agent benchmark/world view。
- 04 · MemPalace — agent memory 空间隐喻。
- 05_RethinkingAgenticRL(并行写作中) — 同期 agentic RL 反思,关注算法层面。
10 · 局限 / 个人 take / 待验证
10.1 paper 自承的局限
- 开放式环境收益小:WebArena / Deep Search 上提升明显小于 TextCraft / BabyAI / SciWorld。RL 在有清晰 cause-effect 的任务上最有效——open-ended task 的 reward design 仍是开放问题。
- Chem-Mix 全模型 0 分:程序化科学推理是当前 multi-turn RL 仍无法触及的区域。
- 横向公平性:对比 GPT-4o / o3 都不是 task-specific RL 的版本,严格公平要求外部模型也做相同 RL post-training。
10.2 个人 take
- 这是一篇被低估的"基础设施 paper"。它最大的贡献不是 ScalingInter-RL(虽然这一招也确实管用),而是把 multi-turn agent RL 从"每篇论文 reinvent 一次环境胶水"的状态拽出来。下一两年内做 agent RL 研究的人大概率会把这个或类似框架当默认起点。
- ScalingInter-RL 是"train-time inference compute schedule"的一个具体形式,与 reasoning 模型那边的"train-time CoT length curriculum"在精神上是同构的——都是"先剪搜索空间,等模型站稳了再放开"。可以把它当作一个 unifying principle:RL 训 LLM 时,reasoning compute 与 interaction compute 都不应该一开始就给满。
- ScalingInter 的 schedule 是手设的(等比例切),在更大规模训练里大概率需要自适应化(根据 reward 二阶矩 / collapse signal 自动决定是否抬 H)。
- 从 7B 在 SciWorld 上超过 o3 的现象看,task-specific RL 的局部胜利仍然能轻松超过通用大模型——这跟 RL post-training 的最佳应用域是 narrow expert 而非 generalist 一致。
10.3 待验证问题
- ScalingInter 的 transition 点放在 RL 总步数的哪几个比例最优?跨 scenario 是否真有 universal schedule?
- 如果用 async RL(prime-rl / AReaL 风格),horizon 调度和 policy lag 怎么交互?lag 越大是否越需要小 H?
- Chem-Mix 全 0 是 reward 信号问题还是 horizon 不够?能否设计 process reward 解开?
- AgentEvol(rejection sampling)+ ScalingInter 组合会不会比纯 GRPO + ScalingInter 更稳?
- 在 70B 量级上,from-scratch RL(无 SFT warmup)是否还成立?paper 只测到 7B。
- WebArena 的 GitLab&Reddit 子任务为什么是所有 model 的瓶颈?是 long-horizon 还是 action space 问题?
11 · 速记盒
BaseEnvClient.{reset, step, observe} 与 RolloutHandler 抽象拼接。h₁ < h₂ < ⋯ < hₙ,等比例切 transition,不调超参,跨 5 scenario 都 work。