验证器版本感知的数据账本:环境逐代演化时 Agent RL 训练数据的复算与选择
在环境逐代变难的 Agent 强化学习中,把标签的验证器版本写入数据账本,量化陈旧正样本,并把优势估计与数据选择建立在版本条件之上
背景与动机
训练终端智能体的一条主线是环境缩放。Environment Evolution(arXiv:2609.04128)不再用 on-policy 通过率估难度,而是把难度定义为绑定于环境族的量 D_T(ξ):用扎根于世界知识的参考分布 T 替掉模型相关概率,得到三个坐标——求解轮数 L、场景新颖度 −log p_T(σ|g)、技能稀缺度 −log p_T(κ|σ,g)。沿这三个坐标做增量编辑,就得到逐代变难的环境谱系。谱系由 Evolution-Lineage Scheduler 调度:B=8、阈值 τ=6/8,当前环境上的通过率 p̂ 超过 τ 才前进到同代下一个环境,整代跑完才进入下一代。在 Qwen3.6-27B 与 Qwen3.6-35B-A3B 上,这套流程把 Terminal-Bench 2.1 提升 14.4 与 18.0 个百分点。
这条流水线在训练侧留下一个没有被记录下来的后果。每条 rollout 的二值结果是两个自变量的函数:轨迹本身,以及判定它的验证器版本。环境演化给每代环境配了三道验证——Oracle 验证器确认参考解在沙箱中成功,Invalid-test 验证器确认空解与 no-op 解失败,自适应通用 rubric 验证器检查环境质量。第三道还带人工在环:绕过 rubric 的问题会被转成新 rubric,反馈给 plan reviewer 与环境验证器,直到人工审不出问题。标准轨迹缓冲存的是 (s, a, r),第二个自变量在写入的那一刻就丢了。
需要先把这条前提的时态讲准。rubric 修订与人工在环发生在环境合成阶段:合成循环反复把绕过检查的问题转成新 rubric,直到能稳定产出人工审不出问题的环境,这才冻结出一条谱系。在 Environment Evolution 的公开设置里,每个种子环境产出一条离线的 15 代谱系,全程不依赖目标智能体的 rollout;15 代这个上限的原因是再往后通过率进入零通过区、失去分辨力。随后 EL Scheduler 才在 200 步训练中把已经建好的各代按顺序放出来。
所以严格的因果链是:验证器不随训练推进被修改,而是随谱系位置不同而不同——第 g 代环境自带它那一代的验证器实例,15 代就是 15 批互不相同、但都已冻结的验证器。「验证器被改过之后,它过去签发的那批标签还算数吗」这个追问依然成立,只是它的准确形式变成:同一批历史轨迹由不同代的不同验证器签发。这个改动对本方案是利好——所有版本的验证器在训练开始前就已存在,跨版本复算因此不必等新版本出现,可在训练启动前一次性跑完(见「技术路线」第 2 步)。
丢掉这一个键,让三个本来成立的操作变得不成立。
第一个是跨代池化。这里要先划一条边界:Environment Evolution 的公开协议里没有 replay 缓冲——每步都在当前活跃环境上采 B=8 条新 rollout,全文检索 historical、reuse、experience buffer 均为零命中,replay 只出现在相关工作对 UED / PLR 的引用里。所以下面这条不是它现存的缺陷,而是往它上面叠加任何跨代复用之前必须先补的前置条件:奖励的归一化统计量(running mean / std)、replay 缓冲、跨代选择池,凡是跨版本聚合的地方,都在把「环境变难」读成「策略变差」。EL Scheduler 的推进条件是 p̂ > 6/8,这保证历史池里来自早期代的轨迹对应的策略通过率很高,来自当前代的轨迹通过率很低。同一个策略在池子两段数据上拿到系统性不同的奖励;不按版本分层,优势估计会把该差异记到策略头上。
第二个是失败过滤。数据策展的常规动作是丢掉失败轨迹。环境演化精心构造的恰恰是当前策略解不动的那批环境——EL Scheduler 只在当前代通过率超过 6/8 之后才前进,被丢掉的这批失败轨迹正是谱系推进所依赖的前沿样本。过滤动作与调度器的设计目标直接对冲。
第三个是数据选择。DE-Venus(arXiv:2609.03324)把监督视为跨数据准备与策略优化演化的状态,分三个模块:Active Data Selection 分配训练与标注预算,Weak Supervision Construction 从无标注样本导出信号,Training-Time Supervision Refinement 过滤或纠正不可靠监督。它在公开基准与三个业务场景上,用 10% 的标签或少至 13% 的相关数据保住或提升模型质量,部分业务配置把收敛步数降低 63%–75%。它做了版本化,但版本化的是数据集:持久化决策作用于 versioned dataset,溯源管理记录的是哪一次方法改动改写了哪个标签。全文检索 verifier version、non-stationary、replay、stale 均为零命中。它回答「哪个方法改了这个标签」,不回答「哪个验证器产出了这个标签」。在环境逐代演化的设定下,后一个问题正是选择偏差的来源:按信息量在版本盲的池子里选 13%,早期代数据更干净、通过率更高、方差更小,会被优先选中,选中子集随代数推进系统性远离前沿。
缺口可以分层指认。环境缩放层回答「生成什么环境」,不回答「这些环境产出的数据怎么存、怎么选」。监督控制层回答「标签不可靠时怎么修」,修的时候缺一把定位到验证器版本的钥匙。验证器可信度层给出的是正交的警告:PROCTOR(arXiv:2609.02246)在合同分析、合规审查、代码质量的生产环境里跑自主 prompt 优化循环,归纳出评估信号的 11 种失效方式,分裁判偏置、harness 与指标失效、真值错误、奖励黑客四类;智能体从环境中读到缓存答案键拿到满分,100% 通过率掩盖了 68% 的真实能力;一个损坏的真值标签让优化器删掉了正确的合规规则。PROCTOR 证明验证器会错,本提案追问的是下一个问题:验证器被改过之后,它过去签发的那批标签还算数吗。
核心思路
提出 VADER(Verifier-Aware Data Engineering for co-evolving agent RL)。主张只有一条:结果是二元函数 r = V_v(τ),把它当一元函数用是缺陷所在。三个组件围绕这条主张展开。
组件一,验证器版本化账本。 rollout 记录从 (s, a, r) 扩展为携带溯源元组 Φ(τ) = (v, θ_id, u, r^(v), m):v 是环境与验证器版本,θ_id 是产出该轨迹的策略检查点,u 是采集时的 update 序号,r^(v) 是该版本下的结果,m 是首个错误步索引。(s, a, r) 仍可原样读出,扩展向后兼容。把 θ_id 放进元组不是冗余:EL Scheduler 保证同一版本 v 下的轨迹横跨「策略还解不动」与「策略通过率已超 6/8」两个阶段,只记 v 分不开这两段。
一处索引精度需要补全。种子池是跨领域均衡采样得到的 500 个环境,每个种子各建一条独立的 15 代谱系,调度器的活跃指针写成 E_{i,g,k}。所以 v 应当取 (i, g) 二元组而非单一标量:只记 g 会把 500 条谱系的同代环境压成一层,而它们在场景与技能上彼此无关,压层会污染按 v 索引的归一化统计量。
组件二,确定性复算与存活矩阵。 环境判定分两层,Oracle 与 Invalid-test 是确定性程序,自适应 rubric 是 LLM 裁判。只对确定性层复算,且分两种:同版本复算——用 V_v 重跑在版本 v 下签发的终态,得到标签翻转率 φ(v);跨版本复算——用更后代的验证器 V_v′ 重跑历史终态,得到存活率 σ(v → v′)。由于谱系是离线预建的,V_v′ 在训练开始前就已存在,这一步可以整体前置、不需要等新版本出现。跨版本复算在语义上是压力测试而非正确性判据,因为 V_v′ 检验的是更难任务的要求;报告时与同版本复算分列,不合成一个数。
组件三,版本条件化的估计与选择。 估计侧把 GRPO 的组归一化键从 prompt 改为 (prompt, v),奖励归一化统计量按 v 索引。选择侧把数据价值从结果改为版本差分:一条轨迹若在 V_v 下通过、在 V_head 下失败,它落在演化前沿上,保留;若在 V_v 下通过、同版本复算却翻转,它是陈旧正样本,丢弃结果信用、保留前缀信用。
三条边界需要划清。环境缩放层改的是生成什么环境,VADER 改的是这些环境产出的数据怎么记账与复用,二者正交可组合——VADER 直接消费 EL Scheduler 已算出的 p̂ 与 (g, k) 指针,不额外占用 rollout 预算。监督控制层按数据集版本组织监督决策,VADER 按验证器版本组织标签;合并办法是让 DE-Venus 的 Supervision Refinement 在 (v, θ_id) 分层内做,而非在全局池上做。过程监督层用首个错误步索引 m 解决结果监督太粗的问题,Cliff(arXiv:2609.02817)用一个现成 LLM 当教师定位 pitfall step,把 rollout 切成正确前缀与错误后缀并转成 token 级优势,在 12 个场景上优于 on-policy distillation 15%、优于标准 GRPO 7%;VADER 把同一个 m 当作跨版本不变量使用——一条轨迹在 V_v 下的前缀正确性,不因 V_v 被修复而失效,陈旧正样本由此可被部分抢救而非整条丢弃。
退化检验。 g = 0(单一验证器版本,环境不演化)时,(prompt, v) 分组恒等于 (prompt) 分组,σ(v→v) ≡ 1,VADER-NA 严格退化为标准 GRPO。任何在 g = 0 上测到的增益都属于噪声或实现错误。这条退化性质让三臂对照有干净的归因。
技术路线
第 1 步,账本与埋点。在 Environment Evolution 的 harness 上把 (v, θ_id, u) 写进 rollout 记录,m 复用 Cliff 的教师判定。产出一份 Parquet 账本,schema 向后兼容标准 (s, a, r) 读取路径。
第 2 步,测量存活矩阵。对谱系中每个版本 v 采样终态池,在同版本与头版本确定性验证器上各跑一遍,估计 φ(v) 与 σ(v → head)。成本只涉及终态重放与验证器执行,不重新采样 rollout。按演化方向(L / 场景 / 技能)分层报告,用于把存活率下降归因到具体编辑类型。
第 3 步,版本条件化优势估计(VADER-NA)。改组归一化键与奖励统计量索引,其余不动。
这一步有一个必须提前说清的退化情形,否则 B 臂的增益无法归因。Environment Evolution 里一个 GRPO 组就是同一环境上的 B=8 条 rollout,全部来自同一个 v;此时按 (prompt, v) 分组与按 (prompt) 分组是同一个分组,改动恒等于 no-op。协议内唯一的组内版本混合来源是异步训练:它用完全异步的 GPU 放置、并把 staleness bound 设为 5,在最多 5 个 update 的漂移窗口内,调度器有可能已经从 g 推进到 g+1,使一组 rollout 跨越两代。除此之外,版本混合只来自本方案自己引入的跨代复用。因此 B 臂相对 A 臂的增益应当按「是否开启跨代复用」分层报告:不开启时预期接近 0,显著非零即说明增益来自实现差异而非版本条件化。
第 4 步,前沿感知选择。在给定预算下解一个带陈旧约束的选择问题:最大化前沿样本覆盖,约束是选中子集的估计陈旧率 ≤ ε。ε 是显式暴露的参数,不做隐含设定。
第 5 步,三臂对照,跑在 Environment Evolution 的公开设置上(Qwen3.6-27B 与 Qwen3.6-35B-A3B,Terminal-Bench 2.1 Verified,Claude Code harness,256K 上下文):
- A 臂:Environment Evolution 原协议,版本盲缓冲;
- B 臂:A + 账本 + VADER-NA;
- C 臂:B + 前沿感知选择 + 陈旧正样本处理。
关键技术挑战有四个。
其一是复算的良定义性。终态必须是可重放的自足工件(补丁、文件树快照)。终端环境里这个条件大体满足,但要求把环境状态序列化与 rollout 记录一并落盘,只存动作序列不够。
其二是 rubric 层的随机性。自适应 rubric 验证器是 LLM,重复采样结果不稳。处理办法沿用 PROCTOR 的护栏原则:确定性检查位阶高于裁判,存活矩阵只由确定性层定义;rubric 层单独做多次采样并报告方差,不进入主指标。
其三是成本。全量复算是 O(|池| × 代差) 次验证。控制办法是增量式——只在出现新一代时对头版本与前一版本复算,历史代做分层抽样估计并给置信区间。
其四是混淆分离。存活率下降有两个来源:验证器收紧,或任务变难。必须沿三个演化方向分解;若某代编辑走 length 方向,存活率下降应主要落在终态复杂度上而非判定标准上。这一步顺带构成对 Environment Evolution 难度分解的外部校验。
预期成果
定量目标(本提案自己的目标,非上游论文结论):
- 给出 φ(v) 与 σ(v → v′) 随版本差变化的曲线,报告版本差为 1、4、8、14 处的取值。核心假设是 σ 随版本差单调下降。若 φ(v) 在各代均接近 0 且 σ 平坦,本文基本前提不成立,VADER 退化为纯粹的记账开销。
- Terminal-Bench 2.1:等 rollout 预算下,C 臂比 A 臂高 ≥ 3 个百分点,B 臂比 A 臂高 ≥ 1 个百分点。
- 等性能下,C 臂用不超过 A 臂 70% 的 rollout 算力达到 A 臂的终态分数。
- DE-Venus 式 13% 选择预算下,版本感知选择把选中子集中最近两代的占比相对版本盲基线提升 ≥ 2 倍。
- 零检验:g = 0 时 B 臂与 A 臂之差落在 ±0.5 个百分点内。
可证伪预测有三条。预测一,版本盲池的陈旧正样本质量随代数单调增长;若曲线平坦,则前提有误。预测二,B 臂相对 A 臂的增益随代数单调增长,在 g = 0 处为零;若在 g = 0 处非零,增益来自实现差异而非版本条件化。预测三,DE-Venus 的 Active Data Selection 在版本盲池上会随代数推进把选中子集推向早期代;若选中比例与代无关,则选择偏差这一支是空的,VADER 只剩估计侧的贡献。
影响落在两块。工程上,账本 schema 与存活矩阵能做成环境缩放流水线的标准仪器,任何做环境演化的团队都能接入,代价是一次终态序列化改造。方法上,它把数据策展从「对结果标签的过滤」改造成「对标签签发条件的审计」。这个视角对代码域同样成立:TCS(arXiv:2609.03955)把测试生成建成对抗式两阶段 RL,Stage 1 生成与参考解一致的测试,Stage 2 把缓冲区限制在当前失败模式上学反例测试,测试集随策略失败模式漂移,验证器在代码域同样是随训练变动的工件。
局限性与失效模式
局限一,谱系离线预建使「验证器漂移」弱于本文最初的设定。 环境演化在训练开始前就冻结了 15 代谱系与各自的验证器,验证器不是随训练在线修复的工件。因此 φ(v) 的分子——同版本复算的标签翻转——只能来自验证器自身的执行不确定性(沙箱非确定性、超时、浮点与环境抖动),而不会来自「验证器被修好」。若复算环境与原始采集环境完全一致,φ(v) 很可能全程接近 0,此时本文的「陈旧正样本」一支是空的,VADER 只剩估计侧的贡献。这正好落在可证伪预测的判据里,须如实报告而非回避。
局限二,本文的第一个失效模式在目标协议中尚不存在。 如上所述,Environment Evolution 公开协议没有 replay 缓冲,也没有跨代池化。VADER 对它是前置条件而非修复:只有当使用者往这条流水线上叠加跨代复用(重放、跨代选择池、离线数据混合)时,账本才产生价值。因此在原协议上直接做 A/B/C 三臂对照,B 臂与 C 臂的预期增益都会被稀释——三臂对照必须显式加入一个「开启跨代复用」的维度,否则测不到本文声称的机制。
局限三,验证器的异质性不等于验证器的单调收紧。 跨版本存活率 σ(v → v′) 下降有两个来源:验证器变严,或任务本身变难。第 2 步沿三个演化方向分层报告只能部分解开这个混淆——即便某个方向主要改动求解轮数 L,更难的任务往往也配了更严的 Oracle 测试。要真正分离,需要一组「同一终态、不同验证器」的对照,即把第 g 代的终态同时交给第 g 代与第 g′ 代的验证器判定;这要求验证器本身可按代独立调用,是本方案对 harness 的额外要求。
局限四,确定性层只覆盖三道验证中的两道。 Oracle 与 Invalid-test 可复算,自适应通用 rubric 是 LLM 裁判、重复采样不稳,因此不进入主指标。但第三道恰恰是环境质量的把关者,把它排除在存活矩阵外,意味着存活率衡量的是「程序性判定是否还成立」,而非「这个环境在今天的 rubric 下还算不算好环境」。PROCTOR 的立场是裁判应被降级为顾问、由它无权推翻的确定性层把关;本方案沿用这一分层,代价是放弃了对 rubric 层漂移的量化。
局限五,成本换来的收益未必超过更简单的基线。 全量复算是 O(|池| × 代差) 次验证,增量式控制与分层抽样可以降低量级,但账本与终态序列化本身是一次实打实的工程改造。一个必须并列的廉价基线是「只用最近两代的数据」(滑动窗口)。若滑动窗口就能吃掉大部分增益,VADER 的增量价值只剩可审计性。
相关工作
- Environment Evolution for Terminal Agents(arXiv:2609.04128)——Zhiyuan Fan 等 12 人,2026-09-03。提出离策的环境难度定义 D_T 与逐代调度的 Evolution-Lineage Scheduler,Terminal-Bench 2.1 上提升 14.4 与 18.0 个百分点。本提案的数据账本直接消费它已算出的调度指针。
- DE-Venus: A Data-Efficient RLVR Framework for Large Language Models(arXiv:2609.03324)——Shenzhi Yang 等 14 人,2026-09-03。把监督建模为跨阶段演化的状态,三个模块覆盖主动选择、弱监督构造与训练时监督精化,用 10% 标签或 13% 数据保住模型质量。它版本化数据集而不版本化验证器,是本文主键改造的落点。
- Cliff: Learning Process Rewards from the First Mistake(arXiv:2609.02817)——Peixuan Han 等 6 人(Amazon Web Services、UIUC),2026-09-02。用教师模型定位 pitfall step,把 rollout 切成正确前缀与错误后缀并转成 token 级优势,12 个场景上优于 on-policy distillation 15%、GRPO 7%。本提案复用其首个错误步索引作为跨版本不变量。
- Two-Stage Reinforcement Learning for Sound and Adversarial Test Generation in Code LLMs(arXiv:2609.03955)——Jiacheng Xu 等 7 人,2026-09-03,EMNLP 2026 Findings。Stage 2 把缓冲区限制在当前失败模式上生成反例测试,证明验证器随策略漂移在代码域同样发生。
- LLM-as-a-Judge Is Not an Oracle: Why Self-Improving Agents Need Deterministic Guardrails(arXiv:2609.02246)——Vansh Wahi,2026-09-02。在生产自主 prompt 优化循环中归纳评估信号的 11 种失效方式,提出 PROCTOR 的五道确定性护栏;100% 通过率掩盖 68% 真实能力。为本提案「确定性层位阶高于裁判」的分层复算提供依据。