返回市场
世界服务器

世界服务器

作者:inclusionAI1021 星标更新:2025-11-24

项目介绍

<div align="center">

AWorld: 丰富的环境,智能的代理,持续的进化

</div> <h4 align="center">

"自我意识:最难的问题不是在限制内解决,而是发现自己的局限性"

[![Twitter Follow][twitter-image]][twitter-url] [![WeChat QR Code][wechat-image]][wechat-url] [![Discord][discord-image]][discord-url] [![License: MIT][license-image]][license-url] [![DeepWiki][deepwiki-image]][deepwiki-url] [![arXiv][arxiv-image]][arxiv-url] [![Tutorial][tutorial-image]][tutorial-url] [![Playground][playground-image]][playground-url]

</h4> <h4 align="center">

中文版 | 安装 | 环境 | 代理 | 经验 | 训练 | 架构设计原则 | 进化 | 贡献 |

</h4>

AWorld (Agent World) 构建智能代理及其操作的丰富环境,推动人工智能能力的前沿,并实现持续进化。该项目提供了代理学习的基本配方:环境访问代理构建经验检索,以及模型训练。AWorld的强大之处在于,代理可以利用这些相同的组件自动改进自己。

💡 访问我们的主页获取更多详情,或尝试我们的在线环境代理

安装

[!TIP] Python>=3.11

git clone https://github.com/inclusionAI/AWorld && cd AWorld

pip install -e .

在线访问复杂环境

提供丰富的环境很困难——包冲突,API需要密钥,并发必须扩展。我们通过三种访问模式使其无痛:

  1. 使用我们的默认托管设置(工具使用成本包括有限的免费层级)。
  2. 带上您自己的API密钥以获得不受限制的访问(即将推出)。
  3. 拉取我们的Docker镜像并在您自己的基础设施上运行一切(即将推出)。
import os
import asyncio
from aworld.sandbox import Sandbox

INVITATION_CODE = os.environ.get("INVITATION_CODE", "")

mcp_config = {
    "mcpServers": {
        "gaia_server": {
            "type": "streamable-http",
            "url": "https://playground.aworldagents.com/environments/mcp",
            "timeout": 600,
            "sse_read_timeout": 600,
            "headers": {
                "ENV_CODE": "gaia",
                "Authorization": f"Bearer {INVITATION_CODE}",
            }
        }
    }
}

async def _list_tools():
    sand_box = Sandbox(mcp_config=mcp_config, mcp_servers=["gaia_server"])
    return await sand_box.mcpservers.list_tools()

if __name__ == "__main__":
    tools = asyncio.run(_list_tools())
    print(tools)

高效代理构建

在AWorld中,代理只是一个增强的模型。要创建一个代理,您只需要:

  1. 一个模型端点(用于训练,vLLM服务效果很好)
  2. 一个在线环境来调用(使用我们的托管选项或插入您自己的MCP工具链) 就这样——不需要重型框架。
from aworld.agents.llm_agent import Agent
from aworld.runner import Runners

# 参考上面的部分获取详细信息
mcp_config = {...}

searcher = Agent(
    name="搜索代理",
    system_prompt="您专长于搜索。",
    mcp_config=mcp_config
)

if __name__ == "__main__":
    result = Runners.sync_run(
        input="使用Google搜索工具回答关于今天的AI新闻的问题。",
        agent=searcher
    )
    print(f"答案: {result.answer}")

记得先插入您的LLM凭证。

# 设置LLM凭证
export LLM_MODEL_NAME="gpt-4"
export LLM_API_KEY="your-api-key-here"
export LLM_BASE_URL="https://api.openai.com/v1"

复杂代理系统构建

现实世界的问题往往需要不止一个代理。AWorld为您提供灵活的构建路径:

  1. 设计端到端的自动化工作流 文档
  2. 启动启用MCP的代理 文档
  3. 协调多代理系统(MAS) 文档

想看看它如何运行吗?在AWorld 游乐场加载预构建的DeepResearch团队,检查源代码并从头到尾运行它。

经验到样本

我们的运行时捕获了离线和在线运行中的每一步。每个任务都会生成一个完整的轨迹——每次LLM调用、动作和奖励——因此您可以合成训练样本,审计性能,并自信地迭代。

完整的任务轨迹

任务展开涉及多次LLM调用。框架捕获每一步,为您提供完整的轨迹。

import asyncio
from aworld.runner import Runners
from aworld.core.task import Task
from aworld.logs.util import logger
import json

# 参考上面的部分获取代理构建详情
searcher = Agent(...)

