找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1378

积分

0

好友

186

主题
发表于 5 天前 | 查看: 18| 回复: 0

AEnvironment(简称 AEnv)是一个面向 Agentic RL(强化学习)时代的统一环境平台,以“Everything as Environment”为核心理念。它通过拓展标准化的 MCP 协议和高性能的 ASandbox 运行时,为环境提供者、算法开发者和智能体开发者提供了一套开箱即用的基础设施,让开发者聚焦于智能体能力本身而非环境搭建的繁琐细节。

在蚂蚁内部,AEnvironment 作为 ASystem 的关键环境层技术,与 AReaL 强化学习框架深度协同,支撑了大规模 Agentic RL 训练和智能体服务部署,相关代码已在 GitHub 开源。

图片

AEnvironment 核心亮点:

  • 超大规模支撑:已支持万亿级模型训练,支持 Agentic-RL 在超长上下文下进行大规模并行采样。
  • Agent as Environment:支持将智能体封装为环境,实现多机协同与层级训练。
  • 极速应用生成:预置工具链,支持小应用环境的快速构建与上线。
  • 高质量数据合成:自动化生成大规模环境数据与任务轨迹,喂饱训练模型。
  • 内置主流 Benchmark:开箱即用,集成行业权威评测基准。

AEnvironment 的架构设计实践,旨在推动智能体环境从“一次性脚本”到“标准化服务”的转化,为业界大规模 Agentic RL 和智能体应用开发提供工程化思路。

图片

图片

核心理念:Everything as Environment

AEnv 将一切抽象为环境——无论是 Benchmark、工具集还是其他 Agent,都可以作为统一的环境接口被调用。AEnv 把“可交互能力”统一收敛到同一种可编排、可部署、可复现的 Env 生命周期与 MCP 工具协议之上:对上层 Agent 来说只需要面对一致的 list_tools / call_tool / release 语义;对下层工程实现来说,AEnv 不关注具体的状态和动作空间,而是从工程化的角度提供完备的、可扩展的封装,统一 Benchmark、工具集、Agent 等各种应用场景。

这种统一抽象让能力可以像积木一样注册、组合与替换,并通过 EnvHub/调度器/多运行时(ASandbox/K8s)在生产与训练场景中规模化运行,同时保持隔离性与可追溯性(data source 挂载、会话录制、亚秒级启动等),从而把 Agentic RL 时代的“开发-评测-训练-部署”放到同一套工程接口里闭环起来。

图片

核心亮点

(1)支持大规模 Agentic-RL 训练

在强化学习训练体系中,环境工程作为智能体进化的基石发挥着关键作用。在百灵大模型的训练过程中涉及到模型与上千个合成环境的多轮交互,总的交互次数和轨迹数量更是达到了数万级别,这对环境工程带来了两方面的挑战:性能与稳定性,以及环境内容的多样性。AEnvironment 的系统设计瞄准了这一痛点,通过对底层 Sandbox 引擎的抽象和精心的编排设计为大规模强化学习训练中提供了可靠的环境工程解决方案。

除此以外,通过提供内置的环境加上可自定义环境的 SDK,AEnvironment 在环境的多样性上提供了足够多的可能性,方便 Agent 快速集成训练。以下是 OpenAI Agent 集成 AEnvironment 在 tau2-bench 的数据集上运行的样例:

from typing import Any, Dict
from agents import Agent as OpenAIAgent
import os
from aenv.core.environment import Environment

# 1. Create and initialize environment
env = Environment(
    env_name="tau2-env@1.0.0",
    environment_variables=dict(
        TAU2_DOMAIN="airline",
        TAU2_TASK_ID="1",
    ),
)
await env.initialize()

# 2. Create Agent
agent = OpenAIAgent(
    name="Tau2 Agent",
    instructions=env.call_function("tau2_get_system_prompt", {}),
    tools=await env.list_openai_tools(),
)

# 3. Run!
while step < 100:
    step += 1
    status = await env.call_function("tau2_get_status", {})
    if status.get("done", False):
        break
    # Get last observation for agent input
    result = await Runner.run(
        agent,
        input = status.get("last_observation", "")
    )
    # Sent message to user
    await env.call_function("tau2_send_message", {"message": result.final_output})

# 4. Get final reward
reward = await env.call_reward({})

完整可运行的代码见:GitHub 示例

(2)支持小应用极速生成

