理论动机(Theorem2):任务过难或过易时,RM训练退化:
任务太难(Policy 总失败):RM 只见负例 → p− 饱和 → 无法区分步骤好坏
任务太易(Policy 总成功):RM 只见正例 → p+ 饱和 → 无法区分步骤好坏
重要性权重 ||f+||/||f−|| → 0(太难)或 → ∞(太易)→ RM 训练 bias
所以:保持合适难度不仅对 Policy 有益,对 RM 训练也是数学必要的。
Algorithm 1 的 Environment Adaptation 步骤:
acc(q) = 当前任务 q 上 Policy 的成功率
if acc(q) > a_high (0.8): # 任务太简单了
s = summarize_errors(RM的推理过程) # 提取 RM 识别出的错误模式
q′ = LLM.harder(q, error_summary=s) # 基于失败模式生成更难版本
if a_low < acc(q′) < acc(q): # 验证:确实变难但还可学
Q.replace(q, q′) # 替换任务集中的 q
elif acc(q) < a_low (0.2): # 任务太难了
s = summarize_errors(RM的推理过程)
q′ = LLM.easier(q, error_summary=s) # 基于错误模式生成更易版本
if acc(q) < acc(q′) < a_high: # 验证:确实变易但还有挑战
Q.replace(q, q′)
任务生成的核心机制:不是随机扰动,而是语义引导的有针对性修改:
RM 的推理输出(自然语言)
→ 总结出 "Policy 在这类步骤上总是出错” 的模式
→ LLM 基于这个错误摘要 + 原任务 q → 生成新任务 q′
→ 新任务在 Policy 的弱点处更具针对性
实际例子(论文 Figure 3):
Computer Use (OSWorld):
原任务:“在Chrome里搜索X”
Policy总在多标签页管理上失败
→ RM推理:反复犯同一种多标签错误
→ harder(q):“在已有3个标签页的情况下,在特定标签页搜索x”
Text Game (ALFWorld):
原任务:"拿起水壶”
Policy导航正常但物体识别失败
→ harder(q):“在杂乱房间中找到遮挡的水壶”
与OpenClaw-RL的对比
设计维度 RLAnything OpenClaw-RL
RM是否联合训练 是(Consistency Feedback) X否(固定LLM Judge)
步骤信号来源 RM(联合优化) LLM Judge(零样本)
Environment 来源 动态生成(难度自适应) 真实用户对话(无法控制)
任务难度控制 a_low=0.2,a_high=0.8 无控制(用户行为随机)
Off-policy处理 PPO clip(隐式) PPO clip + 503 pause
关键差异:OpenClaw-RL 用的 LLM Judge 是冻结模型,判断标准不随 Policy 变化。RLAnything 的 RM 是动态学习的,会随Policy能力提升而变得更精准。这是"真正的联合优化”vs 单方向打分"的本质区别。
OpenClaw-RL 能引入 RLAnything 思路的改进方向:
给LLM Judge 加入 Consistency Feedback(让 Judge 也接受轨迹结果的监督)
根据用户流失率/留存率动态调整"评分标准”(Environment难度类比)
7.3 SWE-Universe:水平扩展的代表
上面 7.2 详解了 RLAnything(垂直扩展/难度自适应的代表),这里我们看另一个方向的代表——SWE-Universe(水平扩展/数量扩展的代表)。
核心问题:如何把 GitHub 上千万 PR 自动转化为可验证的训练环境?
PR(issue + patch + tests)
↓
↓ Building Agent(迭代自验证)
↓ in-loop Hacking Detector(防止 grep / 浅匹配的假验证)
↓
可执行的 verifier (evaluation.sh) = “结构上不失真的可训练决策过程”
三大挑战与解决方案:
挑战 解决方案 效果
低构建成功率 迭代自验证循环(buggy → fix 双向测试) 82.6% → 94%
Verifier 质量差 In-loop Hacking Detector 拒绝 grep 式捷径
成本过高 训练专用轻量 MoE 模型(Qwen-Next-80B-A3B) 超过 Claude-Opus-4.5,成本大幅降低
规模:807,693 条多语言实例,来自 52,000+ 个 GitHub 仓库。应用结果:Qwen3-Max-Thinking RL 训练后 SWE-Bench Verified = 75.3%。
7.4 两个代表的对比与编译器类比
把 SWE-Universe(水平扩展)与 RLAnything(垂直扩展)放在一起对比,能看清两种 Env Scaling 路线的差异:
SWE-Universe RLAnything (Forge) ──────────────────────────────────────────────────────Env Scaling 水平扩展(数量:807K 实例) 垂直扩展(难度:自适应)
策略 从存量 GitHub PR 中提取 从 policy 失败中生成新任务
("挖矿"式扩展) ("自进化"式扩展)
Verifier 从 PR 的 test suite 中构建 从 RM 的一致性信号中学习
关键创新 Hacking Detector Policy + RM + Env 联合优化
这两个工作都可以用编译器问题做类比,帮助理解 Env Scaling 的本质。
编译器优化问题:输入是 source code(人类写的程序),目标是 machine code(最优执行效率),搜索空间是所有可能的 transformation 序列(指数级),难点在于局部最优 ≠ 全局最优,验证方式是运行代码测量执行时间。
Env Scaling 问题:输入是 task specification(人类定义的任务),目标是 training tasks(最优的学习材料),搜索空间是所有可能的 task 变体(指数级),难点在于好的训练任务难觅、局部有用 ≠ 整体有用,验证方式是训练 agent 测量能力提升。
更深的结构对应:
编译器 Env Scaling
──────────────────────────────────────────────────────────────────────
Optimization passes ⇆ Curriculum stages(训练阶段)
Type system ⇆ Task grammar(任务结构约束)
Dead code elimination ⇆ Filter useless tasks(过滤无信号任务)
Loop unrolling ⇆ Subtask decomposition(任务分解)
Register allocation ⇆ Compute budget allocation(计算资源分配)
JIT compilation ⇆ Adaptive curriculum(运行时适应难度)
Superoptimization ⇆ Automated curriculum search(搜索最优 env)
具体到两个工作:
SWE-Universe ≈ 编译器工具链自动化:PR(source code)→ [Building Agent 编译] → 可执行的 verifier(machine code)。问题是如何可靠地"编译"出正确的 Verifier,Hacking Detector 的作用就是消除 dead code(防止捷径让验证"假通过")。
RLAnything ≈ 自适应 JIT 编译器 + Profile-Guided Optimization:传统 JIT 用固定优化规则、根据运行时 profile 选择优化;RLAnything 把 RM 的失败报告当作 runtime profile,根据 profile 调整 task(相当于 JIT 根据 profile 调整优化策略)。
最深的类比:RLAnything 的 Environment Adaptation 就是"把编译目标设为移动靶"——不是在固定任务上优化 policy,而是让任务本身追着 policy 的弱点跑,这正是 “Superoptimization + JIT” 的结合。
两者面临的核心难题相同:
搜索空间指数级爆炸
局部评估(单个 pass 或单个 task 的收益)无法预测全局效果
需要学习一个"搜索策略"而非枚举
补充:RLAnything 和 OpenClaw-RL 是同一团队(Yinjie Wang, Mengdi Wang, Ling Yang)。OpenClaw-RL 的"环境真实用户"是 RLAnything 框架在对话场景的具体实例化。
policy,而是让任务本身追着policy的弱点跑,这正是"Super optimization + JIT"的结合。
补充:注意 RLAnything 和 OpenClaw-RL 是同一团队 (Yinjie Wang,Mengdi Wang,Ling Yang)。OpenClaw-RL 的"环境真实用户"是 RLAnything 框架在对话场景的具体实例化。
7.5 下一代 Env Scaling 方向
方向一:LLM生成环境(无限任务自动合成)
当前:人工设计任务→有限、难以扩展
下一代:LLM作为 Environment Generator,LLM 生成 task specification
↓ agent执行
↓ verifier验证(代码执行/mathchecker/规则检查)
↓ 根据agent失败的任务生成更多类似任务
↓ 无限扩展,自动关注agent的弱点
代表:
AlphaCode的合成竞赛题
STaR/ RLVR(RL from verifiable rewards)
Self-Play Fine-Tuning (SPIN)
方向二:对抗性环境(动态对抗Agent弱点)
当前:环境固定,agent逐渐适应
下一代:环境adversarially追着agent的弱点跑,比如Environment Generator学习:“agent在哪类任务上失败?”
→ 生成更多那类任务 agent改进
→ Generator再找新的弱点
→ GAN式的env-agent对抗训练
方向三:WorldModels作为内部环境(梦境训练)
Dreamer / DreamerV3:
学习一个WorldModel(状态转移模型)
在World Model内部做RL(imagined rollout)
不需要运行真实环境