OWL:把 CAMEL 框架的多智能体 workforce 搬进真实世界任务自动化
官方信息表
| 项目 | 内容 |
|---|---|
| 项目名称 | OWL(Optimized Workforce Learning for General Multi-Agent Assistance in Real-World Task Automation) |
| 所属组织 | CAMEL-AI(基于 CAMEL-AI 框架 构建) |
| 开源仓库 | camel-ai/owl |
| 技术报告 | arXiv:2505.23885(已被 NeurIPS 2025 接收) |
| 开源协议 | Apache License 2.0 |
| 运行环境 | Python 3.10 / 3.11 / 3.12 |
| 权威成绩 | GAIA 基准测试平均得分 69.09,在开源框架中排名 第一 |
| 官方文档 | CAMEL 文档站 |
| Hugging Face | camel-ai 主页 |
项目背景与愿景
OWL 是一个面向多智能体协作(multi-agent collaboration)的前沿框架,目标是把任务自动化的边界继续向前推进。它构建在 CAMEL-AI 框架之上,核心理念是:让多个 AI 智能体像一支"劳动力队伍(workforce)"那样动态协作,去解决真实世界里的复杂任务。
按照官方 README 的描述,OWL 的愿景是彻底变革 AI 智能体协作完成真实任务的方式。通过让智能体之间进行动态的、交互式的协作,OWL 能够在五花八门的领域里实现更自然、更高效、更稳健的任务自动化。项目最有说服力的成绩是在极具挑战性的 GAIA 基准上取得 69.09 的平均分,在所有开源框架中位列榜首——GAIA 是业界公认最考验智能体真实世界操作能力的基准之一,这个分数意味着 OWL 在搜索、浏览、文档处理、代码执行等综合能力上达到了开源第一梯队的水平。仓库首页还放出了 OWL 的架构图,直观展示了多智能体如何在工具包层之上协同调度。所谓"优化劳动力学习(Optimized Workforce Learning)",指的是 OWL 不只是把单个智能体跑起来,而是让一支分工明确的智能体队伍在完成任务的过程中持续优化协作方式,从而在开放式的真实任务中获得更强的鲁棒性——这也是它区别于一般单智能体 Demo 框架的核心所在。
官方 README 记录的重要时间线如下:2025 年 3 月 7 日开源代码库;3 月 3 日首次以 58.18 分在 GAIA 开源框架中登顶;3 月 9 日上线 Web 图形界面;3 月 11 日加入 MCPToolkit、FileWriteToolkit、TerminalToolkit,让智能体具备 MCP 工具调用、写文件和执行终端命令的能力;3 月 12 日在 SearchToolkit 中加入博查搜索,接入火山引擎模型平台,并增强了 Azure 与 OpenAI 兼容模型的结构化输出与工具调用;3 月 16 日支持 Bing 搜索与百度搜索;3 月 20 日 MCP Toolkit 支持请求头,并支持自动安装 Playwright;3 月 21 日集成 OpenRouter 模型平台;3 月 25 日支持 Gemini 2.5 Pro;3 月 26 日浏览器工具包增强,支持 chrome、msedge、chromium 三个通道;3 月 27 日集成 SearxNGToolkit,可用自建 SearxNG 引擎做网页搜索;4 月 18 日 GAIA 分数刷新到 69.09%;5 月 18 日放出可复现 GAIA 实验的初始版本(gaia69 分支);5 月 27 日发布完整技术报告;7 月 21 日开源训练数据集与模型权重;9 月 22 日宣布论文被 NeurIPS 2025 接收。社区还发起了"Community Agent Challenges"活动,邀请用户为 AI 智能体设计独特的挑战任务,把你的创意交给最前沿的 AI 去解决(见 community_challenges.md)。
官方同时发布了演示视频,完整展示如何在本地安装 OWL,以及它作为前沿多智能体协作框架的实际能力,视频可在 YouTube 观看。对于想先睹为快再动手部署的用户,这个视频是理解 OWL 工作流最快的方式:从环境准备、API Key 配置,到智能体接受任务、自动调用搜索与浏览器工具、最终给出答案的全过程都有完整演示。
核心功能
按照官方 README 的逐条说明,OWL 具备以下核心能力:
- 在线搜索:支持多个搜索引擎(包括 Wikipedia、Google、DuckDuckGo、百度、博查等),用于实时检索信息、获取外部知识,让智能体不必只依赖模型自身记忆。
- 多模态处理:能够处理互联网或本地的视频、图片、音频数据,而不只是纯文本。
- 浏览器自动化:基于 Playwright 框架模拟真实浏览器交互,包括滚动、点击、表单输入、文件下载、页面导航等操作。
- 文档解析:从 Word、Excel、PDF、PowerPoint 文件中提取内容,转换成文本或 Markdown 格式,供智能体阅读分析。
- 代码执行:通过解释器直接编写并执行 Python 代码,完成计算、数据处理等任务。
- 内置工具包体系:一整套开箱即用的工具包,包括 Model Context Protocol(MCP)——这是一个把 AI 模型与各类工具、数据源交互标准化的通用协议层;以及 ArxivToolkit、AudioAnalysisToolkit、CodeExecutionToolkit、DalleToolkit、DataCommonsToolkit、ExcelToolkit、GitHubToolkit、GoogleMapsToolkit、GoogleScholarToolkit、ImageAnalysisToolkit、MathToolkit、NetworkXToolkit、NotionToolkit、OpenAPIToolkit、RedditToolkit、SearchToolkit、SemanticScholarToolkit、SymPyToolkit、VideoAnalysisToolkit、WeatherToolkit、BrowserToolkit 等一大批面向专用任务的工具包。
环境要求
在安装 OWL 之前,必须先准备好 Python 环境。官方明确支持 Python 3.10、3.11、3.12 三个版本。检查方法与安装命令如下:
# 检查是否已安装 Python
python --version
# 若未安装,可从官网下载:https://www.python.org/downloads/
# macOS(Homebrew):
brew install python@3.10
# Ubuntu / Debian:
sudo apt update
sudo apt install python3.10 python3.10-venv python3-pip
官方特别提示:如果你的目标是跑 GAIA 基准评测,应该使用 gaia58.18 分支——该分支在 owl/camel 目录里内置了一个定制版 CAMEL 框架,工具包经过稳定性增强,专门针对 GAIA 基准做了优化,和标准安装的 CAMEL 不完全相同。
部署步骤(四种安装方式)
OWL 提供了四种安装路径,满足不同的工作流偏好,以下全部按官方 README 逐条翻译。
方式一:使用 uv(官方推荐)
# 克隆仓库
git clone https://github.com/camel-ai/owl.git
# 进入项目目录
cd owl
# 若没有 uv 先安装
pip install uv
# 创建虚拟环境(指定 Python 3.10)
uv venv .venv --python=3.10
# 激活虚拟环境
# macOS / Linux:
source .venv/bin/activate
# Windows:
.venv\Scripts\activate
# 以可编辑模式安装 CAMEL 及全部依赖
uv pip install -e .
方式二:使用 venv + pip
git clone https://github.com/camel-ai/owl.git
cd owl
# 创建虚拟环境(3.11、3.12 同样可用)
python3.10 -m venv .venv
# 激活虚拟环境
source .venv/bin/activate # macOS / Linux
.venv\Scripts\activate # Windows
# 从 requirements.txt 安装
pip install -r requirements.txt --use-pep517
方式三:使用 conda
git clone https://github.com/camel-ai/owl.git
cd owl
# 创建并激活 conda 环境
conda create -n owl python=3.10
conda activate owl
# 可选 A:作为包安装(官方推荐)
pip install -e .
# 可选 B:从 requirements.txt 安装
pip install -r requirements.txt --use-pep517
方式四:使用 Docker
官方提供预构建镜像,这是最快、对大多数用户最推荐的方式:
# 从 Docker Hub 拉取现成镜像并启动
docker compose up -d
# 进入容器内运行 OWL
docker compose exec owl bash
cd .. && source .venv/bin/activate
playwright install-deps
xvfb-python examples/run.py
如果需要自定义镜像,或者无法访问 Docker Hub,可以本地构建:打开 docker-compose.yml,注释掉 image: mugglejinx/owl:latest 这一行,取消注释 build: 段落及其嵌套配置,然后执行 docker compose up -d --build。之后同样用 docker compose exec owl bash 进入容器,激活虚拟环境、安装 Playwright 依赖后运行 xvfb-python examples/run.py。
此外,官方还提供了便捷脚本:进入 .container 目录后,给脚本执行权限并构建镜像,再用一行命令把问题交给 OWL 运行:
cd .container
chmod +x build_docker.sh
./build_docker.sh
# 把你的问题传给 OWL
./run_in_docker.sh "your question"
配置环境变量
OWL 需要调用各类服务,因此必须准备相应的 API Key。可以直接在终端里设置:
# macOS / Linux(Bash / Zsh)
export OPENAI_API_KEY="your-openai-api-key-here"
# Windows CMD
set OPENAI_API_KEY=your-openai-api-key-here
# Windows PowerShell
$env:OPENAI_API_KEY = "your-openai-api-key-here"
注意:直接在终端 export 的环境变量只在当前会话生效。官方更推荐用 .env 文件:把模板复制为 .env(macOS/Linux 用 cp .env_template .env,Windows 用 copy .env_template .env),然后在编辑器里把各 API Key 填进对应字段。对于极简示例 examples/run_mini.py,你只需要配置一个 LLM 的 API Key(例如 OPENAI_API_KEY)即可跑通。
如果在 Docker 里使用 MCP Desktop Commander,还需要执行一次:
npx -y @wonderwhy-er/desktop-commander setup --force-file-protocol
更详细的 Docker 跨平台用法、优化配置与排错说明,见官方的 DOCKER_README_en.md。
使用方法
快速开始
安装完成并配好环境变量后,直接运行:
python examples/run.py
模型要求与多模型运行
OWL 对模型有两个硬性要求:一是必须具备扎实的工具调用(tool calling)能力——模型要能读懂工具描述、生成正确的工具调用、并正确处理工具返回;二是涉及网页交互、图像分析、视频处理的任务,还要求模型具备多模态理解能力,能解读视觉内容和上下文。官方强烈建议使用 OpenAI 模型(GPT-4 及更新版本),因为实验显示其他模型在复杂任务和基准上的表现会明显偏低,尤其是需要高级多模态理解和工具使用的场景。支持哪些模型平台的完整清单,见 CAMEL 模型文档。
官方准备了多个模型的示例脚本,一条命令切换模型后端:
python examples/run_claude.py # Claude
python examples/run_qwen_zh.py # 通义千问(中文)
python examples/run_deepseek_zh.py # DeepSeek(中文)
python examples/run_openai_compatible_model.py # 其他 OpenAI 兼容模型
python examples/run_gemini.py # Gemini
python examples/run_azure_openai.py # Azure OpenAI
python examples/run_ollama.py # Ollama 本地模型
python examples/run_mini.py # 极简版,只需一个 LLM Key
要让 OWL 干自己的任务,修改 examples/run.py 里的 task 即可:
# 定义你自己的任务
task = "Task description here."
society = construct_society(question)
answer, chat_history, token_count = run_society(society)
print(f"\033[94mAnswer: {answer}\033[0m")
要上传文件,把文件路径写进问题里就行:
# 带本地文件的任务,例如文件路径 tmp/example.docx
task = "What is in the given DOCX file? Here is the file path: tmp/example.docx"
society = construct_society(question)
answer, chat_history, token_count = run_society(society)
OWL 会自动调用文档相关工具处理该文件并给出答案。官方给出的可试任务包括:查苹果公司最新股价、分析关于气候变化的近期推文情感、调试一段 Python 代码、总结某篇研究论文的要点、为某个数据集生成可视化图表等。
工具包(Toolkits)能力
OWL 还集成了 MCP(Model Context Protocol,模型上下文协议),为 AI 模型与各类工具/数据源交互提供标准化协议层。使用 MCP 前需要先装 Node.js:Windows 从 Node.js 官网下载安装包并勾选 Add to PATH;Linux 执行 sudo apt install nodejs npm -y;Mac 执行 brew install node。然后安装 Playwright MCP 服务:
npm install -g @executeautomation/playwright-mcp-server
npx playwright install-deps
官方还提供两个 MCP 示例:examples/run_mcp.py 是本地调用的基础演示(需要本地依赖),examples/run_mcp_sse.py 走 SSE 协议连接远程服务(无需本地依赖)。
可用工具包按模态分两类。多模态工具包(要求模型具备多模态能力):BrowserToolkit(浏览器自动化与网页导航交互)、VideoAnalysisToolkit(视频处理与内容分析)、ImageAnalysisToolkit(图像分析与解读)。文本类工具包:AudioAnalysisToolkit(音频处理,需要 OpenAI API)、CodeExecutionToolkit(Python 代码执行与评测)、SearchToolkit(网页搜索,Google / DuckDuckGo / Wikipedia)、DocumentProcessingToolkit(PDF、DOCX 等文档解析)。此外还有一大批专用工具包:ArxivToolkit、GitHubToolkit、GoogleMapsToolkit、GoogleScholarToolkit、MathToolkit、NetworkXToolkit、NotionToolkit、RedditToolkit、SemanticScholarToolkit、SymPyToolkit、WeatherToolkit、DalleToolkit、DataCommonsToolkit、ExcelToolkit、OpenAPIToolkit 等,完整列表见 CAMEL 工具包文档。
自定义工具组合只需修改脚本里的 tools 列表:
tools = [
*BrowserToolkit(headless=False).get_tools(),
*VideoAnalysisToolkit(model=models["video"]).get_tools(),
*AudioAnalysisToolkit().get_tools(),
*CodeExecutionToolkit(sandbox="subprocess").get_tools(),
*ImageAnalysisToolkit(model=models["image"]).get_tools(),
SearchToolkit().search_duckduckgo,
SearchToolkit().search_google,
SearchToolkit().search_wiki,
*ExcelToolkit().get_tools(),
*DocumentProcessingToolkit(model=models["document"]).get_tools(),
*FileWriteToolkit(output_dir="./").get_tools(),
]
官方建议只勾选必要的工具包,这样既能优化性能,也能降低资源占用。
Web 界面
OWL 提供基于 Gradio 构建的本地 Web UI,支持中、英、日三种语言:
python owl/webapp_zh.py # 中文版
python owl/webapp.py # 英文版
python owl/webapp_jp.py # 日文版
Web UI 的功能包括:方便地切换不同模型(OpenAI、Qwen、DeepSeek 等)、在界面里直接配置 API Key 等环境变量、交互式聊天界面与 OWL 智能体对话、查看任务历史与结果。界面完全运行在本地,除了你配置的模型 API 调用之外,不会把数据发送给任何外部服务器。新版 Web UI 经过了重新设计,系统稳定性更强、执行性能更优,即使用户不熟悉命令行,也能通过这个友好的界面直接体验 OWL 的能力。
复现 GAIA 实验
要复现 OWL 的 GAIA 基准成绩:main 分支提供了持续增强版 OWL(工具包升级、稳定性更好),日常使用直接用 main 即可;要复现最初 69.09 分的表现,官方推荐 gaia69 分支:
git checkout gaia69
python run_gaia_workforce_claude.py
这就是当时在 GAIA 上取得榜首成绩的完整配置。
FAQ(官方问答逐条翻译)
问:启动示例脚本后,为什么本地没有看到 Chrome 浏览器窗口? 答:如果 OWL 判断某个任务用搜索、代码执行等非浏览器工具就能完成,就不会启动浏览器。只有当它判断确实需要浏览器交互时,窗口才会出现。
问:应该用哪个 Python 版本? 答:OWL 支持 Python 3.10、3.11、3.12。
问:如何为项目做贡献? 答:阅读 CAMEL 贡献指南,查看开放 issue 列表或新建 issue,然后提交 Pull Request。官方当前列出了一批待贡献 issue(#1915、#2190、#2165、#2121、#1908、#1538、#1481),想认领的话直接在 issue 下留言表明兴趣即可。代码改进、文档更新等各类贡献都欢迎。
问:复现角色扮演实验应该用哪个 CAMEL 版本? 答:gaia58.18 分支里附带了修改版 CAMEL(owl/camel 目录),实验时务必使用这个版本。
问:为什么我的实验结果比论文报告的低? 答:GAIA 基准是在真实世界环境里评测 LLM 智能体,天然带有很大随机性。用户反馈中最常见的问题是智能体因网络原因被某些网页卡住。官方提供了关键词过滤脚本帮你快速筛掉这类失败案例,更多细节可参考技术报告。
社区与引用
OWL 的源码以 Apache 2.0 协议开源。官方邀请所有开发者加入社区,一起探索智能体的 scaling laws(规模化规律):可以通过 Discord、X(@CamelAIOrg)、Reddit 社区 或微信公众号 CamelAIOrg 参与讨论。如果你觉得这个项目有用,欢迎在论文中引用官方给出的 BibTeX:
@misc{hu2025owl,
title={OWL: Optimized Workforce Learning for General Multi-Agent Assistance in Real-World Task Automation},
author={Mengkang Hu and Yuhang Zhou and Wendong Fan and Yuzhou Nie and Bowei Xia and Tao Sun and Ziyu Ye and Zhaoxuan Jin and Yingru Li and Qiguang Chen and Zeyu Zhang and Yifeng Wang and Qianshuo Ye and Bernard Ghanem and Ping Luo and Guohao Li},
year={2025},
eprint={2505.23885},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2505.23885},
}
跳转链接
- 项目仓库:camel-ai/owl
- 基础框架:camel-ai/camel(源码可用
git clone https://github.com/camel-ai/camel.git获取) - 技术报告:arXiv:2505.23885
- 模型与数据集:Hugging Face 合集
- 官方文档:CAMEL Docs
- 演示视频:YouTube 链接