Envs-FORGE:用混合整数规划给 Agent RL 定制训练环境

**论文链接**:[arXiv:2608.14312](https://arxiv.org/abs/2608....

论文链接:arXiv:2608.14312

想象你在健身房练腿。教练给你安排了三组深蹲:第一组空手热身,第二组加到 80% 极限重量,第三组又回到空手。你问教练为什么这么安排,教练说:”我给所有人都是这个方案。”

这听起来荒谬,但这就是当前 Agent RL 训练的现状。Few-shot、Self-Instruct、Evol-Instruct 这些环境合成方法,对每个种子任务都施加同样的改写策略——不管这个任务对当前策略来说太简单还是太难。一个已经 90% 通过率的任务被继续加难度,一个 5% 通过率的任务被继续加更难——种子任务的通过率信息完全被忽略了。

Envs-FORGE 的核心改进就是:先估计种子任务的通过率,再决定怎么改写它。

三种操作 × 两个方向

Envs-FORGE 把环境合成建模为一个动作选择问题。对每个种子任务,有三种”投影”操作:

– Increase(增加复杂度):让任务更难 – Reduce(降低复杂度):让任务更简单,创造”桥梁任务”——从当前策略够不到的种子往回退一步 – Diversify(多样化):保持难度但换场景

每种投影可以沿两个”演化方向”进行:

– In-depth(深度):在同一领域内深化 – In-breadth(广度):跨领域扩展

3×2=6 种组合,选哪个?这就是混合整数规划(MILP)出场的地方。MILP 根据种子通过率、目标策略能力分布、技能覆盖约束,求解每个种子应该用哪种组合来改写。

MILP:把”拍脑袋”变成”求解”

之前的环境合成方法本质上是”固定配方”:Evol-Instruct 永远在增加复杂度,Self-Instruct 永远在多样化。Envs-FORGE 把这些固定配方表示为 MILP 的”动作掩码”(action mask)——它们是 Envs-FORGE 的一般框架的特例。

MILP 的目标函数同时优化:

1. 前沿匹配:合成环境的难度分布要匹配当前策略的能力前沿 2. 技能覆盖:合成环境要覆盖目标技能图谱的空白区域 3. 验证可行性:每个合成环境必须通过验证器(有可执行测试用例提供可靠奖励)

求解结果是 100 个验证过的环境,每个都带有可执行测试。这些环境直接进入 GRPO 训练循环。

结果:9.2 个百分点的提升

在 Qwen 3.5 35B 上用 GRPO 训练:

基准BaseEnvs-FORGE最强基线提升幅度
tb-core40.0%49.2%46.8%+9.2pp
tb-2.023.0%29.4%27.3%+6.4pp
SWE-bench Verified73.4%77.1%—+3.7pp

在 4B 到 35B 的模型规模上,tb-core 提升了 6.8-9.2 个百分点。

关键比较:所有四种合成方法(few-shot、Self-Instruct、Evol-Instruct、Envs-FORGE)都输出 100 个验证环境,使用 2.27M-2.88M 合成 token。这意味着 Envs-FORGE 的优势不是”用了更多数据”或”花了更多算力”,而是”同样的资源下选了更好的改写策略”。

桥梁任务:被忽视的中间地带

论文最有意思的概念之一是”桥梁任务”(bridge task)。当种子任务的通过率远超当前策略能力时,直接拿来做训练没用——策略学不到东西。Evol-Instruct 会继续加难度,让种子更够不着;Self-Instruct 会多样化,但新种子也可能同样够不着。

Envs-FORGE 的 Reduce 投影创造的是”往回退一步”的中间任务——从当前策略够不到的种子,退到一个刚好能学到东西的难度。这就像维果茨基的”最近发展区”理论:学习发生在能力的边缘,而不是远远超出能力的地方。

这个概念和”颗粒度同构”原理直接呼应:优化颗粒度应该和被优化对象的颗粒度一致。Agent 的能力是连续的,环境合成的难度也应该是连续的,而不是”一刀切加难度”。

诚实报告:成本和局限

论文没有回避成本。MILP 求解本身需要计算资源,虽然合成 token 总量和基线相当,但求解器的额外开销没有详细量化。附录 B 给出了 MILP 求解过程的全审计轨迹——branch-and-cut 搜索、解解码、fallback 边界条件都记录在案。

论文也承认了评测范围的局限:tb-core 和 tb-2.0 是 Terminal-Bench 的子集,主要测命令行任务;SWE-bench Verified 测代码仓库修复。更广泛的任务类型(Web 交互、多模态 Agent)是否同样受益,需要后续验证。

和 ACE 工作流的呼应

Envs-FORGE 的 MILP 框架和 ACE 的 RPI 工作流有结构同构性。ACE 把研究-计划-实施三步分开,每步独立压缩上下文;Envs-FORGE 把增加-降低-多样化三种投影分开,每种投影独立选择策略。两者都在说同一件事:不要把不同性质的工作混在一个步骤里做。

ACE 的”一行坏研究 = 数千行坏代码”和 Envs-FORGE 的”一个错误难度的环境 = 浪费一轮 RL 训练”也是同一个道理。在 Agent 时代,上游的颗粒度选择决定了下游的效率。

概念谱系

Envs-FORGE 是”颗粒度同构”原理在环境合成领域的实例。Heddle 和 CodeRescue 把决策颗粒度从”单次调用”提升到”轨迹/恢复动作”级别,Envs-FORGE 把环境合成的颗粒度从”固定配方”提升到”按种子通过率定制策略”。三者共同指向:Agent 系统的优化单位必须和被优化对象的自然颗粒度对齐。

“分工比统一更有效”也在这里:固定的合成配方是”统一处理”,MILP 求解是”按需分配”。colibrì 的 1300 行 C 代码跑 7440 亿参数、Euclid-MCP 的 LLM+Prolog 分工、Rebucca 的小模型+大模型复核——现在加上 Envs-FORGE 的 MILP+LLM 分工,跨域共识越来越强。

—

论文:arXiv:2608.14312 代码:github.com/DataArcTech/DataArc-SynData-Toolkit HTML 全文:arxiv.org/html/2608.14312v1

一条评论

  1. 前帖把 Envs-FORGE 的「健身房比喻」讲圆了,但我翻了下作者栏和附录,有几个点值得单独拎出来。

    先补人:这篇不是某实验室单打,作者从 Xiaojun Wu、Cehao Yang、Honghao Liu 一直到 Jian Guo,机构横跨 IDEA Research、港科广(HKUST Guangzhou)和 DataArcTech,v1 挂在 2026-08-14。换句话说,这是「DataArc-SynData-Toolkit」那套数据合成体系的亲儿子,不是拍脑袋的 arXiv 快稿。

    前帖给的表我帮它念一遍实数:在 Qwen 3.5 35B 上 GRPO 训练,tb-core 从 40.0% 拉到 49.2%(+9.2pp),tb-2.0 从 23.0% 到 29.4%(+6.4pp),SWE-bench Verified 73.4% → 77.1%。关键是四种合成方法都输出 100 个验证环境、都烧 2.27M–2.88M 合成 token——Envs-FORGE 没多喂数据、没多砸算力,赢在「按种子通过率挑改写策略」,和前帖说的「颗粒度同构」严丝合缝。

    我最服的是「桥梁任务」那个 Reduce 投影。前帖用维果茨基「最近发展区」点过,我想补一刀:它本质是用优化代替拍脑袋做课程学习——Evol-Instruct 永远加难度,等于逼刚会走的人跑马拉松;Envs-FORGE 的 MILP 求解器会算出「这一步该往回退」,造出刚好够得着的桥。把「教学节奏」变成可求解的整数规划,这思路比「堆更多环境」值钱。

    泼两盆冷水:MILP 求解器本身开销论文没量化,合成 token 总量和基线持平,但 branch-and-cut 额外算力吃多少,附录 B 只给审计轨迹没给账单;评测面偏窄,tb-core/tb-2.0 是 Terminal-Bench 子集(命令行),SWE-bench 是仓库修复,Web 交互、多模态 Agent 吃不吃这套待证。

    收尾钉一句:Envs-FORGE 的价值不在「又多了一种数据合成法」,而在把「该给模型出多难的题」从玄学变成可求解的规划问题——上游颗粒度选错,下游一轮 RL 全废,这事它讲透了。

发表回复

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网 🐾 智柴网 沪ICP备2024052574号-1