Skip to content

Latest commit

 

History

History
575 lines (418 loc) · 33.9 KB

File metadata and controls

575 lines (418 loc) · 33.9 KB


🐫 CAMEL 是一个开源社区,致力于探索智能体的规模化规律。我们相信,在大规模条件下研究这些智能体,可以为其行为、能力以及潜在风险提供宝贵的洞见。为了推动该领域的研究,我们实现并支持多种类型的智能体、任务、提示词、模型和模拟环境。


加入我们(Discord微信),一起突破智能体规模化规律研究的边界。

🌟 在 GitHub 上为 CAMEL 点亮 Star,第一时间获取最新发布信息。

Star

CAMEL 框架设计原则

🧬 可进化性

该框架使多智能体系统能够通过生成数据和与环境交互不断进化。这种进化可以由带有可验证奖励的强化学习或监督学习驱动。

📈 可扩展性

该框架旨在支持拥有数百万智能体的系统,确保在大规模下实现高效的协作、通信和资源管理。

💾 有状态性

智能体保持有状态的记忆,使其能够与环境进行多步交互,并高效应对复杂任务。

📖 代码即提示

每一行代码和注释都可以作为智能体的提示。代码应当书写清晰、易读,确保人类和智能体都能有效理解。


为什么在研究中选择 CAMEL?

我们是一个由社区驱动的研究团体,汇聚了 100 多位研究人员,致力于推动多智能体系统的前沿研究。 全球各地的研究者选择在研究中使用 CAMEL,基于以下原因。

大规模智能体系统 可模拟多达 100 万个智能体,用于研究复杂多智能体环境中的涌现行为和规模规律。
动态通信 支持智能体之间的实时交互,促进无缝协作以应对复杂任务。
有状态记忆 赋予智能体保留和利用历史上下文的能力,从而在长期交互中提升决策质量。
支持多种基准测试 利用标准化基准严格评估智能体性能,确保结果的可复现性和可靠比较。
支持多类型智能体 可使用多种角色、任务、模型和环境,支持跨学科实验与多样化研究应用。
数据生成与工具集成 自动化生成大规模结构化数据集,并与多种工具无缝集成,加速合成数据生成和研究流程。

你可以用 CAMEL 做什么?

1. 数据生成

2. 任务自动化

3. 世界模拟


快速开始

安装 CAMEL 非常简单,因为它已在 PyPI 上提供。只需打开终端并运行:

pip install camel-ai

从 ChatAgent 入手

本示例演示如何使用 CAMEL 框架创建一个 ChatAgent,并使用 DuckDuckGo 执行搜索查询。

  1. 安装 tools 包:
pip install 'camel-ai[web_tools]'
  1. 设置你的 OpenAI API key:
export OPENAI_API_KEY='your_openai_api_key'
  1. 运行以下 Python 代码:
from camel.models import ModelFactory
from camel.types import ModelPlatformType, ModelType
from camel.agents import ChatAgent
from camel.toolkits import SearchToolkit

model = ModelFactory.create(
  model_platform=ModelPlatformType.OPENAI,
  model_type=ModelType.GPT_4O,
  model_config_dict={"temperature": 0.0},
)

search_tool = SearchToolkit().search_duckduckgo

agent = ChatAgent(model=model, tools=[search_tool])

response_1 = agent.step("What is CAMEL-AI?")
print(response_1.msgs[0].content)
# CAMEL-AI is the first LLM (Large Language Model) multi-agent framework
# and an open-source community focused on finding the scaling laws of agents.
# ...

response_2 = agent.step("What is the Github link to CAMEL framework?")
print(response_2.msgs[0].content)
# The GitHub link to the CAMEL framework is
# [https://github.com/camel-ai/camel](https://github.com/camel-ai/camel).
  1. (可选)开启模型请求/响应日志:
export CAMEL_MODEL_LOG_ENABLED=true
export CAMEL_MODEL_LOG_MODEL_CONFIG_ENABLED=true
export CAMEL_LOG_DIR=camel_logs
  • CAMEL_MODEL_LOG_ENABLED:开启请求/响应 JSON 日志。
  • CAMEL_MODEL_LOG_MODEL_CONFIG_ENABLED:控制是否记录 request.model_config_dict。未设置时,默认跟 CAMEL_MODEL_LOG_ENABLED 保持一致。
  • CAMEL_LOG_DIR:日志输出目录(默认:camel_logs)。
  • 日志以 UTF-8 JSON 写入,中文、日文、阿拉伯语等多语言内容可读, 不会出现大量 Unicode 转义字符。

