}


大语言模型(LLM)正在从文本生成器转向能够浏览网页、修改代码和操作办公软件的智能体(Agent)。与传统 LLM 主要从静态语料中学习不同,Agent 的能力提升越来越依赖可交互环境:提供任务、维护状态、响应动作,并通过验证器判断任务是否完成。

然而,现有训练环境存在一个结构性问题。它们通常由人工编写,交互逻辑和验证规则在开发完成后便保持不变。无论面对哪个 Agent,也无论 Agent 已经学会了什么,环境提供的任务都基本相同。这既难以针对当前策略的薄弱环节提供训练信号,也会在 Agent 掌握已有任务后迅速失去教学价值。

同时,从零生成更多环境并没有彻底解决这一问题。现有环境生成流水线往往只适用于网页、编程或工具调用等特定领域,难以跨任务复用;生成环境的验证器也可能存在错误,需要大量生成、过滤和人工检查,成本也很高

为减轻从零重建环境所带来的工程负担,谷歌、圣路易斯华盛顿大学团队及其合作者提出了“环境 HarnessEnvironment Harness,EnvHarness),在静态环境外增加一层可编程组件,通过标准接口调整初始状态、交互规则和任务长度,同时保留原环境及其人工构建的验证器。


论文链接:https://arxiv.org/pdf/2608.19880

为实现这一过程的自动化,他们还提出了 EnvRigger,将目标策略视为黑盒,从成功和失败轨迹中诊断能力缺陷,再编写和验证相应的 EnvHarness 组件。

在涉及四个领域的五个基准上,EnvHarness 的性能优于原始环境和特定领域的环境生成流水线,在留出任务上最高提升9.0 个百分点,且平均执行步数也减少9.8%

此外,EnvHarness 还能为强化学习(RL)提供更优的优化信号,从而实现策略与环境的持续、有针对性的协同进化。

EnvHarness:让静态环境“动”起来

我们都知道,Agent Harness 通过工具、记忆、技能库和执行循环,将冻结的 LLM 组织成可执行复杂任务的 Agent。在这项工作中,EnvHarness 则将同样的思想放到交互的另一侧,通过外部组件把冻结环境变成可定制环境。


换言之,前者可以写成“Agent = 模型 + Harness”,后者则对应“定制环境 = 静态环境 + EnvHarness”。两者都不要求修改底层核心系统,而是通过可组合的外部模块扩展能力。

EnvHarness 只在环境的标准 reset/step 接口上工作,不修改模拟器后端,也不重写基础任务。

研究团队将环境改造归纳为Stage、Contract 和 Chain三类组件,用于分别控制“从哪里开始”“如何交互”和“任务持续多久”。


1.Stage:重新设置任务起点

Stage 负责改变一个 Episode 的初始状态。它会在环境完成重置后,先执行一组合法动作,再把处理后的状态交给 Agent。

这组动作既可以增加难度,也可以降低难度。以“清洗杯子并把它放到桌上”为例,原始环境中的杯子可能直接出现在视野内。Stage 可以提前拿起杯子、打开抽屉、把杯子放入抽屉并关闭抽屉,让 Agent 必须先搜索目标物体。反过来,Stage 也可以预先完成清洗步骤,只保留后续放置任务,从而缩短任务路径。

这种调整不会创建新的模拟器状态,也不需要直接访问环境内部实现。Stage 使用的仍然是环境本身支持的动作,因此改变后的起点依然处在基础环境能够执行和验证的状态空间中。

它的价值在于控制训练内容。对于不会分解长任务的策略,可以先完成早期子目标,集中训练后半段;对于过度依赖显眼目标的策略,则可以隐藏物体,迫使它练习搜索和空间推理。

2.Contract:改写 Agent 与环境的交互方式

Contract 负责调整动作空间、状态转移和观察信息。它可以增加动作前置条件、屏蔽部分观察、移除捷径,或者在特定失败后返回结构化反馈。

例如,Contract 可以将房间描述截断到前两句话,让 Agent 无法一次获得完整信息,必须经过多步探索建立空间表征;也可以禁止 Agent 在没有拿起杯子的情况下执行清洗动作;还可以移除高层级的“瞬移式”导航命令,要求 Agent 逐步移动和搜索。