if __name__ == "__main__":
    async def test_complete_trajectory():
        task = Task(
            input="使用Google搜索工具回答关于今天的AI新闻的问题。",
            agent=searcher
        )

        responses = await Runners.run_task(task)
        resp = responses[task.id]
        logger.info(f"任务答案: {resp.answer}")
        logger.info(f"任务轨迹: {json.dumps(resp.trajectory, ensure_ascii=False)}")
    asyncio.run(test_complete_trajectory())

单步内省

需要更细粒度的控制吗?调用step()一次检查一个动作/响应对。这允许您在训练期间注入中间奖励,从而实现更丰富、更灵活的学习信号。

import os
import asyncio
from aworld.runner import Runners
from aworld.core.task import Task
from aworld.logs.util import logger
import json
from aworld.config import TaskConfig, TaskRunMode

# 参考上面的部分获取代理构建详情
searcher = Agent(...)

if __name__ == "__main__":
    async def test_single_step_introspection():
        task = Task(
            input="使用Google搜索工具回答关于今天的AI新闻的问题。",
            agent=searcher,
            conf=TaskConfig(
                resp_carry_context=True,
                run_mode=TaskRunMode.INTERACTIVE
            )
        )

        trajectory_log = os.path.join(os.path.dirname(__file__), "trajectory_log.txt")
        is_finished = False
        step = 1
        while not is_finished:
            with open(trajectory_log, "a", encoding="utf-8") as traj_file:
                is_finished, observation, response = await Runners.step(task)
                traj_file.write(f"步骤 {step}\n")
                traj_file.write(json.dumps(response.trajectory, ensure_ascii=False, indent=2))
                traj_file.write("\n\n")
                step += 1
    asyncio.run(test_single_step_introspection())

训练

一旦代理可以在环境中漫游,AWorld通过两种互补的训练模式完成循环,驱动持续改进。

模型训练

将任何主流的LLM训练器——AReal、Swift、Verl、Slime等——插入运行时以直接更新模型参数。适配器轻量级,因此您可以在不同的训练器之间重用相同的环境和代理代码。

from datasets import load_dataset
from aworld.agents.llm_agent import Agent
from aworld.config import AgentConfig

from train.trainer.agent_trainer import AgentTrainer
from train.examples.train_gaia_with_aworld_verl.metrics.gaia_reward_function import gaia_reward_func


# 参考上面的部分获取详细信息
mcp_config = {...}

# 配置代理以使用Verl作为模型服务(自动适应推理格式)
agent_config = AgentConfig(
    llm_provider="verl"
)
searcher = Agent(
    name="搜索代理",
    system_prompt="您专长于搜索。",
    mcp_config=mcp_config,
    conf=agent_config
)

train_dataset = load_dataset("", split="train")
test_dataset = load_dataset("", split="test")

trainer = AgentTrainer(
    agent=agent,
    config=custom_train_config,
    reward_func=gaia_reward_func,
    train_dataset=train_dataset,
    test_dataset=test_dataset
)

trainer.train()

💡 查看真实案例以获取完整的训练配置,运行代理训练。

元学习

除了权重之外,您还可以元学习整个代理系统。启动特定角色的代理,它们可以批评、重写提示、优化工作流程或调整目标代理策略,然后迭代团队(例如我们的Gaia演示)。

架构设计原则

该框架旨在高度适应,使研究人员和开发人员能够在多个领域探索和创新,从而推进多代理系统的功能和应用。

概念与框架

概念描述
agent定义代理的基础类、描述、输出解析和多代理协作(群)逻辑,用于定义、管理和编排AWorld系统中的代理。
runner包含管理代理在环境中的执行循环的运行器类,处理情节展开和平行训练/评估工作流。
task定义封装环境目标、必要工具和终止条件的基任务类,用于代理交互。
swarm实现SwarmAgent类,通过分散策略管理多代理协调和涌现的群体行为。
sandbox提供具有可配置场景的受控运行时,用于快速原型设计和验证代理行为。
tools提供一个灵活的框架,用于定义、适配和执行AWorld系统中代理-环境交互的工具。
context特征全面的上下文管理系统,支持代理生命周期中的完整状态跟踪、配置管理、提示优化、多任务状态处理和动态提示模板化。
memory实现可扩展的代理记忆系统,支持短期和长期记忆、总结、检索、嵌入和集成。
trace特征可观测的追踪框架,支持分布式追踪、上下文传播、跨度管理和与流行框架及协议的集成,以监控和分析代理、工具和任务执行。

特性

代理构建编排拓扑环境
✅ 集成MCP服务✅ 封装运行时✅ 运行时状态管理
✅ 多模型提供商✅ 灵活的MAS模式✅ 高并发支持
✅ 自定义选项✅ 清晰的状态追踪✅ 分布式训练
支持代理技能 🚀

