RLAnything: Forge Environment, Policy, and Reward Model in Completely Dynamic RL System
TL;DR
主流 agentic RL 框架 (veRL / AReaL / slime / AgentGym-RL) 把 environment 和 reward model 当成静态外设,只迭代 policy。RLAnything 把三者拧成一个 闭环联合优化系统:policy 用 step+outcome 整合奖励训练;reward model 用 consistency feedback (step 标签 × 综合 step 质量) 自监督共同迭代;environment task 由 reward model 的诊断性 critique 驱动,自动变易 / 变难。理论上证明 task 难度平衡能同时改善 PRM 估计精度。
立场真正有意思的不是 +9.1%,而是 reward model 训得越好,人写的 verifier 反而可以不用——在 GUI 这种 verifier 极贵的领域,这给"自演化 agent"打开了一个口子。
§1 动机 — 为什么环境和 reward 不能再静态了
1.1 历史脉络
RL for LLM 的演化大致是三步:
- RLHF (InstructGPT, 2022):静态偏好数据 → 训 reward model → 冻住 reward → PPO。reward 训完就不动了。
- RLVR (DeepSeek-R1, OpenAI o1, 2024–2025):放弃学出来的 reward,直接用 verifiable outcome (数学题答案对错、单元测试通过率) 作为 0/1 信号。reward 是死规则,environment 是题库 + checker。
- Agentic RL (UI-TARS, Search-R1, AgentGym, 2025):policy 在 environment 里跑长 trajectory,outcome 来自 environment 的 final verifier。问题立刻浮现——
当 trajectory 长到 30–60 步,binary outcome 信号过于稀疏。把 advantage 平摊到几十个 step,任何一步都拿不到强 gradient。于是出现两条修补路:
- 加 process reward (PRM):Lightman et al. (2023) 提出 step-wise scalar PRM;后来 Liu et al. (2025) 用 generative reward model 让 LLM 自己当 PRM。但 PRM 要训,得人标 step-level label——agent 任务上几乎无法 scale。
- 加 curriculum / 自动出题:Zeng et al. 2025 (RLVE)、Xue et al. 2026 (EvoCUA)、Cai et al. 2025 (AutoForge) 试图自动合成任务以匹配 policy 当前能力。但这些 system 的 reward 仍然是静态规则,curriculum 信号靠 policy accuracy 本身闭环 (易陷入 reward hacking)。
RLAnything 的立场:policy / reward / environment 三者必须同时动,且互相提供 critique 信号。如果只优化两个 (任意搭配),整个系统都会有"短板"。
1.2 别的方案为什么不够 — 对比表
| 框架 | policy | reward | environment | 跨长 trajectory 的 step 信号 | 痛点 |
|---|---|---|---|---|---|
| RLHF (InstructGPT) | dynamic | frozen | N/A (single-turn) | 无 | reward 老化 / hacking |
| RLVR / DAPO / GRPO | dynamic | verifier (静态规则) | 题库静态 | 无 (binary outcome only) | 长 trajectory 信号稀疏 |
| veRL / AReaL / slime | dynamic | 外部 (规则或冻 RM) | 静态 | 取决于使用者 | 仅 infra,不解决 reward/env 退化 |
| AgentGym-RL / OpenManus-RL | dynamic | 静态规则 | 固定 env pool | 多数无 | env 太简单或太难时 stuck |
| RLVE (Zeng 2025) / AutoForge | dynamic | 静态 | dynamic (难度自适应) | 无 | 缺 step 信号,长 horizon 仍弱 |
| Co-evolve coder + UT (Wang 2025e) | dynamic | dynamic (UT 联合训练) | 静态 | 单元测试粒度,非长 trajectory | 仅适用于 coding |
| RLAnything | dynamic | dynamic (consistency) | dynamic (critic-guided) | PRM × m + outcome | — |
1.3 为什么这事不平凡
把三个组件全部 dynamic 起来听起来像"再加两个 loss",但有三个非显然的难点:
- PRM 的 self-training 没有外部 ground truth:如果 reward model 自己出标签自己学,会塌成 trivial constant (例如恒输出 +1)。RLAnything 用 Rτᵢ × Sτᵢ,j 这个 consistency 信号,把 outcome (公正、可信) 和 step 多次采样的平均 (粗略 self-consistency) 当 anchor,理论上证明这个 objective 与 PRM 的预测精度等价 (Theorem 1)。
- Curriculum 与 PRM 训练耦合:作者证明 (Theorem 2),当 P(Oτ=−1 | q) → 1 (太难) 或 → 0 (太易) 时,importance-weight ratio ‖f₊‖/‖f₋‖ 会发散,违反 Theorem 1 的 μ = p₊ + p₋ > 1 条件。也就是说不做 curriculum,PRM 训不动——这正是把 env adaptation 拉进闭环的理论依据,而不是经验装饰。
- Critic 反馈要"可执行":简单根据 accuracy 自动调难度 (Zeng 2025) 只能输出 0/1 信号"加点提示";RLAnything 让 reward model 的 reasoning trace
rτᵢ,j担任 诊断报告:它会告诉 task rewriter "agent 把 fx 按钮和 Σ 按钮认错了",rewriter 才知道往 task 里加 "Use Function Wizard (fx), not AutoSum" 这种 targeted hint。这个粒度是裸 accuracy 给不出来的。
§2 背景速查
| 术语 | 简释 |
|---|---|
| PPO / GRPO / DAPO | 三代 RL 优化器。GRPO (Shao 2024) 用 group-wise advantage 替代 critic;DAPO (Yu 2025) 加 clip-higher / dynamic sampling。RLAnything 算 advantage 时遵循 GRPO 风格:对同一 task 内 trajectories 在同一 step index i 标准化 Rτᵢ。 |
| PRM (Process Reward Model) | 对 trajectory 的每一步打分。本文用 generative PRM:LLM 当 reward model,先 reasoning 再吐 ±1。 |
| ORM (Outcome Reward Model) / verifiable outcome | 对整条 trajectory 打分。OSWorld 用人写 evaluator script;AlfWorld 用环境内置 reward;coding 用 unit test pass rate。 |
| Curriculum learning | 按难度排序训练样本。这里是 online 的:训练中根据 rollout accuracy 实时改写 task。 |
| Reward hacking | policy 学会钻 reward 的空子,而非完成真任务。dynamic reward + verifiable anchor 是一种缓解。 |
| Consistency loss | 这里特指 step 标签 Sτᵢ,j 与综合 step 质量 Rτᵢ 的点乘——agreement 越高,reward model 对该 step reasoning 越受奖励。 |
| Importance weight (f₊, f₋) | 定理 2 里出现的归因权重,衡量 trajectory 在 p₊ / p₋ 上的"密度倾斜",当 task 极端难易时严重失衡。 |
§3 方法详解
3.0 工作流: vanilla RL vs RLAnything 一图说清
RLAnything 的描述容易迷糊,因为"三件套同时优化"听起来很玄。实际工作流是一个固定的 5 步循环 — 比 vanilla GRPO 多两步、改一步。先并排对比 per-iteration 操作:
| 步骤 | Vanilla RLVR / GRPO | RLAnything (每个 iteration k) |
|---|---|---|
| ① 采样 task | q ∼ Q (Q 静态) | q ∼ Q (Q 会被改写) |
| ② Rollout | policy 跑 8 条 trajectory τ | 同上,但记录每一步 τᵢ |
| ③ 拿 reward | 只有 outcome Oτ ∈ {−1,+1} | Oτ + 每步 ask reward-model m=3 次拿 Sτᵢ,j ∈ {−1,+1};合成 Rτᵢ = Oτ + (1/3)Σ Sτᵢ,j |
| ④ 更新 policy | GRPO on R = Oτ | GRPO on Rτᵢ(step-level, 信号密集 30×) |
| ⑤ 新增: 更新 reward model | —(reward 是 fixed verifier) | 把 policy 的 trajectory 当 reward-model 的训练数据,supervision = Rτᵢ·Sτᵢ,j(consistency loss) |
| ⑥ 新增: 更新 task | —(Q 不变) | 看 q 的 rollout accuracy:>0.8 → 让另一个 LLM 改难;<0.2 → 改易;改写时把 reward-model 的失败诊断作为提示 |
看清这 5 步后,核心差别就两件事 — 都是把 vanilla RL 里"事先定死"的东西改成在线训练 / 在线生成:
- reward 从 fixed verifier 变成 trained model:vanilla RL 的 reward 是写死的 (比如 "答案对就 +1");RLAnything 的 reward model 是一个 LLM,在跟 policy 一起 RL 训练,每步都打分。
- task 从 fixed set 变成 mutable set:vanilla RL 的 Q 是 dataset,从头到尾不变;RLAnything 的 Q 是一个 mutable pool,每 iteration 都根据 policy 表现做"题目改写"。
3.0.1 用 OSWorld 一个 Excel 任务跑一遍(论文 Figure 3 左上)
这是论文给的具体例子。任务 q: "Calculate each employee's age" — Excel 工作表里有员工出生年(C 列),要在 D 列填年龄。Policy = Qwen3-VL-8B-Thinking,既是 actor 也是 reward model 自己。
3.0.2 跟 vanilla RL 的差别有多大?
用上面 Excel 任务做对比:
| 对比维度 | Vanilla GRPO (e.g. veRL / AReaL) | RLAnything |
|---|---|---|
| 每步看到的 reward | 整条 trajectory 共享一个数: Oτ=−1。step₁/step₂/step₃ 拿到的 advantage 一样,gradient 平均分摊到 30 步上 | step₁ A=−0.67, step₂ A=−1.33, step₃ A=−2.0。错得最离谱的那一步拿到最强信号 |
| credit assignment | 稀疏 — 30 步 trajectory 只有 1 个 reward 信号 | 密集 — 30 步 trajectory 拿到 30 个 reward 信号 |
| 失败后下一轮看到的 q | 同一个 "Calculate ages",再失败再失败 | q′ 带提示 "use Function Wizard not AutoSum",课程难度自动降 |
| reward 准确性 | 由 task 设计者写死的 verifier(可能 brittle) | reward model 随 policy 一起 RL 训,policy 学到新错法,reward model 同步学到新检测法 |
| 训练所需人工 | 需要标注 outcome verifier + 写题 | 只要 outcome verifier (二元成败) + 一个 seed task 集合 |
反向论证: 如果只做 vanilla RL,这个 Excel 任务会怎样?
Qwen3-VL-8B-Thinking 在 8 条 rollout 上 0/8 通过,只拿到 8 个 O=−1 信号。GRPO 把整条 30 步 trajectory 的 advantage 都设为 −1 的标准化,policy 不知道"问题出在哪一步"。下一 iteration 还是同一个 task,policy 继续犯同样的错(因为它学到的是"整个 trajectory 都不好",但不知道哪里不好)。论文 Table 1 显示 OSWorld 上 vanilla GRPO 从 22.9% 涨到 27.2% (+4.3%),而 RLAnything 涨到 32.0% (+9.1%) — 差距主要来自 step-level credit assignment + task curriculum 这两件事。
3.1 三件套闭环
整篇论文的精华是 Algorithm 1。每个 k-th iteration 包含四步:① policy rollout;② 用 reward model 给每个 step 做 m 次评估;③ 用 Rτᵢ 更新 policy,同时用 Rτᵢ·Sτᵢ,j 更新 reward model;④ 根据 rollout accuracy 触发 task 改写。
3.2 Integration Feedback for Policy
给一个 trajectory τ = (τ₁, ..., τ_T) 和 outcome Oτ ∈ {−1, +1}。对第 i 步,query reward model m 次得到 Sτᵢ,1, ..., Sτᵢ,m ∈ {−1, +1} (m=3 in paper)。整合的 step reward:
每步都把整段 outcome 加进去 (注意不是 discount),保证即使 reward model 全部认为这一步正确,只要 outcome 是负的 R 也会被拉到 0;反之亦然。这是防 reward hacking 的关键 anchor。advantage 用 GRPO 风格在同 task、同 step index i 上做标准化:
Worked example: AlfWorld trajectory (T=8, m=3)
policy 接到 task "Place ClothType into ToiletType",采 8 个 rollout。取其中某条轨迹 τ:
| step i | action | Sτᵢ,1 | Sτᵢ,2 | Sτᵢ,3 | mean S | Oτ | Rτᵢ |
|---|---|---|---|---|---|---|---|
| 1–6 | go to 浴室、橱柜...(找布) | -1 | -1 | +1 | -0.33 | +1 | 0.67 |
| 7 | take cloth 1 from toilet 1 | +1 | +1 | +1 | +1.00 | +1 | 2.00 |
| 8 | put cloth 1 in drawer 2 (失误) | -1 | -1 | -1 | -1.00 | +1 | 0.00 |
同一个 step index i=7 在 8 条 rollouts 上的 Rτᵢ 分布大致 {2, 1.3, 0.67, 2, ..., −0.33}。标准化后给本条 τ 的 step 7 一个偏高的 A,GRPO 把 "take cloth"这个 action 强化。反向论证:如果不加 outcome anchor (令 λ→∞ 仅用 mean S),reward model 早期偏差就会被无限放大;如果不加 step 信号 (λ=0 退化成 outcome-only GRPO),长 trajectory 的所有 step advantage 退化成相同的 ±1,Figure 6(b) 显示这就是 baseline 在 30+ 步任务上不收敛的根因。
3.3 Consistency Feedback for Reward Model
核心一行式:
解读:Rτᵢ ∈ [−2, 2] (λ=1 时) 是一个 polled estimate ——综合了 outcome 与 m 次 step 评估。Sτᵢ,j 是单次评估。把它俩相乘:
- 当 Rτᵢ > 0 (整体高质量) 且 Sτᵢ,j = +1 (本次评估也说好) → +,reward 这次 reasoning 是对的。
- 当 Rτᵢ > 0 但 Sτᵢ,j = −1 (跟大局唱反调) → −,惩罚。
- 当 Rτᵢ ≈ 0 (评估很分裂),所有 j 的 advantage 都接近 0 ——uncertain step 不参与学习,这是隐式的样本筛选。
同样 advantage 在 j 维上标准化:Arτᵢ,j = (Rτᵢ·Sτᵢ,j − μj)/σj。reward model 输出的是 reasoning trace + 末位 ±1,被 RL 强化的是整段 reasoning 而不只是末位 token。
3.4 Environment Auto-Adaptation
每个 task q 有当前 rollout accuracy acc(q)。两个阈值 αhigh=0.8、αlow=0.2。逻辑:
- acc(q) > 0.8 (太易) → 用 LM 生成 harder(q; s),其中 s 是 reward model 对失败 step 的 critique 摘要;接受当且仅当 αlow < acc(q′) < acc(q)。
- acc(q) < 0.2 (太难) → 生成 easier(q; s);接受当且仅当 acc(q) < acc(q′) < αhigh。
- 0.2 ≤ acc(q) ≤ 0.8 → 保留原 task,不动。
"critique 摘要" s 来自所有至少一次 Sτᵢ,j=−1 的 step 的 reasoning trace rτᵢ,j 的 LM 汇总 (Appendix C.6),并不是单纯的 accuracy 数字。在 OSWorld 例子里,s = "1. 把 fx 误点成 Σ; 2. 用了 SUM 给出日期而非年龄"。改写 LM (Qwen3-4B) 据此把 task 描述里追加 "Use Function Wizard (fx), make sure result is number"。
反向论证:为什么阈值检查要做双向 (新 task 要既不再过难也不超出原难度)?如果直接接受 acc(q′) ∈ [0.2, 0.8] 的任何 q′,LM 容易把 task 改得失去原 essence (例如把 GUI 任务改成 trivia),accuracy 也能落进区间。论文 §3.2.9 的 96.0% (GUI) / 96.7% (AlfWorld) / 94.2% (coding) pass-at-least-one 率 (由 Qwen3-32B 16 次独立 trial 验证),就是这套接受准则有效性的证据。
§4 公式与定理
4.1 Theorem 1 — consistency 优化 ⇒ PRM 精度
定义 reward precision A = P(Sτ⁺ᵢ > Sτ⁻ᵢ | Oτ⁺=1, Oτ⁻=−1),其中 Sτᵢ = (1/m)Σ Sτᵢ,j 是 mean process reward。令 μ ≜ p₊ + p₋,p₊ = P(Sτ⁺ᵢ,j=1), p₋ = P(Sτ⁻ᵢ,j=−1)。结论:
直觉:μ 是 "对正 trajectory 的 step 也说正" + "对负 trajectory 的 step 也说负" 的概率和。要让 PRM 能区分好坏 step,这俩概率不能都偏向同一类——必须 μ>1 (即偏向"正向 calibration") 才能让两个 distribution 在 m 重采样后逐渐分离。Hoeffding 风格的指数收敛给出了 m=3 在实践中已经够用的依据。
4.2 Theorem 2 — task 难度失衡 ⇒ μ 估计偏
当 λ=1。f₊, f₋ 是 trajectory 上的 importance-weight 函数,且
‖f₊‖/‖f₋‖ → ∞, 当 P(Oτ=1 | q) → 1 (task 全成功)
含义:reward model 的 RL objective 可分解为 p₊ 与 p₋ 两个内积的加权和,权重就是 importance norm。当 task 太难,几乎所有 trajectory 都是 O=−1,p₊ 那边几乎没采样,梯度被 f₋ 主导;反之亦然。这就是为什么要做 env adaptation——不是为了 policy,是为了让 reward model 的 μ 估计不偏。这条因果链是 RLAnything 区别于 RLVE / EnvGen 的核心论点。
4.3 边界敏感性 (Theorem 1 数值表)
| μ | m=1 | m=3 | m=10 | m=30 |
|---|---|---|---|---|
| 1.05 | 0.0006 | 0.0019 | 0.0062 | 0.0186 |
| 1.2 | 0.0099 | 0.029 | 0.095 | 0.259 |
| 1.4 | 0.039 | 0.113 | 0.330 | 0.698 |
| 1.6 | 0.086 | 0.236 | 0.551 | 0.917 |
表中数值是下界 1 − exp(−m(μ−1)²/4)。读出来的事:μ 离 1 越近,m 必须很大才能拉满 A。论文用 m=3,等于赌 μ 不会接近 1——而这恰好是 env adaptation 要负责维持的。
§5 实验关键结果
5.1 主表 — 三件套消融
三种配置:① Policy (只用 integrated reward 训 policy,reward 和 env 冻);② Policy + Reward (再加 consistency 训 RM);③ Policy + Reward + Env = RLAnything。
| setting | GUI (OSWorld) | LLM (AlfWorld) | Coding (LiveBench) | |||
|---|---|---|---|---|---|---|
| In-domain | OOD | In-domain | OOD | Code | UT | |
| Before | 40.4 | 16.1 | 39.0 | 44.9 | 31.3 | 27.8 |
| Policy | 48.3 | 19.8 | 51.1 | 59.3 | 38.8 | 27.8 |
| + Reward | 49.6 | 20.0 | 55.6 | 61.8 | 40.0 | 73.3 |
| + Reward + Env | 52.1 +11.7 | 21.3 +5.2 | 60.2 +21.2 | 63.6 +18.7 | 43.2 +11.9 | 78.9 +51.1 |
读三件事:① 三个 dynamic 组件单调累加,没有一个是噪声;② OOD 上 +5.2 / +18.7 的提升说明这不是 over-fit to 训练 task;③ coding 上 UT accuracy +51.1 是巨大的——意味着 reward model (这里是 unit test 生成器) 在 consistency loss 下变成了一个真能判断 code 对错的工具,而不是表面合理。
5.2 λ 消融 (AlfWorld, 100 steps)
| λ | RM process acc | RM outcome acc | policy acc |
|---|---|---|---|
| 1/4 | 51.8 | 62.5 | 48.0 |
| 1 | 55.5 | 62.4 | 54.1 |
| 4 | 57.4 | 60.2 | 53.3 |
λ 大 → RM 更看重 step quality,process acc 提升但 outcome 预测能力下降;λ=1 是甜区。policy 也最爱 λ=1。
5.3 优化的 RM 信号 > 人写 verifier (Figure 6a)
把 outcome reward 完全拿掉,只让 policy 拿 optimized reward model 的 step 信号训练——OSWorld 上 still 比有 verifiable outcome 的 GRPO baseline 更高。这是全文最 disruptive 的实验:在 GUI 这种 verifier 极贵 (人写脚本)、不可 scale 的场景下,自演化的 reward model 可以替代人工 verifier。
5.4 accepted task 线性 scale (Figure 7a)
新接受的 task 数量随训练 step 近似线性增长,policy 在新 task 上的 accuracy 稳定在 ~0.4,意味着 env adapter 持续在 "稍微超出 policy 当前能力"的区间出题——这正好对应 §4.2 让 μ 远离 1 的目标。
§6 与同类工作对比
| 系统 | dynamic reward? | dynamic env? | step signal? | 关键差异 |
|---|---|---|---|---|
| veRL / AReaL / slime | 否 | 否 | 由 user 决定 | 这些是 RL infra,不解决信号设计 |
| AgentGym-RL / OpenManus-RL | 否 | 否 | 无 | 提供 env 池但 reward / env 静态 |
| RLVE (Zeng 2025) | 否 | 是 (多档难度) | 无 | env scale 但缺 step;短 horizon |
| EnvGen / EvoCUA | 否 | 是 (LM 合成) | 无 | 合成任务质量缺验证;无 critic 反馈 |
| RL Tango (Zha 2025) | 是 (gen+ver 共训) | 否 | 有 (single-turn) | 仅 single-turn,无 trajectory |
| AgentPRM (Xi 2025) | 是 (PRM 训练) | 否 | 有 | PRM 需要外部标签;reward / env 不耦合 |
| Co-evolve coder + UT (Wang 2025e) | 是 | 否 | UT 粒度 | 仅 coding,本文 §3.2.7 把它纳为特例 |
| RLAnything | 是 (consistency loss) | 是 (critic-guided) | 是 (PRM × m + outcome) | 三件套 + 理论保证 |
§7 局限 / 个人 take / 待验证
- 局限m=3 evaluations per step,每个 RL step 大约 12×8×30 = 2880 次 reward model 调用 (OSWorld),compute 不小;实际开源仓库的 throughput 怎么样需要看代码。
- 局限αlow=0.2, αhigh=0.8 是 hard-coded 双阈值,没做消融。早期 policy 弱的时候大量 task 会落进 acc=0,可能触发过度 easy-shift。
- 局限Theorem 1 的"A→1 当 m→∞"是渐近,m=3 时下界仅在 μ > 1.4 才达到 0.1+;μ 估计不会"溢出"是靠 env adapt 保住的,这个闭环的稳定性论文没给 PAC-style 证明。
- 个人 take真正改变社区认知的是 §3.2.6:RM 信号 > 人写 verifier。如果可复现,这意味着 OSWorld / WebArena 这类"verifier 卡脖子"的 benchmark 可以脱离人工评估自演化——这是 next-gen agentic RL 的 unlock。
- 个人 take论文写法上"三件套"的卖法很 RL Tango 的扩写;但理论 contribution (Theorem 1+2) 比 RL Tango 更扎实——它把 env adapt 从经验 trick 提升到了 PRM 精度的必要条件。
- 个人 takeRτᵢ · Sτᵢ,j 这个 consistency 信号本质是 self-distillation:用 m 重采样的 majority + outcome anchor 当 soft label 训单次评估。和 STaR / R2S 思路类似,但放在 step 粒度。
待验证问题
- m=3 是否真是 sweet spot?当 m=1 时 Rτᵢ 退化成 O+λS,RM 自训练几乎只剩 outcome anchor;m=10 会不会让 μ 估计更稳但 compute 翻 3 倍。
- 把 reward model 换成更小的模型 (e.g. Qwen2.5-1.5B) 时,critic reasoning trace 还能不能产生可用的 task rewriting 信号?这是落地的关键。
- env adapter 用的 LM (Qwen3-4B) 会不会 mode-collapse —— task 改写多轮以后是否会偏向某类 task family?
- OSWorld 9.1% 提升里,有多少来自 47 个 pre-created task perturbations (§3.1.4),多少来自实际 online 改写?
- "RM signal > human verifier" 是不是 specific to OSWorld 的人写脚本质量低?在 AlfWorld 这种 env 自带 reward 的场景能不能复现?