以 AEnvironment 作为底座,利用 swe agent 快速搭建小应用极速生成程序,通过自然语言 Prompt 即可生成完整可运行的小应用,基于 AEnvironment 的 MCP 协议实现对话式交互和实时预览。

我们使用其他流行解决方案来完成相同一个的 demo,其性能对比如下:

图片

详细示例代码请参考 mini-program 示例

(3)支持 Agent as Environment

可以将任何 Agent 无侵入地转化为环境,支持万级吞吐的大规模部署和按需调用,支持强化学习集成,支持 Multi-Agent 交互:

图片

只需要轻松的两行代码,即可实现 Agent Deploy as Environment:

# Agent A 调用 Agent B 作为环境
async with Environment("agent-b@1.0.0") as agent_b:
    response = await agent_b.call_tool("chat", {"message": "Hello!"})

除此以外,与 AReal Agentic-RL 结合,将 Agent 部分部署于 AEnvironment,可快速实现 Multi-Agent RL(多智能体独立训练)。

(4)支持大规模环境和轨迹数据合成

为了进一步提升 Agent / LLM 在复杂真实场景下的表现能力,必须在大规模、多样化的环境样本上进行训练,而这对环境的可组合性与工程灵活性提出了更高要求。AEnv 提供了一套统一、低门槛的环境 API 抽象,让环境不再是训练流程中的瓶颈。通过将 AEnvironment 无缝集成进你现有的数据与训练流水线中,你可以以极低的工程成本,快速合成、复用并规模化生成任意数量的可用环境数据,从而持续为 Agent 的训练、评测与能力演进提供高质量输入。

合成环境过程:

  1. 环境定义

    aenv init my-env
    from aenv import register_tool
    @register_tool
    def search_code(query: str, path: str = ".") -> dict:
       """Search for code patterns in files."""
       return {"matches": [...]}
  2. 环境发布

    aenv init my-env && aenv build && aenv push
  3. 调用环境,生成轨迹

    async with Environment("my-env@1.0.0") as env:
       result = await env.call_tool("search_code", {"query": "def main"})
(5)内置主流 Benchmark 环境

开箱即用的 Benchmark 环境,无需繁琐配置:

from aenv import Environment
async with Environment("tau2-env@1.0.0") as env:
    tools = await env.list_tools()
    result = await env.call_tool("tau2_get_task_info", {})

已支持:

图片

架构设计

AEnvironment 采用分层架构设计,将系统分为开发面(Development Side)和流量面(Traffic Side)两个核心域,实现环境研发与运行时执行的解耦。

核心特点

  • 架构设计:开发侧定义环境,流量侧执行运行时,基于 MCP 协议提供统一接口。
  • 可扩展性:支持扩展 Kubernetes 等多种沙箱引擎,增强了系统的灵活性。
  • 元数据驱动:环境配置存储在 EnvHub,运行时动态查询,支持环境版本管理和快速迭代。

图片

开发侧(Development Side)
负责环境定义和元数据管理:

  • AEnv CLI → EnvHub → Redis
  • 开发者通过 CLI 推送环境配置到 EnvHub,元数据存储在 Redis。

流量侧(Traffic Side)
负责运行时环境实例的创建和管理:

  • AEnv SDK → API Service → Controller/Other Sandbox Engine → Environment Sandbox
  • 用户通过 SDK 创建环境实例,API Service 查询 EnvHub 获取元数据,通过沙箱引擎(如 Kubernetes)创建实例。
  • 工具调用通过 API Service 代理到沙箱内的 SDK,执行 MCP 工具并返回结果。

图片

未来展望

下个阶段,AEnvironment 会面向 AI Agent 场景提供更丰富的环境,并持续优化和提升大规模环境交互的性能和稳定性。重点建设方向包括:

环境类型

  • 支持 GUI Agent 环境
  • 基于模型的 Simulation 环境
  • 更完善的前后端应用构建环境
  • 支持更多主流的 Benchmark

系统建设

  • 提供更丰富的观测指标
  • 提供环境中心的前端界面

社区合作

  • 引入更高性能和更流行的 Sandbox 解决方案
  • 集成更多 Agent 框架和上下文工程

欢迎开发者使用 AEnvironment 并提供反馈,共同推动环境工程技术的创新。

GitHub 仓库: https://github.com/inclusionAI/AEnvironment




上一篇:原生JavaScript实现楼梯式导航:优化长页面浏览体验与内容定位
下一篇:SeekDB安装部署指南:详解Docker、二进制包及三种生产部署模式
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 18:57 , Processed in 0.296601 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表