01 · 论文概览Yao et al. · arXiv:2608.22631v3

训练环境越多未必越好:先确认评分有没有奖励正确行为

RIVER 从 14,399 个 TMax 环境筛出约 3.5K,再给重复命令与输出扣分。River-8B 四项终端评测平均 19.4±1.2。

作者解释:SFT 补单步技能,RL 改多步执行顺序。

35.8%TMax 被 GPT-5.4 判 CLEAN
≈3.5K静态审计与两次试做后留下
0.74行为特征预测成功的 AUC
9.4/10博客作者个人兴趣程度
来源:论文 Abstract、Figures 1-2、Table 1。所有图表均重绘,不复用论文原图像素。
02 · 阅读准备任务包 · 训练模型 · 执行程序 · 验收器

分清任务作者、数据审计、被训练模型和验收程序

任务作者

任务包

生成任务说明、Docker 环境、配套数据和该题验收程序。

静态审计

筛选器

GPT-5.4 静态审计三类材料,再用 Terminus-2 试做两次。

训练模型

被训练对象

在容器里执行命令;能读权限允许的所有文件。

任务验收器

任务最终分

任务执行后运行,全部检查通过才给 1。

来源:论文 §3.2、Appendix A、C。审计标签不直接进入训练模型的提示。
03 · 错误评分任务覆盖与验收可靠性是两件事

错误的验收器会让错误策略成为 RL 的“成功样本”

任务说明做任务 A例如,识别视频底部滚动文字,或实现 Rust 数据处理流程。
环境缺陷泄露 / 错测参考答案可读,或检查器要求未说明的实现细节。
模型执行选择捷径复制答案比完成任务更容易,或者正确实现被迫迎合测试。
验收分数1 / 0 颠倒错误得到正反馈,正确实现得到负反馈。
训练更新放大偏差继续训练可能强化这种错误策略。
来源:论文 §1、§3.2、Appendix C.4。
04 · 作者假设agentic compositional generalization

作者假设:SFT 补基础技能,RL 改跨步骤的执行行为

预训练与 SFT

单步技能

  • 写 grep 与终端管道命令
  • 调用编译器与包管理器
  • 理解领域知识
  • 判断单次动作是否正确
→
任务验收驱动的 RL

多步行为

  • 先检查再修改
  • 错误后换方案
  • 结束前验证
  • 避免重复相同命令和输出
来源:论文 Figure 1、§3.1。论文称结果与该假设一致,没有把它写成严格因果定理。
05 · 邻近研究环境规模 · 测试质量 · 行为解释

RIVER 不另造任务,而是检查上游环境能否正确验收模型行为

路线扩展对象怎样验收RIVER 增加了什么
Endless-Terminals大规模可执行环境各环境的结果验收程序检查验收分数是否可信。
TMax14,399 道题覆盖多领域与技能随任务发布的验收程序从这批题中筛到约 3.5K。
加强测试代码任务的测试覆盖范围更强的单元测试同时检查任务说明、容器和验收是否一致。
推理步骤组合与泛化单轮基本推理步骤最终答案得分扩展到包含终端命令、反馈与错误恢复的多轮执行。
来源:论文 §2。表格是本文按研究边界整理。
06 · 数据与训练14,399 → ≈3.5K → RL

两级过滤解决“该不该训练”,重复行为惩罚解决“怎样给中间步骤反馈”

RIVER pipelineRIVER 从 TMax 任务经静态审计、强模型试做与训练更新的手机阅读图
根据论文 Figure 2、Algorithm 1、§3.2 与 Appendix A-C 重绘。
07 · 静态审计GPT-5.4 读任务说明、Docker 和验收程序

CLEAN 表示审计模型未发现问题;其他七类指出主要缺陷

CLEAN

未发现列出的缺陷

说明清楚,环境可用,验收确实检查任务要求的结果。

验收过弱

假答案也能过

只验格式、计数、关键词或固定输入。

两类不一致

三件套不一致

任务说明与验收冲突,或说明与环境冲突。

答案泄露

答案可见

任务说明或容器文件直接暴露预期答案。

说明含糊

缺规格

任务有多种合理解释,验收只接受其中一种。

任务过易

没有学习信号

写常量、echo 或复制文件就能完成。

OTHER

运行级缺陷

验收有错误、缺 GPU 或服务、环境矛盾或运行不稳定。

只选主类别

缺陷可能重叠

审计仍只能选一个主类别,因此不同评分模型可能选不同缺陷。

来源:论文 Appendix C.1。
08 · 审计一致率无缺陷比例与盲复判

模型对“有缺陷”的判断较一致;对 CLEAN 的判断较不一致

Environment audit results

三个公开环境集合的 CLEAN 占比

环境集合GPT-5.4 判 CLEAN
TMax-15K35.8%
TermiGen10.1%
TerminalTraj-5K3.3%

