论文链接: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 训练:
| 基准 | Base | Envs-FORGE | 最强基线 | 提升幅度 |
|---|---|---|---|---|
| tb-core | 40.0% | 49.2% | 46.8% | +9.2pp |
| tb-2.0 | 23.0% | 29.4% | 27.3% | +6.4pp |
| SWE-bench Verified | 73.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