在软件工程任务中,Contract 还能把训练目标直接编码进交互规则。论文给出的案例是:如果 Agent 修改代码后未运行测试就尝试提交补丁,Contract 会拒绝提交,并返回需要先执行测试的反馈。由此产生的轨迹可进一步提炼为“修改前后都要运行相关测试”的通用技能。

与单纯在 Prompt 中提醒 Agent 不同,Contract 将要求变成环境层面的可执行约束。Agent 如果继续依赖原有捷径,就无法完成任务;只有改变行为,才能获得成功轨迹。

3.Chain:把多个环境连接成长任务

Chain 将两个或多个基础环境组合成一个更长的 Episode。不同子任务可以顺序连接,也可以根据中间结果进行切换。组合后的任务只有在各部分都通过原有验证器时才被判定为成功。

在具身任务中,一个基础环境可能要求 Agent 清洗杯子并将其放到桌上。Chain 可以在此之后继续加入“加热土豆并把它放到台面上”的任务。Agent 不能在完成第一个目标后立即停止,而要持续维护目标状态,完成后续操作。

Chain 训练的重点不是某个局部动作,而是长程目标保持。它要求 Agent 在更长的上下文中规划行动、判断阶段边界,并避免把一次局部成功误认为整个任务已经结束。

三类组件使用相同接口,因此可以组合。例如,EnvHarness 可以先用 Stage 隐藏杯子,再用 Contract 截断观察,最后通过 Chain 追加第二个任务。不过这些组件并不满足交换律,包装顺序会影响初始化和交互阶段实际应用的约束。

EnvRigger:根据Agent弱点自动改造环境

EnvHarness 提供了通用组件,但具体应该改变什么,仍然取决于目标策略。能力较弱的 Agent 可能需要简化任务,能力较强的 Agent 则需要更严格的限制。

为此,研究团队设计了 EnvRigger,并将自动改造过程分为 Observe、Diagnose、Write 和 Validate 四个阶段。


Observe 阶段首先让当前策略执行基础任务,并收集一批成功与失败轨迹。失败轨迹暴露缺失的能力,成功轨迹则帮助界定能力边界,避免把已经掌握的部分重复加入训练。

Diagnose 阶段从轨迹中寻找系统性问题,例如重复执行同一动作、无法处理较长观察,或者误解工具使用约束。如果策略频繁失败,EnvRigger 会寻找可以拆解和支撑任务的方式;如果成功率已经达到 100%,则意味着原环境过于简单,需要增加难度才能继续暴露缺陷。

Write 阶段根据诊断结果生成一个或多个组件。某个问题可能只需要一条 Contract,也可能需要组合 Stage 与 Contract:前者调整起点,后者限制后续交互。

Validate 阶段将候选组件包装到环境外,再使用新的策略 Rollout 检查效果。无法求解或没有挑战性的环境会被拒绝;难度不合适的组件会根据新轨迹继续修改。只有确实能够暴露目标缺陷、同时仍可被策略解决的组件,才会进入训练环境集合。

这一“编写-验证”循环避免了只依据 LLM 的文字判断生成训练任务。EnvRigger 必须通过实际执行来证明组件有效。在整个实验中,EnvRigger 与策略 Agent 使用相同的模型骨干,也没有借助更强的外部模型蒸馏能力。

效果怎么样?

研究团队在文本具身环境 ALFWorld、网页交互 WebArena、软件工程 SWE-bench Verified,以及办公自动化任务 OfficeQA 和 SpreadsheetBench 上进行了评估。

在这一过程中,训练实例与测试实例严格分离。主要实验采用 Skill-based Learning:先从原始环境或 EnvHarness 环境中的执行轨迹提取技能,再将技能提供给同一策略,在留出实例上测试。对照组包括不使用技能、从原环境提取技能,以及 GenEnv、VeriEnv 和 SWE-smith 等领域专用环境生成方法。

在 ALFWorld 上,来自原始环境的技能取得 62.4% 的平均成功率,EnvHarness 将其提高到 68.3%。其中,分布外任务从 61.4% 提高到 70.4%,增幅达到 9.0 个百分点;相比专门用于该领域的 GenEnv,平均成绩也高出 5.7 个百分点。