Claude Opus 4.8 盲复判

GPT-5.4 判定Claude 同意
CLEAN6 / 15 = 40%
有缺陷94 / 105
合计100 / 120 = 83.3%

120 题按 GPT 判定类别分层抽样,每类 15 题。83.3% 不能当作全部环境的总体一致率。查看完整图

根据论文 Figure 11、Table 7 与 Appendix C 重绘。83.3% 是分层样本的有条件一致率,不是全量题目的总体一致率。
09 · 一次反馈分清训练模型可见与不可见材料

训练模型只收任务验收结果;审计与试做只在准备数据时运行

任务包任务包任务说明、容器文件、验收程序。
筛选静态审计GPT-5.4 给主要判定;不进入模型提示。
强模型试做pass@2由强模型各试两次;去掉两次都失败的过难或不兼容环境。
模型执行训练模型执行读任务、历史、终端输出和权限允许的文件。
任务结果PASS / FAIL原任务的验收程序全部通过才给 1。
调整优势逐回复调整优势命令与输出都重复时,该次回复的生成 token 优势各扣 δ。
来源:论文 §3.2、Appendix A.2、C。论文未发布统一验收实现。
10 · 真实案例task_003722 · 参考答案可读

OCR 只做到 0.368,复制可读的参考答案文件后变成 1.0

T1发现答案Agent 在 /app 读到 ground_truth.txt。
T2-T5正常 OCR抽帧、裁剪新闻字幕条、构造含重复与乱码的结果。
T60.368自己恢复的文本远低于验收的 0.85 门槛。
T7覆盖输出改用刚才读到的参考文本。
T81.0 → 得 1 分分数证明文件相同,却没有证明视频理解成功。
Appendix C.4 作者整理的案例;视频 archive_broadcast.mp4,输出 reconstructed_ticker.txt;未独立重放验收。
11 · 真实案例task_006064 · 源码字符串检查

功能测试全通过,却因 Rust API 名称不同整题得 0

Two verifier failure cases参考答案泄漏和 Rust API 字符串误拒两条真实案例的手机阅读图
Agent 看见的要求只保留 ASCII a-z 和空格,输出频率最高的三个词和 3×3 协方差矩阵。
功能测试证据is_ascii_alphabetic() 符合要求;词频与协方差两个测试都通过。
验收额外规定第三个测试搜索字面量 is_alphabetic。合法 API 的名称不同,整题却被判失败。
Appendix C.4 作者整理的 task_006064;项目页只有案例摘要,未发布完整原始日志与可运行验收器。
12 · 调整优势先做 GRPO 组内标准化,再逐 token 调整

命令与输出都高度重复,才扣这次模型回复 token 的训练优势

Ãi,t = Ai,t + si,t
si,t = −δ if both Jaccard > 0.8
δ = 0.05 · cap = 0.15 / rollout
# 解释性重建,不是官方训练代码
repeated = any(
  jaccard(cmd, old.cmd) > 0.8
  and jaccard(obs, old.obs) > 0.8
  for old in prior_turns
)
if repeated:
  token_advantage += -0.05
Eq. (1):重复轮的全部回复 token 各扣 δ。Table 4 列 cap 0.15,但分配方式未公开;代码只演示公式。
13 · 训练和评测上限不等于实际平均调用量

训练最多 16 轮交互,评测最多 64 次动作;两个预算不能混用

阶段数据与更新交互和长度上限资源
SFT78K 执行记录;全参数更新,只算 assistant token 损失1 epoch;最长 16,384 tokens;学习率 1e-58 张 GPU
RL每批 32 题 × 每题 8 条执行记录;400 step16 轮;每轮生成 2,048 tokens;输入 16,3848 张 H200;约 60 小时;temperature 0.6
最终评测589 题;3 个随机种子;任务原生验收64 次动作或 600 秒;完整输入窗口 40,960各模型使用原生执行程序;预算统一仍非单变量对照

SFT · 学基础操作

数据
78K 条执行记录;全参数更新,只算 assistant token 损失
上限
1 epoch;最长 16,384 tokens;学习率 1e-5
资源
8 张 GPU

RL · 在线执行任务

数据
每批 32 题,每题 8 条执行记录;共 400 step
上限
16 轮交互;每轮生成 2,048 tokens;输入 16,384 tokens
资源
8 张 H200,约 60 小时;temperature 0.6

最终评测 · 独立预算

数据
589 题,3 个随机种子;任务原生验收
上限
64 次动作或 600 秒;完整输入窗口 40,960 tokens
对照
各模型使用原生执行程序;预算统一仍非单变量对照
来源:Appendix A.1–A.3、Tables 3–6;达到动作或时间上限且未结束的评测任务记失败。
14 · 主结果589 题 · 3 个种子 · 各模型原生执行程序

River-8B 四项都领先,平均 19.4±1.2;最强对照模型为 17.8±0.7

