环境进化:不碰模型,把 RL 环境按代拉难

腾讯混元:难度是环境的属性,不是模型的属性。零 rollout 逐代进化,Terminal-Bench 2.1 +14.4 / +18.0 个点

Environment Evolution for Terminal Agents · arXiv 2609.04128 · Tencent Hunyuan · 2026-09
一句话:agentic RL 的环境太简单 = 学习信号枯竭。混元从多轮学习目标反推出与策略无关的难度度量(场景新颖性 × 技能稀有度 × 执行长度),用双循环 harness 沿三轴逐代进化环境、EL Scheduler 控投放节奏。Qwen3.6-27B / 35B-A3B 峰值 71.5% / 64.9%,显著超过协同进化与环境组合基线。
Environment Evolution for Terminal Agents · arXiv 2609.04128
Tencent Hunyuan(腾讯混元)

环境成了新的瓶颈

Agentic RL 的算法和异步基建都稳了,scaling 的重心正在转向环境。但对 terminal agent 来说有个尴尬现实:从 GitHub 仓库、技能、网页批量合成的环境,对 frontier 模型已经太简单——模型反复 rollout 全部通关,零学习信号,环境只能扔掉,白花构建成本。

已有的补救是「agent–环境协同进化」:拿目标模型在种子环境上 rollout,暴露弱点,围绕弱点合成新环境。问题是这条路绑死了 rollout 模型——模型变强,信号枯竭;而且合成出的环境带着那个模型的偏见,泛化受限。

腾讯混元的思路换了个根:难度是环境的属性,不是模型的属性。他们提出 environment evolution——不碰模型、不用 rollout,把环境本身一代一代往难了进化。

难度公式:从学习目标反推三根轴

论文最漂亮的一步是从多轮学习目标推导出 off-policy 难度度量。把 agent 的执行轨迹看成「场景 × 技能」的交替序列,轨迹的负对数似然分解为三部分:轮数 L、场景新颖度 −log p(σ)、技能稀有度 −log p(κ|σ)。把其中模型相关的概率换成基于世界知识的参考分布,就得到与策略无关的环境难度。

这一步把「模型觉得难」和「环境本来就难」切开了。协同进化收集的是前者(模型特定的弱点),进化沿的是后者的三根轴:

Length(拉长执行链,加依赖)、Scenario(换掉场景,保留技能)、Skill(换掉技能)。消融验证了三个方向的效应谱稳定:length 对通过率的打击最大,scenario 和 skill 更多拉高平均轮数,且单步效应和 15 代累积效应一致。

实现:双循环 harness + 调度器

进化由 loop-engineered 多智能体 harness 执行,每代两个门控循环。Loop 1 做计划:Proposer 抽取当前环境的「场景–技能」执行序列,按选定方向做序列级编辑,rubric 评审员迭代打回直到通过。Loop 2 做改造:Modifier 生成环境残差并应用,候选环境过三道并行验证——Oracle 验证参考解能在沙箱里跑通、Invalid-test 验证空解确实失败(防止验证系统放水)、rubric 验证环境质量。人类审查中漏过的问题会被固化成新 rubric,喂回循环。

有个精巧的设计叫 evolution effort,类比 thinking effort:low 只改一个场景–技能对,high 改一段连续区间,max 不设限——控制相邻代之间的突变幅度。

训练侧配 EL Scheduler:每代环境先用 8 次 rollout 探通过率,≥6/8 才放行下一代。目的是让 rollout 组保持「部分解出」状态——组内有区分度,GRPO 才有非零 advantage。随机采样整条 lineage 会撞上全失败组,预算全浪费。

结果:信号更持久,终局更高

种子环境的筛选先做了一道硬漏斗:47,678 个候选环境,过滤后只留 127 个(Claude Opus 5 下通过率 ≤4/8、平均轮数 ≥30)。每个种子进化出 15 代验证过的环境,全程不需要目标模型 rollout。

在 Qwen3.6-27B 和 35B-A3B 上做 200 步 GRPO(Claude Code harness,先 RFT 提熵):

Environment Evolution 峰值 71.5% / 64.9%,协同进化 62.9% / 55.1%,环境组合(ensemble)60.0% / 52.8%——Terminal-Bench 2.1 上分别领先协同进化 8.6 和 9.8 个点,论文报告相对自身 RFT 起点 +14.4 / +18.0 个点。

三个佐证细节:进化出的环境对 Hy4 preview、Claude Opus 5、GPT-5.6 Sol 三个模型都保持挑战性(off-policy 难度的直接验证);种子环境即使已经用尽 SFT 价值,进化 lineage 仍能持续给出 RL 信号;训练中每轨迹轮数和 token 同步增长,每轮 token 从 ~951 涨到 ~1221——策略在更难的环上学会了更深思考。

对 self-improving agent 的意义

这篇把「自改进」的宿主从模型搬到了环境。协同进化是「模型长、环境跟着长」,进化是「环境自己长,模型随时来学」。后者便宜得多:进化一次的成本摊给所有模型和所有后续训练。

连起来看最近这条线:Repo-To-Skill 蒸馏知识给 agent,环境进化蒸馏难度给训练。两者共同点是把原本绑定在「某次运行 / 某个模型」上的稀缺信号——操作性知识、可学习性——外化成可复用、可验证、可累积的资产。WHALE 讲的模型×环境协同进化,在这里被拆成了环境单线进化 + 调度器控节奏,工程上更稳。

值得盯的边界:三根轴都是「序列级」编辑,场景和技能的粒度选择、rubric 质量本身依赖强模型做评审员——进化链的上限被 synthesizer 模型封顶。这点论文没有量化讨论。

论文:arXiv 2609.04128

main
图1 | 三种环境扩展范式对比:(a) 环境组合、(b) agent–环境协同进化(绑死 rollout 模型)、(c) 环境进化——evolver 沿 lineage 逐代拉难,不依赖任何目标模型
harness
图2 | 双循环 harness:Loop 1 计划细化(Proposer + rubric 评审),Loop 2 环境改造(Modifier + Oracle / Invalid-test / rubric 三道并行验证)
rollout
图3 | evolution effort 三档(low/high/max)控制相邻代突变幅度,对应通过率与轮数的变化谱
rl
图4 | 200 步 GRPO 主结果:Environment Evolution 峰值 71.5% / 64.9%,优于协同进化(62.9% / 55.1%)与环境组合(60.0% / 52.8%)