AWorld (Agent World) 构建智能体(Agent)及其运行的丰富环境,旨在拓展 AI 能力的前沿并实现持续进化。本项目提供了 Agentic Learning(智能体学习)的基础配方:环境访问、智能体构建、经验获取 和 模型训练。AWorld 的强大之处在于,智能体可以利用这些相同的组件来自动提升自己。
Tip
Python>=3.11
git clone https://github.com/inclusionAI/AWorld && cd AWorld
pip install -e .配置丰富的环境并非易事——依赖包冲突、API 需要密钥、并发需要扩展、网路配置等。我们通过三种访问模式让这一切变得轻松无痛:
- 使用我们默认的托管设置(针对有使用成本的工具,我们提供有限免费额度)。
- 自带 API 密钥以获得无限制次数工具使用(即将推出)。
- 拉取我们的 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 中,智能体被简洁的定义成一个工具增强的模型。要启动一个智能体,您只需要:
- 一个模型服务(对于训练,vLLM/SGLang服务效果就很好)
- 一个可调用的在线环境(使用我们的托管选项或接入您自己的 MCP 工具链) 就是这样——无需繁重的脚手架代码。
from aworld.agents.llm_agent import Agent
from aworld.runner import Runners
# 详情请参阅上一节
mcp_config = {...}
searcher = Agent(
name="Search Agent",
system_prompt="You specialize at searching.",
mcp_config=mcp_config
)
if __name__ == "__main__":
result = Runners.sync_run(
input="Use google search tool to answer the question: the news about AI today.",
agent=searcher
)
print(f"answer: {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 为您提供了灵活的构建模式:
想看实际效果?可在 AWorld Playground 中加载我们预构建的 DeepResearch 智能体系统,检查源代码,并端到端运行它。

我们的运行时(Runtime)会捕获离线和在线运行中的每一个步骤。每个任务都会产生一条完整的轨迹——包含每一次 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="Use google search tool to answer the question: the news about AI today.",
agent=searcher
)
responses = await Runners.run_task(task)
resp = responses[task.id]
logger.info(f"task answer: {resp.answer}")
logger.info(f"task trajectory: {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="Use google search tool to answer the question: the news about AI today.",
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 {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="Search Agent",
system_prompt="You specialize at searching.",
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()💡 查看 真实案例,其中包含运行智能体训练所需的完整训练配置。
除了更新模型权重之外,您还可以对整个智能体系统进行元学习。启动特定角色的智能体,让它们针对目标智能体进行更新、重写提示词、优化工作流或调整策略,然后迭代团队(如下图所示)。
本框架旨在具有高度适应性,使研究人员和开发人员能够跨多个领域进行探索和创新,从而提升多智能体系统的能力和应用。
| 概念 | 描述 |
|---|---|
agent |
定义基础类、描述、输出解析以及多智能体协作(swarm)逻辑,用于定义、管理和编排 AWorld 系统中的智能体。 |
runner |
包含管理智能体在环境中的执行循环的运行器类,处理剧集回放(episode rollouts)和并行训练/评估工作流。 |
task |
定义基础任务类,封装了智能体交互所需的环境目标、必要工具和终止条件。 |
swarm |
实现 SwarmAgent 类,通过去中心化策略管理多智能体协调和涌现的群体行为。 |
sandbox |
提供带有可配置场景的受控运行时,用于快速原型设计和验证智能体行为。 |
tools |
提供灵活的框架,用于定义、适配和执行 AWorld 系统中的智能体-环境交互工具。 |
context |
为 AWorld 智能体提供全面的上下文管理系统,实现完整的状态跟踪、配置管理、提示词优化、多任务状态处理以及贯穿智能体生命周期的动态提示词模板。 |
memory |
为智能体实现可扩展的记忆系统,支持短期和长期记忆、摘要、检索、嵌入(embeddings)和集成。 |
trace |
为 AWorld 提供可观测的追踪框架,支持分布式追踪、上下文传播、Span 管理,并与流行框架和协议集成,以监控和分析智能体、工具及任务的执行。 |
| 智能体构建 | 拓扑编排 | 环境 |
|---|---|---|
| ✅ 集成 MCP 服务 | ✅ 封装的运行时 | ✅ 运行时状态管理 |
| ✅ 支持多模型提供商 | ✅ 灵活的 MAS 模式 | ✅ 高并发支持 |
| ✅ 高度自定义构建 | ✅ 清晰的状态追踪 | ✅ 分布式训练 |
| ✅ 支持智能体技能 🚀 |
我们的使命:把复杂繁琐的任务留给 AWorld,您来负责创新。本节展示了利用 AWorld 开发的几个创新项目,以证明框架本身的有效性。
-
FunReason-MT Technical Report: Overcoming the Complexity Barrier in Multi-Turn Function Calling arxiv, 2025. 论文, 代码, 模型, 数据集
Zengzhuang Xu, Bingguang Hao, Zechuan Wang, Yuntao Wen, Maolin Wang, 等
-
AWorld: Orchestrating the Training Recipe for Agentic AI. arxiv, 2025. 论文, 代码, 模型
Chengyue Yu, Siyuan Lu, Chenyi Zhuang, Dong Wang, Qintong Wu, 等
-
FunReason: Enhancing Large Language Models' Function Calling via Self-Refinement Multiscale Loss and Automated Data Refinement. arxiv, 2025. 论文, 模型
Bingguang Hao, Maolin Wang, Zengzhuang Xu, Cunyin Peng, 等
-
Exploring Superior Function Calls via Reinforcement Learning. arxiv, 2025. 论文, 代码
Bingguang Hao, Maolin Wang, Zengzhuang Xu, Yicheng Chen, 等
-
RAG-R1 : Incentivize the Search and Reasoning Capabilities of LLMs through Multi-query Parallelism. arxiv, 2025. 论文, 代码, 模型
Zhiwen Tan, Jiaming Huang, Qintong Wu, Hongxuan Zhang, Chenyi Zhuang, Jinjie Gu
-
V2P: From Background Suppression to Center Peaking for Robust GUI Grounding Task. arxiv, 2025. 论文, 代码
Jikai Chen, Long Chen, Dong Wang, Leilei Gan, Chenyi Zhuang, Jinjie Gu
-
Don’t Just Fine-tune the Agent, Tune the Environment arxiv, 2025. 论文
Siyuan Lu, Zechuan Wang, Hongxuan Zhang, Qintong Wu, Leilei Gan, Chenyi Zhuang, 等
-
Profile-Aware Maneuvering: A Dynamic Multi-Agent System for Robust GAIA Problem Solving by AWorld. arxiv, 2025. 论文, 代码
Zhitian Xie, Qintong Wu, Chengyue Yu, Chenyi Zhuang, Jinjie Gu
-
Recon-Act: A Self-Evolving Multi-Agent Browser-Use System via Web Reconnaissance, Tool Generation, and Task Execution. arxiv, 2025. 论文, 代码
Kaiwen He, Zhiwei Wang, Chenyi Zhuang, Jinjie Gu
我们热烈欢迎开发者加入我们,共同构建和改进 AWorld!无论您是想增强框架功能、修复 Bug 还是添加新特性,您的贡献对我们都非常宝贵。
如需学术引用或希望联系我们,请使用以下 BibTeX 条目:
@misc{yu2025aworldorchestratingtrainingrecipe,
title={AWorld: Orchestrating the Training Recipe for Agentic AI},
author={Chengyue Yu and Siyuan Lu and Chenyi Zhuang and Dong Wang and Qintong Wu and Zongyue Li and Runsheng Gan and Chunfeng Wang and Siqi Hou and Gaochi Huang and Wenlong Yan and Lifeng Hong and Aohui Xue and Yanfeng Wang and Jinjie Gu and David Tsai and Tao Lin},
year={2025},
eprint={2508.20404},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2508.20404},
}