River-8B main resultsRiver-8B 四项终端评测主结果的手机阅读图
根据论文 Table 1 重绘。OpenThoughts-TBLite 是连续完成度分,其余三项是 0/1 成功分。
15 · 同规模控制约 3.5K 筛选环境 vs 约 3.5K 随机环境

控制环境数量后,过滤组平均高 1.7 个百分点,但没有每项都提高

训练环境OT-TBLiteTB-v2.1TB-ProTW-Verified四项平均
RIVER 筛选 3.5K21.8 ±2.99.7 ±0.623.0 ±3.123.0 ±2.519.4 ±1.2
TMax 随机 3.5K18.6 ±1.98.2 ±1.323.7 ±1.520.3 ±0.617.7 ±0.7
评测筛选 3.5K随机 3.5K
OT-TBLite21.8 ±2.918.6 ±1.9
TB-v2.19.7 ±0.68.2 ±1.3
TB-Pro23.0 ±3.123.7 ±1.5
TW-Verified23.0 ±2.520.3 ±0.6
四项平均19.4 ±1.217.7 ±0.7
Table 8 的均值支持这套过滤更有效;TB-Pro 的反向结果限制了“所有评测都提升”的说法。训练代码未公开,不能逐项检查全部设置。
根据 Appendix C.4 Table 8 整理;± 是 3 个种子的标准差,不是标准误。
16 · 行为消融相关性不等于直接奖励就有效

能预测成功的行为,直接奖励后未必提高结果

OUTCOME ONLY

标准 GRPO

任务验收只给整次执行一个 0/1 分,无法区分哪个中间步骤做得好。

+ REPETITION PENALTY

重复减少,分数提高

重复比例减少,整体分数提高;最终训练方案保留这项惩罚。

+ VERIFY REWARD

行为增加,分数没涨

结束前验证更频繁,却没有额外成绩增益。相关特征不一定是 能直接提高成绩的奖励目标。

来源:论文 Figure 3、§4.1。
17 · 模型规模与执行程序Qwen3.5 2B/4B/9B · Qwen3.6 27B · Vanillux2 · DPPO

换模型家族、规模、执行程序和训练目标后,过滤集仍带来更大的训练增益

TRAINING DATA<30%

约 3.5K / 14,399 个环境。

TB-LITE+106%

相对完整 TMax 数据,训练前后增益的平均增幅。

TB-v2.1+30%

相对完整 TMax 数据,训练前后增益的平均增幅。

来源:论文 Figure 4、§4.2。这里比较训练增益的相对增幅,不是最终测试分数。
18 · 跨领域未训练的 TMax 任务 · 8 类技能领域

只用 Debug + Systems 的约 800 个环境做 RL,整体仍从 32.3 升到 49.2

Domain transfer results

未训练 TMax 任务的整体 solve rate

训练条件成功率相对 SFT
SFT,未做 RL32.3%基线
RL · 2 领域49.2%+16.9 pp
RL · 4 领域53.6%+21.3 pp
RL · 6 领域55.2%+22.9 pp
RL · 8 领域53.9%+21.5 pp

2 领域组只用 Debug + Systems 的约 800 个环境。表中题目来自同一 TMax 来源,不代表独立部署分布。查看完整图

根据论文 Table 2、Figure 8 重绘。它是同一合成任务来源中的未训练题,不是独立真实部署分布。
19 · 证据限制公开材料可以与不可以核查的部分

训练代码、独立标注和单变量控制仍有缺口

缺少人工逐条标准

模型判定标签

全量由 GPT-5.4 判;Claude 只复判 120 个分层样本,在 GPT 判 CLEAN 的样本中,两者一致率只有 40%。

训练材料未公开

公开材料不全

项目仓库只有网页和图表输入,没有 3.5K 任务清单、训练代码、模型权重或执行日志。

执行程序不同

8B 主表

River、OpenThinker、TMax 使用各自不同的原部署程序;统一预算不等于只比较数据。

MECHANISM

相关证据

AUC、RSA、跨领域结果 与假设一致,未证明全部增益都由这 12 种行为导致。

项目页源码 revision 6da2749,2026-10-20 重查;仓库未声明 license。
20 · 结论对 Claude Code / Codex 训练的启发

验收器也是训练系统:先检查评分是否对题,再扩环境

可复用部分

一套可复用的实验框架

同时查错误方案被判对和正确方案被判错;分开静态审计、试做与训练得分;用真实记录解释失败,再直接奖励或处罚行为做对照。

可补的实验

完整执行程序下的隔离评测

在 Claude Code、Codex CLI 与开源执行器上使用同一批隔离测试任务;分开任务生成者、验收编写者与环境来源,并人工复核评分分歧。

个人兴趣度 9.4/10。高分来自研究问题与完整 harness 的相关性,不是对论文绝对质量的排名。
核心结论1 / 20