1. 首页
  2. 精选文章
  3. 自进化也能“左脚踩右脚”?Google提出 EnvHarness:环境自进化,倒逼 Agent 疯狂进化!

自进化也能“左脚踩右脚”?Google提出 EnvHarness:环境自进化,倒逼 Agent 疯狂进化!

  • 发布于 2026-08-21
  • ·
  • 9 次阅读
  • ·
  • ·

Agent绝大部分时候都运行在环境当中,那么在agent进化的过程中,有没有办法让环境也进化呢。

论文:EnvHarness: Awakening Static Worlds for Agent Learning
链接:https://arxiv.org/abs/2608.19880
主页:https://www.envharness.com
代码:https://github.com/google-research/envharness

智能体(Agent)本质上是一个不断与环境(Environment)进行交互的主体:感知反馈、做出决策、影响环境。在自进化 Agent 的主流范式中,往往高度依赖 Agent 在环境中的单向探索来拉升性能。

那么问题来了:在这个闭环中,有没有可能让环境也随之进化起来,与 Agent 互相博弈,达成“左脚踩右脚”上天的效果?

环境脚手架(EnvHarness)

然而理想很丰满现实很骨感,现在的环境大都是底层写死的‘黑盒’,想对它进行丝毫的动态改动都无从下手。例如底层的docker/webpage的修改都可能导致各种各样的问题。

但我们并不是第一次遇到这个问题,我们在构建agent的时候我们发现LLM也是没有办法操作,修改的。为此我们提出了智能体脚手架,来给LLM提供例如技能,记忆等来帮助他应付更加复杂的问题,我们有没有办法借鉴这个思路给环境也加上脚手架呢。

文章提出了Envharness(环境脚手架)来在不涉及环境底层内容的情况下来操控环境,类似于智能体脚手架有不同的组件,环境脚手架也通过不同的组件来完成各个程度上对环境的微调,

  • 🎯 ​开局(Stage):直接改变 Agent 进入环境时的起点和初始障碍。它通过在环境重置后隐蔽地执行一系列预设动作,来重塑智能体面对的初始状态。通过“开局”,你可以给 Agent 针对性地制造麻烦(例如隐藏目标物品来逼迫它学习搜索技能),或者帮它提前完成早期目标以缩短任务流程。
  • ⚖️ ​法则 (Contract):接管环境底层逻辑(过渡动态和观察空间)的最高权限。它能够拦截并彻底重写智能体与环境之间的交互规则:不管是限制 Agent 的可用动作空间、改变环境的物理状态过渡,还是过滤或篡改最终返回给 Agent 的观察视角,统统由它说了算。
  • 🔗 ​串联 (Chain):精准的工程拼接,打破单一任务的边界。它利用特定的组合逻辑,将多个原本独立的静态环境首尾相连,或者根据中间结果进行动态分支切换。这让原本短视的环境跨度瞬间拉长,迫使 Agent 学会在更复杂的长线挑战中保持目标不丢失。

环境搭建师(EnvRigger)

和智能体脚手架中 skill 里面有具体的内容一样,Envharness 的组件里都有具体的内容,例如开局执行具体什么行为,因为文章引入了另一个 agent ——“环境搭建师(EnvRigger)”来完成这件事情。

参考自进化智能体当中 agent 浏览轨迹提升自己的做法,环境搭建师也通过阅读 agent 的轨迹来搭建脚手架。

为了实现这种完全自动化的“对症下药”,环境搭建师(EnvRigger)设计了一个严密的四步闭环:

👀 第一步:观察 (Observe) —— ​像考官一样暗中观察

EnvRigger 首先会让目标 Agent 在当前环境中跑上一批任务,收集完整的交互轨迹。

它不仅看 Agent 失败的录像,也看成功的录像,以此来精确摸清 Agent 的能力边界到底在哪。

🩺 第二步:诊断 (Diagnose) —— ​抓出痛点,出具“体检报告”

拿到轨迹后,EnvRigger会像医生一样分析深层原因:Agent 是不是陷入了死循环?是不是没看懂长文本?还是在利用某种脆弱的“作弊捷径”?

如果 Agent 表现太好,诊断的方向就是“如何封死它的捷径”;如果 Agent 频频翻车,方向则是“如何给它搭个台阶”。最终,它会输出一份结构化的诊断报告。

✍️ 第三步:编写 (Write) —— ​对症下药,生成脚手架

拿着诊断报告,EnvRigger 开始写代码了!它会针对找出的缺陷,合成一个或多个具体的EnvHarness 组件。

比如,如果发现 Agent 老是钻某个漏洞,它就会编写一个“法则 (Contract)”组件,在特定条件下直接拦截掉这个动作,逼着 Agent 去探索真正的解法。

第四步:验证(Validate) —— ​实战检验,不行就重做

写出来的脚手架管不管用?不能靠猜。EnvRigger 会把刚写好的组件套在环境上,让Agent 进到这个“新关卡”里再跑一次。

完全基于这些全新的实战轨迹来评判组件是否合格:这个新环境是不是成功逼出了 Agent 的新技能?关卡是不是依然有解(没有被改成死局)?如果没达到效果,就打回“第三步”反复修改,直到验证通过,才会正式把这段脚手架焊在环境上。

通过这四步,环境就不再是一成不变的死水,而是一个会随着 Agent 的表现不断自迭代、动态施压的顶级陪练

实验结果

那么,这套“左脚踩右脚”的机制,如果拉长时间线,究竟能让 Agent飞多高?

在长线实验中,研究团队特意测试了大家最关心的 "Scaling"能力。事实证明,如果只是单纯给 Agent 喂更多的静态环境或普通的生成环境,Agent 的能力很快就会触及天花板,曲线直接被“焊死”。

但有了 EnvRigger 的加持,奇迹出现了:在极具挑战的 SWE-bench Verified基准上,随着定制环境数量的增加,EnvHarness 让环境与 Agent 实现了真正的​ 螺旋式协同进化(Co-evolution) ​!

在不断循环的迭代中,环境就像一个越来越苛刻的顶级陪练。

  • 第一轮,它专治 Agent 的“基础调用错误”;
  • 等 Agent 变强了,第二轮它就开始模拟资源枯竭,逼 Agent 学会“防超时与死锁”;
  • 到了第三轮,它更是封死普通修改路径,逼着Agent 去深挖底层代码逻辑。

在这种“遇强则强”的持续打磨下,Agent 的成功率从最初的 47.67% 一路狂飙至54.79%(足足涨了 7.12 分)!更震撼的是,即使环境数量叠加到了300 个,​它的性能增长曲线依然保持着强劲的上升势头,丝毫没有停滞的迹象​!这彻底证明了:针对Agent 当前状态的“精准喂招”,远比毫无目的地疯狂刷题有效得多。

未来工作

文章最后提到三个未来的方向

​1、扩展组件库 (New harness components):在现有的基础组件之外,开发能够引入随机性或部分可观测性、提供辅助反馈通道,以及支持多智能体在共享环境中交互的新型组件。

2、拓展至非文本环境 (Beyond text-only environments):将当前基于文本动作与观察的接口,延伸至视觉、GUI 驱动或具身智能环境,探索在非符号化状态下的环境封装抽象与状态验证机制。

3、探索语义化组合 (Semantic composition in Chain):打破当前 Chain 组件单纯的顺序拼接模式,构建基于子任务语义关系的组合逻辑,以支持具有真实依赖关系、动态分支和共享中间状态的长视距任务,并为其设计专属的复合验证器。

目录