Owl:面向多智能体协作的优化劳动力学习

Skip to content

camel-ai/owl

camel-ai / owl Public

🦉 OWL: Optimized Workforce Learning for General Multi-Agent Assistance in Real-World Task Automation

11.8k stars 1.3k forks Branches Tags Activity

camel-ai/owl

main

Branches Tags

Go to file

Code

Folders and files

Name | Name | Last commit message | Last commit date ---|---|---|--- .container | .container | | assets | assets | | community_usecase | community_usecase | | licenses | licenses | | owl | owl | | .gitignore | .gitignore | | .pre-commit-config.yaml | .pre-commit-config.yaml | | README.md | README.md | | README_zh.md | README_zh.md | | pyproject.toml | pyproject.toml | | requirements.txt | requirements.txt | | run_app.py | run_app.py | | run_app_zh.py | run_app_zh.py | | uv.lock | uv.lock | |

View all files

🦉 OWL: 用于真实世界任务自动化的通用多智能体辅助优化劳动力学习

Documentation Discord X Reddit Wechat Wechat Hugging Face Star Package License

中文阅读 | Community | Installation | Examples | Paper | Citation | Contributing | CAMEL-AI

🏆 OWL 在 GAIA 基准测试中取得了 58.18 的平均分,并在开源框架中排名第一!🏆

🦉 OWL 是一个先进的多智能体协作框架,它突破了任务自动化的界限,构建在 CAMEL-AI Framework 之上。

我们的愿景是彻底改变 AI 智能体协作解决现实世界任务的方式。通过利用动态的智能体交互,OWL 能够在各种领域实现更自然、高效和强大的任务自动化。

📋 目录

🔥 最新动态

🌟🌟🌟 社区征集用例! 🌟🌟🌟

我们邀请社区为 OWL 贡献创新的用例!前十名提交者将获得特别的社区礼物和认可。

了解更多并提交

提交截止日期:2025 年 3 月 31 日

🎬 演示视频

OWL.main.mp4 d106cfbff2c7b75978ee9d5631ebeb75.mp4

✨️ 核心功能

🛠️ 安装

OWL 支持多种安装方法,以适应您的工作流程偏好。选择最适合您的选项。

选项 1:使用 uv (推荐)

# 克隆 github 仓库
git clone https://github.com/camel-ai/owl.git
# 切换到项目目录
cd owl
# 如果您还没有安装 uv,请安装它
pip install uv
# 创建一个虚拟环境并安装依赖
# 我们支持使用 Python 3.10、3.11、3.12
uv venv .venv --python=3.10
# 激活虚拟环境
# 对于 macOS/Linux
source .venv/bin/activate
# 对于 Windows
.venv\Scripts\activate
# 安装 CAMEL 及其所有依赖项
uv pip install -e .
# 完成后退出虚拟环境
deactivate

选项 2:使用 venv 和 pip

# 克隆 github 仓库
git clone https://github.com/camel-ai/owl.git
# 切换到项目目录
cd owl
# 创建一个虚拟环境
# 对于 Python 3.10(也适用于 3.11、3.12)
python3.10 -m venv .venv
# 激活虚拟环境
# 对于 macOS/Linux
source .venv/bin/activate
# 对于 Windows
.venv\Scripts\activate
# 从 requirements.txt 安装
pip install -r requirements.txt --use-pep517

选项 3:使用 conda

# 克隆 github 仓库
git clone https://github.com/camel-ai/owl.git
# 切换到项目目录
cd owl
# 创建一个 conda 环境
conda create -n owl python=3.10
# 激活 conda 环境
conda activate owl
# 选项 1:作为包安装(推荐)
pip install -e .
# 选项 2:从 requirements.txt 安装
pip install -r requirements.txt --use-pep517
# 完成后退出 conda 环境
conda deactivate

设置环境变量

OWL 需要各种 API 密钥才能与不同的服务进行交互。owl/.env_template 文件包含所有必需 API 密钥的占位符,以及注册这些服务的链接。

选项 1:使用 .env 文件 (推荐)

  1. 复制并重命名模板
cd owl
cp .env_template .env
  1. 配置您的 API 密钥:在您喜欢的文本编辑器中打开 .env 文件,并将您的 API 密钥插入到相应的字段中。

注意:对于最小示例 (run_mini.py),您只需要配置 LLM API 密钥(例如,OPENAI_API_KEY)。

选项 2:直接设置环境变量

或者,您可以直接在终端中设置环境变量:

export OPENAI_API_KEY="your-openai-api-key-here"
set OPENAI_API_KEY="your-openai-api-key-here"
$env:OPENAI_API_KEY = "your-openai-api-key-here"

注意:直接在终端中设置的环境变量仅在当前会话中持续存在。

使用 Docker 运行

# 克隆仓库
git clone https://github.com/camel-ai/owl.git
cd owl
# 配置环境变量
cp owl/.env_template owl/.env
# 编辑 .env 文件并填写您的 API 密钥

# 选项 1:直接使用 docker-compose
cd .container
docker-compose up -d
# 在容器内运行 OWL
docker-compose exec owl bash
# 激活虚拟环境
cd .. && source .venv/bin/activate && cd owl
playwright install-deps 
# 运行示例演示脚本
xvfb-python run.py
# 选项 2:使用提供的脚本构建和运行
cd .container
chmod +x build_docker.sh
./build_docker.sh
# 在容器内运行 OWL
./run_in_docker.sh "your question"

有关更详细的 Docker 使用说明,包括跨平台支持、优化配置和故障排除,请参阅 DOCKER_README.md

🚀 快速开始

尝试 MCP (Model Context Protocol) 集成

通过运行我们的示例来体验 MCP 的强大功能,该示例演示了多智能体信息检索和处理:

# 设置 MCP 服务器(一次性设置)
npx -y @smithery/cli install @wonderwhy-er/desktop-commander --client claude
npx @wonderwhy-er/desktop-commander setup
# 运行 MCP 示例
python owl/run_mcp.py

此示例展示了 OWL 智能体如何通过 MCP 协议无缝地与文件系统、Web 自动化和信息检索进行交互。查看 owl/run_mcp.py 以获取完整的实现。

基本用法

安装并设置您的环境变量后,您可以立即开始使用 OWL:

python owl/run.py

使用不同的模型运行

模型要求

支持的模型

有关配置 AI 模型的信息,请参阅我们的 CAMEL 模型文档

注意:为了获得最佳性能,我们强烈建议使用 OpenAI 模型(GPT-4 或更高版本)。我们的实验表明,其他模型在复杂的任务和基准测试中的性能可能会显著降低,尤其是那些需要高级多模态理解和工具使用的任务。

OWL 支持各种 LLM 后端,但功能可能因模型的工具调用和多模态能力而异。您可以使用以下脚本来使用不同的模型运行:

# 使用 Qwen 模型运行
python owl/run_qwen_zh.py
# 使用 Deepseek 模型运行
python owl/run_deepseek_zh.py
# 使用其他 OpenAI 兼容模型运行
python owl/run_openai_compatiable_model.py
# 使用 Azure OpenAI 运行
python owl/run_azure_openai.py
# 使用 Ollama 运行
python owl/run_ollama.py

对于只需要 LLM API 密钥的更简单版本,您可以尝试我们的最小示例:

python owl/run_mini.py

您可以通过修改 run.py 脚本来使用 OWL 智能体运行您自己的任务:

# 定义您自己的任务
question = "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`)
question = "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)
print(f"\033[94mAnswer: {answer}\033[0m")

然后,OWL 将自动调用与文档相关的工具来处理文件并提取答案。

示例任务

以下是一些您可以尝试使用 OWL 完成的任务:

🧰 工具集和能力

模型上下文协议 (MCP)

OWL 的 MCP 集成为 AI 模型与各种工具和数据源交互提供了一种标准化的方式:

尝试我们在 owl/run_mcp.py 中的综合 MCP 示例,以了解这些功能的实际应用!

可用工具集

重要:有效使用工具集需要具有强大的工具调用功能的模型。对于多模态工具集(Web、Image、Video),模型还必须具有多模态理解能力。

OWL 支持可以通过修改脚本中的 tools 列表来自定义的各种工具集:

# 配置工具集
tools = [
  *BrowserToolkit(headless=False).get_tools(), # 浏览器自动化
  *VideoAnalysisToolkit(model=models["video"]).get_tools(),
  *AudioAnalysisToolkit().get_tools(), # 需要 OpenAI Key
  *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(),
]

可用工具集

关键工具集包括:

多模态工具集(需要多模态模型能力)

基于文本的工具集

其他专门的工具集:ArxivToolkit、GitHubToolkit、GoogleMapsToolkit、MathToolkit、NetworkXToolkit、NotionToolkit、RedditToolkit、WeatherToolkit 等。有关完整列表,请参见 CAMEL 工具集文档

自定义您的配置

要自定义可用工具:

# 1. 导入工具集
f