进化

我们的使命:AWorld处理复杂性,您专注于创新。本节展示了使用AWorld构建的尖端多代理系统,朝着AGI前进。

代理基准测试

<table style="width: 100%; border-collapse: collapse; table-layout: fixed;"> <thead> <tr> <th style="width: 30%; text-align: left; border-bottom: 2px solid #ddd; padding: 8px;">类别</th> <th style="width: 20%; text-align: left; border-bottom: 2px solid #ddd; padding: 8px;">成就</th> <th style="width: 20%; text-align: left; border-bottom: 2px solid #ddd; padding: 8px;">性能</th> <th style="width: 25%; text-align: left; border-bottom: 2px solid #ddd; padding: 8px;">关键创新</th> <th style="width: 5%; text-align: left; border-bottom: 2px solid #ddd; padding: 8px;">日期</th> </tr> </thead> <tbody> <tr> <td style="padding: 8px; vertical-align: top;">🤖 代理 <br> <a href="https://playground.aworldagents.com/" target="_blank" style="text-decoration: none;"> <img src="https://img.shields.io/badge/Try-Online-9B59B6?style=flat-square" alt="在线试用"> </a> </td> <td style="padding: 8px; vertical-align: top;"> <strong>GAIA基准 <br>卓越</strong> <br> <a href="https://huggingface.co/spaces/gaia-benchmark/leaderboard" target="_blank" style="text-decoration: none;"> <img src="https://img.shields.io/badge/GAIA-Leaderboard-blue" alt="GAIA"> </a> </td> <td style="padding: 8px; vertical-align: top;"> Pass@1: <strong>67.89</strong> <br> Pass@3: <strong>83.49</strong> <br> (109个任务) <a href="./examples/gaia/README_GUARD.md" target="_blank" style="text-decoration: none;"> <img src="https://img.shields.io/badge/代码-README-green" alt="代码"> </a> </td> <td style="padding: 8px; vertical-align: top;"> 多代理系统 <br>稳定性与编排 <br> <a href="https://arxiv.org/abs/2508.09889" target="_blank" style="text-decoration: none;"> <img src="https://img.shields.io/badge/论文-arXiv-red" alt="论文"> </a> </td> <td style="padding: 8px; vertical-align: top;">2025/08/06</td> </tr> <tr> <td style="padding: 8px; vertical-align: top;">🧠 推理</td> <td style="padding: 8px; vertical-align: top;"> <strong>IMO 2025 <br>问题解决</strong> <br> <a href="https://www.imo-official.org/year_info.aspx?year=2025" target="_blank" style="text-decoration: none;"> <img src="https://img.shields.io/badge/IMO-2025-blue" alt="IMO"> </a> </td> <td style="padding: 8px; vertical-align: top;"> <strong>5/6</strong> 问题 <br>6小时内解决 <br> <a href="examples/imo/README.md" target="_blank" style="text-decoration: none;"> <img src="https://img.shields.io/badge/代码-README-green" alt="代码"> </a> </td> <td style="padding: 8px; vertical-align: top;">多代理协作 <br>优于单独模型</td> <td style="padding: 8px; vertical-align: top;">2025/07/25</td> </tr> <tr> <td style="padding: 8px; vertical-align: top;">🖼️ 多模态</td> <td style="padding: 8px; vertical-align: top;"> <strong>OSWorld <br>排名第1</strong> <br> <a href="https://os-world.github.io/" target="_blank" style="text-decoration: none;"> <img src="https://img.shields.io/badge/OSWorld-Leaderboard-green" alt="OSWorld"> </a> </td> <td style="padding: 8px; vertical-align: top;"> <strong>58.0%</strong> <br> 成功率 <br> <a href="examples/osworld/README.md" target="_blank" style="text-decoration: none;"> <img src="https://img.shields.io/badge/代码-README-green" alt="代码"> </a> </td> <td style="padding: 8px; vertical-align: top;">工具越多越好?</td> <td style="padding: 8px; vertical-align: top;">2025/09/18</td> </tr> <tr> <td style="padding: 8px; vertical-align: top;">🖼️ 多模态</td> <td style="padding: 8px; vertical-align: top;"> <strong>VisualWebArena 9月排名第1</strong> <br> <a href="https://docs.google.com/spreadsheets/d/1M801lEpBbKSNwP-vDBkC_pF7LdyGU1f_ufZb_NWNBZQ/edit?gid=2044883967#gid=2044883967" target="_blank" style="text-decoration: none;"> <img src="https://img