Source-linked AI summary
EnvHarness: Awakening Static Worlds for Agent Learning
Chengsong Huang, Zifeng Wang, Rujun Han, Jun Yan, Yanfei Chen, Zoey CuiZhu, Ke Jiang, Peng Xia, Han Yu, Yufan Zhuang, Yifei Ming, Jiaqi Pan, Bhavana Dalvi Mishra, Jiaxin Huang, Burak Gokturk, Tomas Pfister, Chen-Yu Lee
TL;DR
静态、手工构建的环境僵化,且领域专用的生成流程验证成本高。EnvHarness 通过可编程组件对其进行封装,EnvRigger 则根据策略运行轨迹定制环境。在五个基准测试中,定制环境使留出任务的性能最高提升 9.0 个百分点,同时交互步数减少 9.8%。
问题
手工构建的环境僵化,而自动生成仍依赖特定领域,难以在各种智能体学习场景中可靠验证。
方法
EnvHarness 通过模块化组件封装静态环境,EnvRigger 则从运行轨迹中诊断策略弱点,合成并验证针对性的定制方案。
结果
在四个领域的五个基准测试中,EnvHarness 定制的环境持续优于原始环境:留出任务的性能最高提升 9.0 个百分点,交互步数减少 9.8%。
要点与局限
EnvHarness 提供了一种跨领域定制环境的方法,同时保留其原始任务和可信验证器。
要点与局限
EnvHarness 要求环境支持重置,并具备 gym 风格的 reset/step 接口,因此不适用于不可重置的在线服务和物理场景。
Abstract
from arXiv · showhide
LLM agents learn by interacting with environments, yet these environments are hand-built and static: blind to an agent's weaknesses, and quickly left behind as it improves. While recent environment generation methods attempt to address this, they require domain-specific pipelines, rely on expensive or unreliable verifiers, and still produce static environments. To alleviate the engineering burden of rebuilding environments from scratch, we propose Environment Harness (EnvHarness), a programmable layer of plug-in components that wraps a static environment to reshape its behavior without modifying the underlying logic. Operating through standard interfaces, EnvHarness applies across diverse domains while ensuring every reshaped environment retains its original verifier. To automate this process, we introduce EnvRigger, which treats the target policy as a black box, observing its execution trajectories to synthesize EnvHarness components targeting diagnosed flaws, and validating them via fresh rollouts. Across five benchmarks in four domains, EnvHarness outperforms both original environments and domain-specific environment generation pipelines, achieving up to a 9.0-point improvement on held-out instances with 9.8% fewer execution steps. Furthermore, EnvHarness provides a superior optimization signal for reinforcement learning, enabling continuous, targeted co-evolution of the policy and its environment.
1. 引言
EnvHarness 通过为静态环境包裹可编程插件,在不改变其逻辑或验证器的情况下定制行为,从而降低手工构建或领域专用环境生成的成本与刚性。EnvRigger 通过诊断黑盒执行失败并合成经过验证的 EnvHarness 组件,自动完成策略与任务条件化的定制。
- 动机: EnvHarness 应对了在学习环境中硬编码交互行为与验证器所需的大量人工投入。自动生成提升了可扩展性,但在网页导航、编程和工具使用等领域之间仍具有固有的领域专用性。
- Environment Harness: EnvHarness 将现有静态环境转化为动态定制环境,同时不修改其底层环境逻辑。其插件层通过标准接口运行,同时保留原环境的任务与验证器。
- EnvRigger: EnvRigger 将目标策略视为黑盒,从成功与失败的轨迹中诊断脆弱点,并合成候选 EnvHarness 组件进行验证。该配置针对每个目标策略与任务定制,而非在不同环境中固定不变。
- 评估: 评估覆盖四类领域中的五个基准,包括具身任务、网页浏览、软件工程和办公工作,涵盖基于技能的学习与强化学习。这些基准包括 ALFWorld (Shridhar et al., 2020)、WebArena (Zhou et al., 2024)、SWE-bench Verified 、OfficeQA 和 SpreadsheetBench (Ma et al., 2024)。
2. EnvHarness
EnvHarness 通过可编程、模块化的接口级变换封装静态环境,在不改变底层模拟器或验证器的情况下定制其行为。其 Stage、Contract 和 Chain 组件支持对初始化、交互和环境结构进行可组合修改。
- 定义: EnvHarness 是一个可编程层,通过标准接口的信息流定制静态环境,同时保持底层环境不变。它将 agent-harness 思路应用于环境:Customized Env = Static Env + EnvHarness。
- 定义: 接口级干预保留原始的真实标签评估逻辑,因此未改动的验证器仍可对每个 episode 进行评分。组件可以定制初始状态、对外暴露的动作空间或观测空间以及转移机制,而无需修改模拟器后端。
- 组件: Stage 修改初始状态,Contract 重写动作、转移或观测,Chain 则通过组合逻辑扩展环境。Stage 可以引入障碍物或缩短时间范围;Contract 可以强制执行前置条件、屏蔽观测或提供结构化反馈;Chain 可以拼接、交错或分支连接环境。
- 组合: EnvHarness 组件通过共享接口进行组合,但嵌套顺序具有非交换性,并决定初始化与交互约束。Stage、Contract 和 Chain 可以在一个组合环境中共同隐藏一个 mug、截断观测,并追加后续任务。
3. 用于 Agent Learning 的 EnvHarness
EnvHarness 自动将基础环境重塑为由任务和策略条件化的环境,在保留可复用、与策略无关组件的同时,暴露目标 agent 的弱点。EnvRigger 通过观察黑盒 rollouts、诊断失败、合成组件,并通过新的执行过程进行验证来实现这一流程。
- EnvHarness 目标: EnvHarness 通过组合能够暴露 π 独特缺陷的组件,生成针对任务 t 和目标策略 π 定制的修改后环境 E′,以实现有针对性的改进。该变换仅作用于环境,因此每个组件都与策略无关,并可跨策略复用;而组件的选择与参数化则由任务和策略共同决定。
- EnvRigger 工作流: EnvRigger 将 π 视为黑盒,分析 rollout 轨迹,编写任务特定的 EnvHarness 组件,并通过新的策略 rollouts 验证候选组件。当候选组件能够提供适当的学习信号时,便予以接受;未成功的候选组件则被拒绝或修订。
- 诊断: EnvRigger 根据失败与成功诊断系统性弱点;当环境过于宽松时,则调整定制方向,通过搭建缺失步骤的脚手架或提高难度来进行改进。诊断示例包括重复的动作循环、难以解析长观测,以及误读工具约束;完美成功可能触发更困难的场景,从而暴露潜在缺陷。
- 编写与验证: EnvRigger 能够合成多个相互协调的组件,例如 Stage 和 Contract,以针对单一缺陷,或在指定条件下阻断脆弱的捷径。候选组件会包装当前环境,在验证前实例化 E′。
4. 实验
在四个领域的五个 benchmark 上,EnvHarness 持续提升 skill-based agents 的表现,优于原始环境、无技能 agents 和适用的专用生成器。其经过验证的环境修改还能降低执行成本,并通过与领域无关的接口实现泛化。
- 跨领域泛化: EnvHarness 通过一个仅需领域专用 prompt templates 的与领域无关接口,适用于 ALFWorld、WebArena、SWE-bench Verified、OfficeQA 和 SpreadsheetBench。专用生成器针对特定 benchmark,无法用于其他领域。
- 实验设置: 在每个 benchmark 内,EnvRigger 与 policy agent 使用相同的 model backbone,从而将性能提升归因于环境重塑。实验主要关注 skill-based learning,并在 Section 5 中进一步评估其与在线 reinforcement-learning 的兼容性。
- 主要结果: EnvHarness 定制的环境在每个 benchmark 上都优于原始环境,使 ALFWorld 最多提升 9.0 points,并持续超过无技能 baseline。write-and-validate loop 仅提交经新鲜 policy trajectories 验证的组件,防止静态环境强化冗余或次优行为。
- 主要结果: EnvHarness 平均比专用生成器高出 5.7 ALFWorld points,在分布外数据上高出 8.5 points,并在 SWE-bench Verified 上比 SWE-smith 高出 2.46 SWE-bench Verified success-rate points。在 SWE-bench Verified 上,它每个 episode 还比 SWE-smith 少执行 5.11 steps。
- 效率: EnvHarness 将 SWE-bench Verified 每个 episode 的平均 steps 从 53.6 降至 49.6,而未修改环境中获得的 skills 会使其升至 55.0。针对重复动作循环和冗长 observations 的 Contracts 与 Stages 带来了效率提升。
5. 分析
EnvHarness 提升强化学习效果,高效扩展训练环境,并适用于能力不同的 policy backbone。其 Chain 组件提升长时程效率,而 EnvRigger 可针对明确的定量约束或自然语言约束进行调整。
- EnvHarness 带来更好的 RL 效果: 在 EnvHarness 环境上训练,相比在原始环境上训练,在四项强化学习指标中的三项上表现更优,其中包括 ALFWorld 分布内成功率 87.9,而原始环境为 81.4。该比较使用完全在原始环境或 EnvHarness 环境上训练的 policies,并在相同的留出实例上进行评估。
- Chain 组件的独特价值: 结合 Stage/Contract 与 Chain skills 可获得最高的长时程成功率 54.30,平均步数为 43.12;单独使用 Chain 则将平均步数从 53.58 降至 41.96。单独使用 Chain 的成功率为 49.63,相比基线 49.88 略低,这反映了其严格条件:必须解决两半任务。
- EnvHarness 实现高效的环境扩展: EnvHarness 在固定 policy、环境预算和 skill-retrieval protocol 下评估环境扩展能力,同时比较 EnvHarness、未经修改的 benchmark 以及 SWE-smith 生成的环境。每批 50 个环境产生一个 skill bank,每个 bank 交替包含两个或三个 skills,共计 15 个 skills。
- EnvHarness 可泛化至不同的 LLM backbones: 在测试的四个 policies 上,EnvHarness skills 相比真实环境中的 skills 均有提升,绝对提高 2.7–3.7 个百分点;不使用 skills 时的成功率范围为 30.7 至 67.2。该增益基本不依赖 policy 强度;相较于不使用 skills,EnvHarness 对最弱的两个 policies 帮助最大,分别提升 +9.3 和 +11.1 个百分点。
- EnvHarness 按需生成环境: EnvRigger 可接受用户明确指定的约束,用于针对成功率或平均步数等定量目标,或用自然语言描述的能力弱点。在标准设置下,该循环会通过行为诊断自主确定训练目标。
6. 相关工作
相关工作通过扩展或适配学习环境,以及分别演化 agent 组件来提升学习能力;而 EnvHarness 的不同之处在于,它针对已诊断的弱点重塑环境本身,让 agent 从中学习。
- 环境扩展: 环境扩展通过 LLM 模拟反馈、世界模型、程序化合成,以及现有 benchmark 中的新任务实例,为 agent 提供更多环境。这些方法涵盖模拟环境与反馈(Guo et al., 2025; Wang et al., 2025; Zala et al., 2024)、整套 agent 环境(Wang et al., 2026; Zuo et al., 2026)、可执行环境(Chae et al., 2026; Dong et al., 2026; Song et al., 2026; Sun et al., 2026; Tang et al., 2026),以及 benchmark 任务实例(Pan et al., 2024; Yang et al., 2026a)。
- 环境扩展: 另一类以环境为中心的方法会适配环境向学习者呈现的内容,包括 reinforcement learning 中的课程生成。
- 自演化 Agent: 自演化 agent 无需额外的人类监督,便可通过演化 prompt、反思、技能、工作流、记忆或模型权重,从自身经验中改进。相关实例包括 prompt 与反思演化(Madaan et al., 2023; Shinn et al., 2023)、技能与工作流库(Huang et al., 2026b; Wang et al., 2023, 2024; Xia et al., 2026a,b; Yang et al., 2026b)、从轨迹中提取的记忆(Ouyang et al., 2025; Zhao et al., 2024),以及模型权重(He et al., 2025; Huang et al., 2025a, 2026a; Xia et al., 2025; Yuan et al., 2024; Zhao et al., 2026)。
- 自演化 Agent: 不同于在保持学习世界固定的同时演化 agent 的方法,EnvHarness 针对已诊断的弱点重塑环境本身。相关工作还提到一种围绕冻结模型重写并测试的 agent harness(Lee et al., 2026b)。
7. 结论 … C.1. ActionableEnv:可交互环境接口
EnvHarness 通过标准接口将静态基准转换为可控、可组合的环境,同时保留其经过信任验证的底层逻辑与验证器。其 ActionableEnv 契约跨异构运行时提供经验证的交互、安全的状态视图、持久化以及可选的生命周期能力。
- 7. 结论: EnvHarness 通过 Stage、Contract 和 Chain 组件封装冻结的基准,在不修改内部代码的情况下重塑任务技能、时域或难度。单一实现即可跨领域运行,同时保持原任务不变。
- A. EnvRigger 提示词: EnvRigger 生成可转换动作、转移或观测的规则钩子,并生成在环境中回放的动作以准备初始状态。这些调节手段既可独立使用,也可组合使用,而基准自身的判定仍是成功指标。
- A. EnvRigger 提示词: EnvRigger 使用 rollout 统计评估候选方案;当变异类型使成功率朝目标区间移动时,便细化扰动幅度。提示词会避免生成无法求解的变异,并要求在 rollout 表明任务不可能完成时撤销或放宽限制。
- B. 与相关协同进化和合成框架的区别: 不同于 GenEnv(Guo et al., 2025),EnvHarness 保留原生转移与可信验证器;不同于 EnvGen(Zala et al., 2024),它避免针对基准修改模拟器;不同于 Agent-World(Dong et al., 2026),它重新利用现有环境,而不是从头合成环境。这些替代方案分别被认为可能导致评估偏移、需要深入的领域特定工程,或带来高昂的工程开销与逻辑错误。
- C. 接口协议与设计模式: 其核心承诺是接口统一性:无论环境是否经过封装,策略与组件层都针对同一种抽象类型进行编程。Figure 7 展示了异构 Bridges、EnvHarness 装饰器,以及 Bridge 之上的有序组件栈。
- C.1. ActionableEnv:可交互环境接口: ActionableEnv 为 Gymnasium 风格交互统一规定 reset(seed, options)、step(action) 以及类型明确且经过验证的 EnvResponse 数据。动作包含工具名称与可 JSON 序列化的关键字参数,而响应则封装 Gymnasium 的 5 元组。
- C.1. ActionableEnv:可交互环境接口: get_env_state() 仅向组件钩子公开普通且运行时安全的数据,使同一钩子能够跨内存、容器化和浏览器支持的环境运行。钩子无法访问 Docker 句柄、浏览器页面、套接字或其他底层运行时对象。
- C.1. ActionableEnv:可交互环境接口: ActionableEnv 通过 save_state() 和 from_state(dict) 让持久化由环境负责,并提供可选的稠密奖励、回放回调、任务枚举和资源清理功能。当容器、浏览器或游戏引擎等运行时无法低成本克隆时,持久化可以序列化完整的实时状态,也可以只序列化重置参数。
C.2. Bridges:适配异构基准 · C.3. EnvHarness:作为可组合装饰器的组件
EnvHarness 通过共享的 Bridges 统一异构基准,同时保留运行时特定的执行方式;随后利用可组合的装饰器组件重塑各个环境。Setups、Rules 和 Link 分别支持可达状态初始化、逐步变换和长程组合。
- C.2. Bridges:适配异构基准: 七个 Bridges 适配四类运行时,同时在不同环境之间原样共享 policy loop、orchestrator 和 component code。已实现的运行时包括 Toy24、通过 TextWorld 接入的 ALFWorld,以及用于 SWE-bench、OfficeQA 和 spreadsheetBench 的按实例 Docker 环境。
- C.2. Bridges:适配异构基准: Bridges 提供带类型的 action tools,用于生成通用 schema,并可根据运行时需求选择通过 registry 分发。Toy24 通过 registry 分发;ALFWorld、SWE-bench 和 WebArena 则直接驱动无法通过仅含数据的状态视图传递的 engine handles。
- C.2. Bridges:适配异构基准: Bridges 选择持久化粒度并发布 env_state_schema(),告知生成的 component code 可以读取哪些暴露字段。Toy24 使用完整快照,而较重的运行时仅持久化 reset arguments;该 schema 会注入 designer agent 的 prompt。
- C.3. EnvHarness:作为可组合装饰器的组件: 每个环境都包含一个有序的 EnvHarness decorator stack,其默认委托机制允许组件只重载它们修改的接口。EnvHarness 既是组件的抽象基类,也是包装另一个 ActionableEnv 的 ActionableEnv。
- C.3. EnvHarness:作为可组合装饰器的组件: 组件状态采用分层结构,checkpoint 会保留环境及有序的组件列表,loader 再由外向内重建该列表。随附的组件类型包括 Setups、Rules 和 Link。
- C.3. EnvHarness:作为可组合装饰器的组件: Setups 通过重置内部环境,并经由其常规 step 接口重放 action list,创建可达的初始状态。重放后的 observation 成为该 episode 的初始 observation,无需特权访问环境内部结构。
- C.3. EnvHarness:作为可组合装饰器的组件: Rules 插入纯 hooks,可重写 actions、transitions 和 observations;生成的 Python source 会重新编译,并在每个 episode 的 subprocess 中执行。Hooks 可以阻止或重写 actions,变换 EnvResponses,并修改包括 reset observation 在内的 observations;默认行为为恒等映射。
- C.3. EnvHarness:作为可组合装饰器的组件: Link 通过逐步 handoff hook 将两个 ActionableEnvs 组合进一个 episode,支持串行拼接、按结果条件分支和任务中途切换。本文始终使用串行组合;但一般机制也可以让 agent 留在当前子环境中,或将其转至另一个子环境。
D. Chain(Link)算子的具体实现示例 · E. 实验细节
Link 算子通过在每一步之后拦截状态转移,并选择继续使用当前环境还是切换环境,实现可编程的环境组合。示例涵盖顺序交接、基于结果的分支、任务中途切换和持续交错。
- D. Chain(Link)算子的具体实现示例: Link 重写 modify_transition,以检查每次执行步骤后的状态转移,并保留当前环境或通过 self.switch_to() 切换环境。该钩子为所有组合模式提供通用机制。
- D. Chain(Link)算子的具体实现示例: 当 EnvA 终止时,顺序拼接会自动将控制权交给 EnvB,无需自定义状态转移逻辑。默认配置采用基于终止的交接。
- D. Chain(Link)算子的具体实现示例: 当第一个任务结束时,基于结果的分支会在成功后将 agent 路由至 AdvancedEnv,在失败后路由至 RemedialEnv。目标环境由已完成任务是否成功决定。
- D. Chain(Link)算子的具体实现示例: 自定义 Link 子类通过重写 modify_transition 实现专门的路由,同时保留共享的状态转移拦截模式。示例包括 BranchOnOutcome 和 SwitchOnAction 实现。
- D. Chain(Link)算子的具体实现示例: 由 Harness 控制的状态转移可在指定条件满足后立即切换环境,使任务无需等到终止即可在执行过程中切换。检测到特定 action 后,可立即切换至 AdvancedEnv。
- D. Chain(Link)算子的具体实现示例: 由于每次交互后都会检查状态转移,Link 可以在执行期间持续让 agent 在两个环境之间交替。示例中每一步都会在 RedEnv 和 BlueEnv 之间切换。
E.1. 基准划分 … F.3. 链式环境中的技能
附录规定了基准划分、基线与 EnvRigger 协议、强化学习设置,以及 EnvHarness 在普通环境和链式环境中共同演化策略时提取的技能。这些分析显示,技能日益呈现局部化、由约束驱动的特征,并能适应链式环境中的共享预算与任务交接。
- E.1. 基准划分: 训练使用重塑后的语料任务,而评估仅使用原始、未重塑的任务;SpreadsheetBench 和 ALFWorld 分别采用基准特定的划分定义。Table 7 列出了训练集和评估集划分;ALFWorld In-Dist 和 OOD 是其原生的已见与未见划分,而非新构造的划分。
- E.2. 基线细节: GenEnv、VeriEnv 和 SWE-smith 使用 EnvHarness 的种子任务、模型和环境数量运行,以进行受控的基线比较。这些基线分别生成难度校准的任务、带程序化奖励的可执行网站克隆,以及仓库级实例。
- E.3. EnvRigger 超参数: EnvRigger 观察五次基线 rollout,提出无约束的组件集合,在五次全新的 rollout 上验证每个候选方案,并对每个实例最多重复五次编写—验证流程。接受判定综合成功率、失败分布和超时次数,而不是依赖单条轨迹;含糊的候选方案会在附带验证轨迹的情况下返回编写阶段。
- F. 分析细节: 补充分析提供了协议、完整结果、额外实验,以及支撑论文 Section 5 分析的代表性技能。强化学习实验在 ALFWorld 和 Webshop 上使用集成 EnvHarness 的环境,以 GRPO 训练 Qwen3-8B-base。
- F.1. 强化学习实验细节: RL 使用带有 50 步历史和回合限制的 EnvHarness 环境,在单个 8× NVIDIA H100 节点上训练,并采用显存与参数分片优化。配置包括 vLLM rollout 生成、TP=1、0.5 GPU-memory utilization、eager execution、FSDP、offloading 和 gradient checkpointing。
- F.2. 跨共同演化轮次的技能: 各轮次的代表性技能包括快速失败或定向执行 pytest、基于补丁的编辑、程序化调用 pytest、使用绝对解释器路径,以及基于 grep 的实现追踪。每项技能都对应一个已接受的组件,该组件约束相应的操作范围,并将学到的变通方法保留为逃生通道。
- F.3. 链式环境中的技能: 链式环境促使模型学会将连接起来的任务视为共享步数预算,并在任务交接后通过检查新仓库的环境和工具立即重新定位。示例展示了如何为第二个任务保留步数,以及在仓库之间切换时检查 conda env list 和 which python 等命令。
F.4. 跨模型结果
跨模型评估在统一协议下报告四个策略模型的成功率和平均回合长度,揭示出不同的效率区间。与原始环境技能相比,EnvHarness 新增的成功通常发生在相当或更短的执行预算内。
- 模型特定的效率区间: Qwen3.6 27B 在无技能时平均需要 69.8 steps,而使用技能时为 37.1 steps;通过用已知流程替代无方向的试错,执行长度几乎减半。Table 9 报告了四个策略模型在相同协议下的成功率和平均回合长度。
- 跨模型的效率: 多用 3.7 steps 换来多 3.7 个百分点,是 EnvHarness 比原始环境技能使用更多 steps 的唯一情况;其他模型都在基本相同的预算内取得了增益。Flash-Lite 和 Sonnet 的技能来源回合长度相差不到 one step,而在 Flash 上,EnvHarness 短了 over five steps。
- 解读: 平均回合长度本身并不是质量信号:较短的回合既可能反映高效解法,也可能源于过早失败。相关段落对比了体现高效的短回合,以及不能说明质量的短回合。
G. 补充分析
补充分析表明,EnvHarness 能够跨 ALFWorld 任务类型迁移技能,其 grounded compute 与 VeriEnv 相当,并可通过环境重塑针对客观行为指标。指定的弱点也能转化为针对性组件,并在多样任务中蒸馏技能。
- 可泛化技能: 平均提升 3.1 points:在六种留出 ALFWorld 任务类型中的四种上,EnvHarness 技能优于原环境技能;其中 clean 提升 16.4 points,而 heat 回退 8.7 points。leave-one-out 评估在不暴露留出任务类型的情况下提取技能;结果见 Table 10。
- 实际计算开销: 总 tokens 为 137.3M vs. 137.8M:EnvHarness 与 VeriEnv 的 grounded compute 开销基本相同,但 EnvHarness 会使用更多 design tokens,从完整轨迹中诊断弱点。在 ALFWorld 上,EnvHarness 使用 1.46M design tokens,而 single-pass baselines 使用 38K;但两者的预算都主要由 rollouts 构成。
- 客观指标 targeting: 使用区间为 [0.4, 0.6] 的 success rate 和区间为 [25, 35] 的 successful-episode steps,对 100 个 ALFWorld 任务进行 objective targeting 评估;每个任务均通过 K=10 rollouts 测量。Table 12 报告了重塑前后落入各目标区间的任务百分比。
- 针对指定弱点进行教学: EnvHarness 将指定弱点转化为致命任务条件,然后从在重塑环境中收集的轨迹中蒸馏技能。Table 13 总结了九种弱点、生成的组件及最终蒸馏出的技能。
- 针对指定弱点进行教学: 所展示的组件应对了包括对象不可访问、容器搜索低效、遗忘子目标、视口中的隐藏内容、手动分页、导航错误以及上下文不足的代码编辑在内的失败。示例包括交互前状态验证、语义化容器优先级排序、任务状态验证、逐步扩展视口、基于查询的过滤、搜索优先导航,以及具备上下文感知的代码修改。
H. 局限性
EnvHarness 存在三项局限:其迭代式设计循环可能需要大量时间和推理计算,依赖可重置的 gym 风格环境,且其 Chain 仅支持顺序子任务组合。这些限制使其难以应用于不可重置的后端,以及需要语义关系、分支或共享中间状态的工作流。
- 设计循环的成本: 迭代式设计循环可能消耗大量时间和推理计算,因为每个提出的 harness 都需要进行环境 rollout,而能力较弱的设计器可能需要更多迭代。这一成本在每个环境上只需支付一次,而不是每个训练回合都支付。
- 可重置 gym 风格接口的要求: EnvHarness 要求提供 reset/step 接口,因此不支持由实时服务或其他不可重置服务提供支持的环境。Stages 必须设置选定的初始状态,而 Chains 必须在子任务之间恢复已知状态。
- Chain 中纯顺序式组合: Chain 仅通过顺序拼接来组合子任务,不支持语义兼容性、分支工作流或共享中间状态。若要加入语义组合,就需要兼容性度量和验证器。
I. 未来方向
未来工作将通过引入新的环境组件、拓展至纯文本以外的场景,并以更丰富的控制流取代 Chain 纯粹的串行组合来扩展 EnvHarness,同时尽可能保留可信验证。
- 新的 harness 组件: 未来组件可以在保留 reset/step 接口的同时,引入随机性、部分可观测性、辅助反馈通道或多智能体交互。Stage、Contract 和 Chain 只是初始组件集合,并非封闭集合。
- 超越纯文本环境: 将 EnvHarness 扩展至视觉、GUI 驱动或具身环境,可以检验其封装抽象能否适应非符号观测,并需要超越文本的状态规范与验证。当前系统处理文本动作和观测。
- Chain 中纯粹的串行组合: Chain 的串行拼接通过合取子任务判定支持组合验证,但限制了在子环境之间路由时所需的更丰富控制流。每一段独立终止并贡献一个判定,使重塑后的任务能够继承可信的人工作建验证。