AgentFly
基于强化学习训练 LLM Agent,支持多轮决策、异步工具调用与多模态输入
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于强化学习训练 LLM Agent,支持多轮决策、异步工具调用与多模态输入
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你花了几周时间调优一个大语言模型,让它能写代码、搜索网页、操作软件——结果换了一个任务,它就完全不知所措了。传统微调方式让模型只能"死记硬背"特定答案,却无法真正学会"如何像人一样思考和行动"。AgentFly 正是为了解决这个根本性问题而生。
AgentFly 由 Agent-One-Lab 团队开发,2025 年 7 月发布论文(arXiv:2507.14897),并在同年开源了完整代码。与传统 RLHF 专注于让模型生成更好的文本不同,AgentFly 专注于训练模型的**工具使用能力(Tool Use)**和多轮决策能力——也就是训练模型"做事"而非"说话"。
团队的核心洞察是:传统 RL 方法(如 GRPO、Reinforce++)在单轮文本生成上效果不错,但要让 Agent 在多轮对话中持续使用工具、获取反馈、迭代决策,原有方法就不够用了。AgentFly 通过 Token 级 Masking 机制,将多轮交互拆解为 RL 可处理的形式,同时实现了多链推理(Multi-Chain Rollout)——让一个任务同时走多条路径,显著提升训练效率。
AgentFly 采用四层模块化架构,将 Agent RL 的复杂性分层隔离:
Agent Layer(Agent 层):暴露用户接口,封装交互循环。支持多种 Agent 类型:HFAgent(HuggingFace 模型)、CodeAgent、GUIAgent、ImageAgent、ReActAgent 等。
Tool Layer(工具层):通过装饰器 @tool 注册工具函数,支持同步/异步执行。内置预置工具包括:Calculator(计算器)、Code Interpreter(代码执行)、Web Search(网页搜索)等。
Reward Layer(奖励层):通过 @reward 装饰器定义奖励函数,支持异步奖励计算。奖励来源可以是环境反馈、外部 API 或自定义函数。
Resource Layer(资源层):集中管理执行环境,支持 Docker 容器化隔离。预置环境包括 WebShop、ALFWorld、ScienceWorld 等标准 Agent 测试基准。
训练层基于 verl(字节跳动的 RL 训练框架),后端使用 vLLM 实现高效的异步推理。

AgentFly 2025 年 8 月新增多模态支持,得益于其灵活的 Chat Template System。内置 qwen_vl_utils 处理视觉输入,可训练能"看图说话"的 GUI 自动化 Agent 和图像问答系统。
传统 RL 训练中,工具调用是同步阻塞的——每次 Agent 调用外部 API,训练就要等待,极大浪费算力。AgentFly 实现了完全异步的 Tool Call 和 Reward Computation,结合 Ray 分布式执行框架,实现了高吞吐量的训练吞吐量。
GRPO 等算法要求同一个问题有多个"答案路径"来计算优势函数。AgentFly 的 Multi-Chain Rollout 让一个任务同时生成 N 条轨迹,配合 Token 级 Masking(只对 Agent 生成的内容计算 loss,而非整个上下文),实现高效的多轮策略优化。
| 任务 | 模型 | 状态 |
|---|---|---|
| SearchR1 | Qwen2.5 | ✅ |
| WebShop | Qwen2.5 | ✅ |
| ScienceWorld | Qwen3-4B-Instruct | ✅ |
| SWE (R2E-Gym) | Qwen3-32B | ✅ (进行中) |
| SimuScene | SFT DeepSeek-R1-Distill-Qwen | ✅ |
AgentFly 有一个强制要求:Python 3.12.x(不是 3.11 也不是 3.13)。通过 install.sh 一键安装,但背后会拉取 NVIDIA enroot 容器运行时、Docker 镜像等大量依赖。推荐使用 conda 环境隔离。
import asyncio
from agentfly.agents import HFAgent
from agentfly.tools import calculator
async def main():
messages = [{"role": "user", "content": "What is 1+1?"}]
agent = HFAgent(
model_name_or_path="Qwen/Qwen2.5-3B-Instruct",
tools=[calculator],
template="qwen2.5",
backend_config={"backend": "async_vllm"},
)
result = await agent.run(messages=messages, max_turns=3, num_chains=1)
print(result.trajectories, result.rewards)
asyncio.run(main())
8 卡 GPU 节点上可直接运行 examples/train_scripts/train_example.sh,脚本会自动下载数据集、配置环境、启动 RL 训练。wandb 可视化训练曲线。
硬件门槛极高:没有 8 卡 GPU 基本无法训练,甚至推理也需要 vLLM GPU 后端。个人开发者门槛较高。
Python 3.12 硬限制:这是一个相对较新的 Python 版本要求,部分第三方库可能尚未完全兼容,遇到依赖问题需要自行排查。
生产级部署不友好:没有 Dockerfile、没有 Web UI、没有 Kubernetes 支持,仅适合研究实验环境。
文档仍有 AI 生成痕迹:官方文档明确标注"部分由 AI 生成",代码与文档存在不一致的可能。
AgentFly 代表了 LLM Agent 训练从"手工 Prompt 工程"向"可扩展 RL 训练"演进的方向。随着 OpenAI、Google DeepMind 等头部公司持续投入 Agent RL 研究(如 o1/o3 的 RL 推理扩展),类似 AgentFly 的开源框架将成为学术社区的重要基础设施。
其多模态 Agent 训练、异步工具调用、资源管理系统的设计思路,也将影响下一代 Agent 框架的架构选择。