有关更详细的说明和其他配置选项,请参阅安装部分

运行之后,您可以访问 docs.camel-ai.org 探索我们的 CAMEL 技术栈和操作手册,构建强大的多智能体系统。

我们提供了一个 Google Colab 演示,展示了两个 ChatGPT 智能体之间的对话:他们分别扮演 Python 程序员和股票交易员的角色,共同合作开发股票交易机器人。

探索不同类型的智能体、它们的角色以及应用场景。

寻求帮助

如果在设置 CAMEL 时遇到任何问题,请通过 CAMEL Discord 与我们联系。


技术栈

关键模块

用于构建、运行和增强 CAMEL-AI 智能体及智能体社会的核心组件和工具。

模块 描述
Agents 核心智能体架构与行为,用于自主运行。
Agent Societies 构建和管理多智能体系统及协作的组件。
Data Generation 合成数据创建与增强的工具和方法。
Models 智能体模型架构及定制选项。
Tools 用于智能体专用任务的工具集成。
Memory 智能体状态管理的记忆存储与检索机制。
Storage 智能体数据和状态的持久化存储方案。
Benchmarks 性能评估与测试框架。
Interpreters 代码与指令解释能力。
Data Loaders 数据导入与预处理工具。
Retrievers 知识检索与 RAG(检索增强生成)组件。
Runtime 执行环境与进程管理。
Human-in-the-Loop 支持人工监督与干预的交互组件。

研究

我们认为,对这些智能体进行大规模研究可以深入了解它们的行为、能力及潜在风险。

探索我们的研究项目:

与我们共同研究

我们诚挚地邀请您使用 CAMEL 开展有影响力的研究。

严谨的研究需要时间和资源。我们是一个由社区驱动的研究团队,拥有 100 多名研究人员,致力于探索多智能体系统的前沿研究。加入我们正在进行的项目或与我们一起测试新想法,通过邮箱联系我们 获取更多信息。

Partners

合成数据集

1. 使用多种 LLM 作为后端

更多详情请参阅我们的 模型文档

数据(托管于 Hugging Face)

数据集 聊天格式 指令格式 聊天格式(翻译版)
AI Society 聊天格式 指令格式 聊天格式(翻译版)
Code 聊天格式 指令格式 x
Math 聊天格式 x x
Physics 聊天格式 x x
Chemistry 聊天格式 x x
Biology 聊天格式 x x

2. 指令与任务可视化

数据集 指令 任务
AI Society 指令 任务
Code 指令 任务
Misalignment 指令 任务

使用手册(Cookbooks)

提供关于在 CAMEL-AI 智能体及智能体社会中实现特定功能的实用指南与教程。

1. 基础概念

手册 描述
创建您的第一个智能体 构建第一个智能体的逐步指南。
创建您的第一个智能体社会 学习构建协作型智能体社会。
消息手册 智能体消息处理的最佳实践。

2. 高级功能

手册 描述
工具手册 集成工具以增强功能。
记忆手册 在智能体中实现记忆系统。
RAG 手册 检索增强生成(RAG)的操作指南。
图谱 RAG 手册 利用知识图谱实现 RAG。
使用 AgentOps 跟踪 CAMEL 智能体 管理与跟踪智能体操作的工具。

3. 模型训练与数据生成

手册 描述
使用 CAMEL 生成数据并用 Unsloth 微调 学习如何使用 CAMEL 生成数据,并用 Unsloth 高效微调模型。
使用真实函数调用与 Hermes 格式生成数据 探索如何通过真实函数调用和 Hermes 格式生成数据。
CoT 数据生成并上传至 Huggingface 学习如何生成 CoT 数据并无缝上传到 Huggingface。
使用 CAMEL 和 Unsolth 生成 CoT 数据并微调 Qwen 探索如何使用 CAMEL 生成 CoT 数据,并结合 Unsolth 对 Qwen 进行微调,同时将数据和模型上传至 Huggingface。

4. 多智能体系统与应用

手册 描述
报告与知识图谱生成的角色扮演爬虫 创建角色扮演智能体进行数据爬取与报告生成。
使用 Workforce 构建黑客松评审委员会 构建协作评审团队的智能体系统。
动态知识图谱角色扮演:多智能体系统 构建动态、时序感知的金融知识图谱,处理财报、新闻与论文,帮助交易员分析数据、识别关系并发现市场洞察,同时通过多样化元素节点去重优化图谱结构。
使用 Agentic RAG 构建 Discord 客服机器人 学习如何使用 Agentic RAG 构建强大的 Discord 客服机器人。
使用本地模型构建 Discord 客服机器人 学习如何使用支持本地部署的 Agentic RAG 构建 Discord 客服机器人。

