AEnvironment:Agent 需要一个统一的环境层吗?
这个系列从基础设施建设开始,经过认知架构、上下文工程、MCP、Skills,一路讨论到 RL Agent 与 LLM Agent 的范式转移。回头看,每一篇其实都在从不同角度回答同一个问题:Agent 如何与外部世界交互。
MCP 回答了协议互通,Skills 回答了能力封装,认知架构回答了决策循环。但还有一个问题一直悬着没有被正式讨论:Agent 运行的那个”外部世界”本身,是否需要一个统一的抽象?
这不是一个假想的问题。在 RL Agent 那篇里我们讨论过,纯 RL 在开放世界撞墙的根因之一就是环境太复杂、奖励太稀疏、状态转移不可控。LLM Agent 继承了更强的先验知识,但并没有从根本上解决环境接口碎片化的问题——浏览器是一套、终端是一套、benchmark 又是一套,训练和部署更是完全割裂。
最近注意到一个项目正在尝试回答这个问题:AEnvironment。它的核心主张是 Everything as Environment。
这篇文章不是一篇项目推广。我想做的是:借 AEnvironment 这个具体案例,辩证地讨论统一环境层这个方向本身——它是否踩中了真实痛点,以及它是否真的做得到。
AEnvironment 是什么:一分钟说清楚
先把最基本的事实摆出来。
AEnvironment 是蚂蚁集团(Ant Group)旗下 inclusionAI 开源组织的项目。它的核心主张很直接:从简单工具函数到复杂多智能体系统,都可以被统一抽象成 environment。
理解 AEnvironment,最好把它放进我们熟悉的四层架构里:
| 层 | 解决什么 | 典型实现 |
|---|---|---|
| 模型层 | 生成下一步动作 | GPT / Claude / Qwen |
| 编排层 | 何时思考、何时调用工具 | Agents SDK / LangChain |
| 环境层 | 动作如何作用于世界,并返回观测 | Browser / Terminal / Sandbox / Benchmark |
| 训练评测层 | 如何复现实验、批量 rollout | eval harness / benchmark runner |
过去大量精力集中在前两层。AEnvironment 切入的是第三层,并且试图把第四层也拉进来——让训练、评测、部署共享同一套环境边界。
但 AEnvironment 不是孤立的项目。它和 AReaL(完全异步的 RL 训练系统,相比同步方案最高 2.77 倍加速)以及 AWorld(Agent 运行时框架,在 GAIA 基准排名第3)构成了蚂蚁的”训练-环境-运行”三件套。这个生态背景对理解 AEnvironment 的定位至关重要——它不只是一个通用环境抽象,更是蚂蚁 Agentic RL 闭环中的关键拼图。
当前状态:仍处于 0.1.x 早期阶段,更适合从方向感去理解,而不是学习具体 API。
为什么这个方向值得认真对待
Agent 任务正在从”调工具”走向”进入环境”
在 Skills 那篇里,我们讨论过一个关键判断:很多重要能力不是函数,而是套路。 “写一份分析报告”“在浏览器里完成多步操作”“在终端里调试代码”,这些任务不是一次 input -> tool call -> output 能描述的。它们有状态演化,有连续交互,有轨迹依赖。
Tool calling 的默认假设是世界可以被压缩成一组函数。这在很多业务自动化里完全成立,但在浏览器任务、终端任务、benchmark 任务这类场景下,这个假设开始松动:
- 当前状态影响下一步动作;
- 一次动作改变后续可见状态;
- 成功与否取决于完整轨迹,而非单个工具返回值。
这些特征天然属于 environment 语义,而非 tool schema 语义。
如果回到 RL Agent 的经典范式,这其实不难理解。RL 的核心循环就是 observation -> action -> reward -> next observation。这个循环天然要求一个有状态的、可持续交互的环境。LLM Agent 虽然把动作空间从连续向量变成了自然语言,但只要任务足够复杂,它面对的交互结构和 RL 是同构的。
AEnvironment 的切入点正是把工具从最终抽象降级成能力原子,再把更高一级的任务世界提升为统一 Environment。README 里有一个特别值得注意的概念:Agent as Environment——可以把 Agent 本身当成 environment 来做多智能体编排。这不只是工程便利,它暗示了一种更彻底的世界观:agent 和 environment 的边界本来就不是固定的。
随着Agent本身以及Agentic RL变成大家研究的重点,环境层的统一一定是需要考虑问题。目前的模式局限于大家的基础模型上开发,在固定Benchmark测试,利用一些Evaluation策略与reward改进模型,然后提供给大家一个API,Agent的开发者就可以自己去玩了。至于这个模型有没有在你所需的项目上经过强化,是否适配你的工作环境,自己测试去吧(顺便维护一套内部的Benchmark)。
训练、评测、部署的割裂是真实痛点
在 RL Agent 那篇里我们讨论过 The Second Half 的核心洞察:当模型已经具备泛化能力后,真正的瓶颈转向了 Evaluation。 而今天的现实是:benchmark 一套代码、线上部署另一套代码、RL 训练又要自己搭环境。同一个 Agent 在 SWE-bench 上跑的环境和在生产中跑的环境完全割裂,导致评测成绩难以迁移到真实任务。
AEnvironment 当前内置支持 TAU2-Bench、SWE-Bench、Terminal-Bench,并试图让 benchmark 不再是外部,而是环境层的一种形态。这个思路本身是有说服力的——如果 benchmark 和运行时共享同一套 Environment interface,训练-评测-部署的割裂就有可能被缩短。
从 benchmark 领域的演进也能看出这个趋势。SWE-bench 是典型的 “execution harness + evaluator”;Terminal-Bench 更像 “terminal sandbox + task registry + harness”;而 BrowserGym 已经非常接近统一环境抽象——它用 gym.make()、env.reset()、env.step(action) 统一了 WebArena、MiniWoB 等多个 web benchmark。benchmark 世界本身已经在慢慢环境化,AEnvironment 不过是在这条路上更往前走了一步。
MCP 解决了协议互通,但没有解决环境语义
在 MCP 那篇里我们详细讨论过:MCP 定义的是 host/client/server 之间的通信标准,它关注能力发现、协议互通、传输层。但 MCP 不直接回答这些问题:
- 环境状态如何演化;
- reward 如何定义;
- 轨迹如何记录;
- rollout 如何批量化。
AEnvironment 和 MCP 不是竞争关系,而是分层关系。用一个不太精确但好理解的比方:MCP 解决的是接口标准,AEnvironment 想解决的是整套设备怎样接进工作流。 事实上,AEnvironment 的 README 明确写到它是”通过扩展标准化 MCP 协议”来提供环境基础设施的——它不反 MCP,反而需要 MCP。
奖励设计是经验时代的核心瓶颈——环境的更深层价值
前面三个论点分别从任务形态、训练评测割裂和协议局限的角度解释了为什么需要统一环境层。但还有一个更根本的原因:环境的质量决定了奖励信号的质量,而奖励信号的质量决定了 agent 能学到什么。
Silver 和 Sutton 在 Welcome to the Era of Experience 中指出,AI 研究的核心问题正在从”如何从人类数据中学更多”迁移到”如何让 agent 在世界中行动并从后果中学习”。如果把这种迁移对应到具体的技术问题,最关键的瓶颈就是奖励设计(reward design):
- 如果没有好的奖励信号,agent 自己生产的经验就没有方向,再多采样也学不到正确的东西
- 如果没有好的奖励信号,credit assignment 就无从分配——不知道什么是成功,怎么知道哪一步导致了成功?
- 如果没有好的奖励信号,安全约束也很难落地——无法量化什么行为是危险的
- 如果没有好的奖励信号,评测就只能退回人工评估——可那正是经验时代想超越的东西
AlphaProof 和 AlphaEvolve 之所以成功,恰恰是因为它们有近乎完美的验证器——Lean 证明系统、自动化测试套件。在这些领域,奖励信号是清晰的、即时的、可规模化的。AlphaProof 在 2024 年 IMO 上拿到银牌水平,核心不在于 RL 有多强,而在于一旦高质量环境反馈存在,经验学习就可能迅速超越纯人类数据路线。
但一旦换成开放世界的任务,问题立刻爆炸:一个网页操作任务算成功的标准是什么?一个科研 agent 的实验计划怎样量化”有价值”?越接近现实世界,奖励越稀疏、越滞后、越多目标冲突。 Bo Wen 在 The Missing Reward 中指出了当代 AI 系统无法自主制定和追求目标的”代理差距”。AlignmentForum 上的安全分析则警告:随着 agent 能力增强,reward hacking 和规范博弈的问题会变得更严重——一个足够强的 agent 可能学会”看起来在优化你给的奖励,实际上在优化别的东西”。
这正是统一环境层的更深层价值所在:如果 benchmark 和运行时共享同一套 Environment interface,那么奖励信号的定义、验证和迭代就可以在统一的框架下进行,而不是每个场景各搭一套。环境层不只是 agent 的运行容器,更是奖励信号的生产车间——环境设计得越好,reward 就越清晰,agent 的学习就越有方向。
案例:NitroGen——当游戏世界真的被统一成 Environment
上面讨论的都是方向和理念。有没有人真的在某个领域把”环境统一”做到了?有一个刚好合适的案例:NitroGen,NVIDIA Research / MineDojo 团队在 2026 年初公开的研究项目。它同时放出了论文、GitHub 仓库、模型权重与数据集,构成了一个完整的开放研究栈——而它要解决的核心问题,恰好就是游戏领域的环境统一。
统一环境:从商业游戏到 Gymnasium API
商业游戏通常没有标准化的研究接口。过去的做法要么选很老的模拟环境,要么为每个游戏做专属适配,要么退回结构化脚本接口。NitroGen 走了一条更激进的路:用一个通用封装,通过拦截游戏引擎系统时钟的方式,把 Dark Souls III、Sekiro、Black Myth: Wukong、Elden Ring 等商业游戏统一包装成 Gymnasium API——不改游戏源码,按帧交互。
更关键的是动作空间的统一。NitroGen 没有为每个游戏定义一套动作,而是把超过 1000 个游戏强行压进同一个 gamepad action space:16 维二值按钮向量(d-pad、face button、肩键、扳机等)加上 4 维连续摇杆向量,观测则统一为 RGB 帧。丢掉了游戏特异性,但换来了跨游戏迁移、共享预训练、统一 benchmark 的可能。最终他们在 10 个商业游戏、30 个任务上建立了评测基准。
这正是 “Everything as Environment” 在游戏领域的一次具体实践:当训练和评测共享同一套环境接口时,”跨游戏基础模型”才从口号变成可操作对象。
游戏领域的 VLA 尝试
有了统一的环境层,NitroGen 在上面构建了一个 vision-action foundation model——从像素输入直接预测控制器动作。它的架构脱胎于 NVIDIA 的机器人基础模型 GR00T N1,用 SigLIP 2 视觉编码器提取图像表征,再用 Diffusion Transformer 一次生成 16 步动作块。本质上,这和近两年机器人领域的 VLA(Vision-Language-Action)模型是同一条技术路线,只不过去掉了语言输入,专注于视觉到动作的映射。
训练数据的来源是整个方案中最巧妙的部分。互联网上存在一类特殊的游戏视频:画面角落带有 controller overlay,观众能实时看到玩家按了哪个键、摇杆往哪个方向推。NitroGen 从 71,000 小时这类公开视频中,通过模板匹配定位 overlay、训练分割模型解析动作状态、再做质量过滤,最终构造出覆盖 1000+ 游戏的大规模视频-动作训练数据。不需要昂贵的人工演示采集,这让互联网规模的行为克隆预训练成为可能。
但它有一个非常重要的自我定位:NitroGen 是 system-1 的快反射策略先验,不是长程规划器。 它只看当前一帧就预测未来动作——看见 boss 起手式怎么闪避、看见平台边缘怎么跳。它不理解语言指令,不做长期规划,不具备自我改进能力。用作者自己的话说,这是”先学身体,再学大脑”。
环境统一之后,解锁了什么
NitroGen 的实验给出了一个有说服力的结论:统一环境接口后,跨游戏动作先验的预训练是可行的。 在 held-out 未见游戏上做 post-training,预训练初始化相对从零训练最高带来约 52% 的相对提升,其中 combat 和 navigation 类通用技能受益最大,而游戏特异性任务几乎没有收益。这说明模型学到的主要是可迁移的动作先验,而非特定游戏的独有机制。
但它也暴露了环境统一的边界:当前数据和接口偏向 gamepad 控制的动作游戏,键鼠主导的 PC 游戏、强策略调度类游戏覆盖有限;能力也只停留在 system-1 层面,离”完整通用游戏智能体”还有很长距离。NitroGen 只统一了 gamepad 游戏这一个子集,已经需要构建相当复杂的数据管线和模拟器封装——环境统一不是目的,而是手段,它的价值取决于统一之后能解锁什么样的上层能力。
但是,统一环境层真的做得到吗?
方向正确不等于路走得通。以下是我认为需要严肃面对的问题。
统一抽象的历史教训:越通用越难落地
在这个系列的第一篇里,我们讨论过 Agent 基础设施的漏洞抽象风险:传统基建是确定性的,输入 A 必然得到 B;但基于大模型的基建本质上是概率性的。当你试图把浏览器、终端、代码沙箱、移动端、benchmark 全部统一到一个 Environment interface 下,面临的不只是接口层面的差异,而是语义层面的差异。
BrowserGym 只做了 web 一个领域的环境统一(WebArena、MiniWoB、WorkArena),已经够复杂了。NitroGen 只统一了 gamepad 游戏这一个子集,也需要构建从视频数据管线到模拟器封装的完整工程栈。AEnvironment 想做全部——这个野心让人尊敬,但也让人担心。历史上,试图统一一切的抽象层往往要么变得过于臃肿,要么在真正困难的场景下退化为最小公倍数的妥协。
生态绑定的隐忧
AEnvironment + AReaL + AWorld 三件套指向的是蚂蚁自己的 Agentic RL 闭环。对蚂蚁内部来说,这个定位非常清晰。但对外部开发者呢?
如果你不用 AReaL 做训练,AEnvironment 的”训练-评测-部署统一”价值就打了折扣。如果你不用 AWorld 做运行时,它的很多集成优势也用不上。这时候 AEnvironment 退化为一个环境适配器——而市面上并不缺环境适配器。
在 Skills 那篇里我们观察到一个规律:开发者会自然地回到更轻、更少约束的方案。 MCP 已经够完整了,但开发者还是选了更轻的 Skills。那么一个比 MCP 更重的环境层框架,外部开发者有多大意愿去采用?
这里有一个微妙的区分:AEnvironment 的目标用户可能主要不是应用开发者,而是 RL 研究者和 benchmark 维护者。对前者来说更轻是核心诉求;对后者来说更统一才是核心诉求。如果 AEnvironment 能找准自己的用户画像,这个矛盾也许可以缓解。但目前的 README 给人的印象是它想同时服务所有人——这往往是危险的。
0.1.x 阶段的现实
截至目前,AEnvironment 仍处于非常早期的阶段:
- 没有一篇系统论证的论文(AReaL 有 arXiv 论文,AWorld 也有,但 AEnvironment 本身还没有);
- 没有大规模的外部采用案例;
- 接口可能继续变化,文档仍在完善中。
更重要的是,这个生态位并非没有竞争者。Gymnasium(OpenAI Gym 的继任者)已经是 RL 环境的事实标准;MCP 本身也在持续扩展能力边界。如果 MCP 未来增加了状态管理和 rollout 支持,或者 Gymnasium 向 LLM Agent 场景做适配,AEnvironment 当前的差异化优势可能会被蚕食。
环境层标准化 vs Agent 自由度的张力
在认知架构那篇里,我们讨论过智能体工程设计的核心矛盾:涌现性(Emergence)与鲁棒性(Robustness)的博弈。 统一环境接口本质上是在增加确定性——这是好事,但它同时也在约束 Agent 与世界交互的自由度。
同样是在那篇里,我们得出过一个判断:新框架应该是极简的、高度自由的底层设施,而不是高层封装。 AEnvironment 是否足够极简?当它试图把 benchmark、RL training、agent deployment、多智能体编排全部收进一个 Environment interface 时,它还能保持底层设施的轻量感吗?
这不是在否定它,而是在指出一个真实的张力:环境层越统一,对上层 Agent 的约束就越强。 如何在统一性和灵活性之间取得平衡,是 AEnvironment 必须持续回答的问题。
从认知架构的视角看,CoALA 把外部环境定义为物理环境、数字环境、与人类的交互、与其他智能体的交互四种形态。这四种形态的交互语义差异巨大。一个统一的 Environment interface 能在不丢失语义的前提下覆盖它们吗?还是说,它最终只能覆盖其中某几种,而把真正困难的场景留给领域专用的方案?这是一个开放问题,而 AEnvironment 目前的 0.1.x 阶段还不足以给出令人信服的回答。
结语
方向是对的
从 RL Agent 到 LLM Agent 的范式转移中,环境始终是核心要素。纯 RL 在开放世界撞墙的教训告诉我们,Agent 能力的上限不只取决于模型有多强,也取决于环境接口有多好。环境层统一很可能是 Agent 基础设施的下一个重要战场。 “Everything as Environment” 这个哲学本身是有洞察力的——它不是在发明一个新概念,而是在命名一个已经存在但还没被认真对待的层次。
项目还需要证明自己
作为蚂蚁内部 Agentic RL 训练闭环的配套,AEnvironment 的定位是清晰的、有价值的。但作为通用的 Agent 环境基础设施,它还没有足够的外部验证——没有独立论文、没有大规模外部采用、没有足够长的生产验证。
它最大的价值,可能不是代码本身,而是它代表的抽象方向。 就像 BrowserGym 在 web 领域率先示范了环境化的正确性,NitroGen 在游戏领域证明了环境统一后可以解锁跨域预训练的能力,AEnvironment 在更广的范围内提出了同样的命题。至于这个命题最终由谁来实现——是 AEnvironment 自己,还是 Gymnasium 的演化,还是 MCP 的扩展,还是某个还没出现的项目——现在还无法判断。
我们能做的,是理解每一种尝试背后的问题意识,然后在真实的工程实践中做出自己的选择。
参考资料
- AEnvironment GitHub 仓库 — 项目主页与 README
- AReaL GitHub 仓库 — 异步 RL 训练系统
- AWorld GitHub 仓库 — Agent 运行时框架
- NitroGen 项目页 — 游戏领域环境统一与 VLA 基础模型
- NitroGen 论文(arXiv:2601.02427)
- NitroGen GitHub 仓库
- MCP Architecture — MCP 官方架构文档
- BrowserGym — Web 环境统一抽象的先行者
- Gymnasium — RL 环境的事实标准