在 WebArena 上,EnvHarness 的平均成绩为 41.6%,高于原始环境技能的 38.5% 和 VeriEnv 的 39.6%。提升最明显的是 Shop Admin 子任务,成功率从 44.6% 提高到 50.8%。


在 SWE-bench Verified 上,EnvHarness 将问题解决率从原始环境技能的 49.88% 提高到 52.58%,同时把平均执行步数从 55.01 降至 49.61。相比 SWE-smith,其解决率高出 2.46 个百分点,每个任务平均少执行 5.11 步。

OfficeQA 的 Exact Match 从 54.40% 提升至 56.20%,F1 从 55.77% 提升至 57.73%。SpreadsheetBench 的 Pass@1 则从 45.88% 提高到 49.15%。值得注意的是,直接从未改造环境中提取技能,在 SpreadsheetBench 上反而低于不使用技能的基线,说明增加经验并不必然带来有效学习信号。


为强化学习提供更优信号

研究团队进一步测试了 EnvHarness 对强化学习的积极影响。他们以 Qwen3-8B-base 为策略模型,使用群组相对策略优化(GRPO)分别在原始环境和 EnvHarness 环境上训练。

在 ALFWorld 的分布内任务上,EnvHarness 将成功率从 81.4% 提高到 87.9%;但分布外成功率从 89.6% 小幅下降到 88.8%。在 WebShop 上,环境得分从 75.6 提高到 79.2,成功率从 66.0% 提高到 67.4%。四项指标中有三项获得提升,说明经过改造的环境可以直接提供策略优化信号,而不只是生成用于提取技能的辅助轨迹。


Chain 组件还显示出对长程任务的独立价值。仅使用 Chain 轨迹提取的技能,将平均执行步数从无技能基线的 53.58 降到 41.96。将 Chain 技能与 Stage、Contract 技能组合后,问题解决率达到 54.30%,平均步数为 43.12,在正确率和效率之间取得了更好的平衡。


随着环境数量从 0 增加到 300,EnvHarness 在 SWE-bench Verified 上的解决率从 47.67% 持续提高到 54.79%。相同预算下,原始环境和生成环境分别达到 52.13% 和 50.37%,且后期增长趋缓。EnvHarness 的区别在于,每一批新环境都根据已经获得技能的当前策略重新设计,使策略与环境形成连续的共同进化。


不足与未来方向

当然,这项研究也存在一些局限性。

例如,EnvRigger 的设计循环会带来额外成本。每个候选组件都要经过生成、执行、验证和修改,能力较弱的设计 Agent 往往需要更多轮迭代,在生成大规模高质量环境集合时,会消耗大量的时间和推理算力。

同时,EnvHarness 还要求环境提供可重置的 Gym 风格接口。Stage 需要把环境恢复到确定状态,Chain 也要在子任务之间完成重置。因此,EnvHarness 目前不适用于不可逆的在线操作,例如在真实账户中发送邮件、完成下单,或者让物理机器人在无法自动恢复的现实场景中行动。

另外,当前 Chain 主要采用顺序拼接。它可以组合多个经过独立验证的子任务,却无法判断这些任务在语义上是否相关,也难以表达包含分支或共享中间状态的工作流。要实现语义化组合,还需要任务兼容性判断,以及能够覆盖整体目标的新验证机制。

此外,EnvHarness 目前主要处理文本动作和文本观察。未来方向包括支持视觉、图形用户界面和具身环境,以及设计能够注入随机性、控制部分可观测性、提供辅助反馈或支持多 Agent 交互的新组件。

综合来看,EnvHarness 将环境扩展从“重新开发一个世界”转变为“包装已有世界”。它保留了成熟环境中交互后端和可信验证器这些最昂贵的部分,同时根据 Agent 的当前能力动态调整训练内容。

研究团队表示,随着 Agent 学习逐渐从静态数据转向交互经验,这种让环境围绕策略弱点持续变化的机制,可能成为扩展高质量训练信号的一条更具通用性的路径。

更多技术细节,详见原论文。

作者:学术君

如需转载或投稿,请直接在本文章评论区内留言