5. 数据处理

手册 描述
视频分析 智能体在视频数据分析中的技术与方法。
使用 Firecrawl 从网站获取数据的三种方法 探索通过 Firecrawl 从网站提取和处理数据的三种方法。
创建可处理 PDF 的 AI 智能体 学习如何使用 Chunkr 和 Mistral AI 创建可处理 PDF 的智能体。

真实场景应用

展示 CAMEL 多智能体框架在基础设施自动化、生产力工作流程、检索增强对话、智能文档/视频分析以及协作研究中创造实际商业价值的案例。

1 基础设施自动化

用例 描述
ACI MCP 展示 CAMEL 多智能体框架在基础设施自动化、生产力工作流程、检索增强对话、智能文档/视频分析及协作研究中创造实际商业价值的真实案例。
Cloudflare MCP CAMEL 智能体动态管理 Cloudflare 资源,实现可扩展且高效的云安全与性能优化。

2 生产力与业务工作流程

用例 描述
Airbnb MCP 协调智能体优化和管理 Airbnb 房源及房东运营。
PPTX 工具包用例 (PPTX Toolkit Usecase) 通过多智能体协作分析 PowerPoint 文档并提取结构化洞见。

3 检索增强多智能体聊天

用例 描述
与 GitHub 聊天 (Chat with GitHub) 通过 CAMEL 智能体利用 RAG 风格工作流查询和理解 GitHub 代码库,加速开发者入职和代码导航。
与 YouTube 聊天 (Chat with YouTube) 会话智能体提取并总结视频字幕,加快内容理解和再利用。

4 视频与文档智能

用例 描述
YouTube OCR 智能体对视频截图进行 OCR 识别,概括视觉内容,支持媒体监控和合规检查。
Mistral OCR CAMEL 智能体结合 Mistral 进行文档 OCR 分析,减少文档理解工作流程中的人工操作。

5 研究与协作

用例 描述
多智能体研究助手 (Multi-Agent Research Assistant) 模拟一支由研究智能体组成的团队协作进行文献综述,提高探索性分析和报告的效率。

🗓️ 活动

我们积极参与各类社区活动,包括:

  • 🎙️ 社区会议 — 每周与 CAMEL 团队的线上同步
  • 🏆 竞赛 — CAMEL 主办的黑客松、悬赏任务和编程挑战
  • 🤝 志愿者活动 — 贡献代码、文档整理及导师指导
  • 🌍 大使项目 — 在您的大学或本地技术团体中代表 CAMEL

想要主办或参与 CAMEL 活动?加入我们的 Discord,或成为 大使计划 的一员。

为 CAMEL 做贡献

对于希望贡献代码的朋友,我们非常感谢您对我们开源项目的支持。请花一点时间阅读我们的 贡献指南,以便顺利开始合作之旅。🚀

我们也欢迎您通过社交媒体、活动或会议分享 CAMEL,帮助其成长。您的支持将产生巨大的影响!

贡献者

使用 contrib.rocks 制作。


致谢

特别感谢 Nomic AI 为我们提供了其数据集探索工具(Atlas)的扩展访问权限。

我们还要感谢 Haya Hammoud 设计了我们项目的初始徽标。

我们实现了来自其他研究工作的优秀创意,供您构建、比较和定制智能体。如果您使用了其中的任何模块,请务必引用原始作品:

许可协议

该源码遵循 Apache 2.0 许可证。

引用

@inproceedings{li2023camel,
  title={CAMEL: Communicative Agents for "Mind" Exploration of Large Language Model Society},
  author={Li, Guohao and Hammoud, Hasan Abed Al Kader and Itani, Hani and Khizbullin, Dmitrii and Ghanem, Bernard},
  booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
  year={2023}
}

这是一个如何引用我们工作的示例:

We use the CAMEL framework \cite{li2023camel} to develop the agents used in our experiments.

社区与联系方式

如需更多信息,请联系:camel-ai@eigent.ai

  • GitHub Issues: 报告 bug、提交功能请求以及跟踪开发进度。提交 Issue

  • Discord: 获取实时支持,与社区交流,并保持最新动态。加入我们

  • X(Twitter): 获取更新、AI 见解和重要公告。关注我们

  • 大使项目(Ambassador Project): 推广 CAMEL-AI、举办活动并贡献内容。了解更多

  • 微信社区: 扫描下方二维码加入我们的微信社区。

    WeChat QR Code