从单模型到智能体团队:CAMEL 多智能体框架实操笔记
【免费下载链接】camel🐫 CAMEL: The first and the best multi-agent framework. Finding the Scaling Law of Agents. https://www.camel-ai.org项目地址: https://gitcode.com/GitHub_Trending/ca/camel
单个大模型搞不定复杂任务时,常见做法是把需求全塞进 prompt 里碰运气,产出却很难控制。CAMEL 换了一条路:把任务拆给多个角色(角色扮演,让 AI 扮演指定专业身份并互相讨论),由几个智能体协作完成。下面带你从安装到第一次跑通多智能体协作。
设计意图:用角色扮演代替固定工作流
多数工作流引擎要求你先画出 DAG(有向无环图,即任务依赖的先后顺序图),智能体才能执行。CAMEL 反其道而行:你用一句自然语言描述任务,由模型自己决定拆成哪些子任务、分给谁、按什么顺序执行。
这个 trade-off 很明确:
- 好处是每来一个新任务都不用写编排配置,一句话需求就能启动
- 代价是执行路径不确定,同样输入两次运行可能拆出不同子任务
- 缓解手段是智能体保持有状态记忆(agent 会保留历史上下文),加上共享的任务通道,路径跑偏时能靠上下文纠回
它选择"让模型来规划"而不是"让工程师来规划",因为目标场景是研究和快速验证,任务类型每天都在变。如果你的流程要求 100% 可复现,固定编排工具更合适,CAMEL 不是为这个目标设计的。
机制拆解:角色扮演终止控制与 workforce 任务分配
RolePlaying:两个角色把对话聊完为止
问题:两个智能体一旦开口,容易掉进三类坑——角色翻转(助理开始说用户的话)、重复追问同一句、消息无限循环。
设计:CAMEL 的RolePlaying会话固定只有assistant_role_name(执行方)和user_role_name(需求方)两个角色,系统提示词由模板统一生成,可再叠加task specify(澄清模糊需求)与task planner(生成执行计划)两个可选环节;会话命中预设终止条件或到达轮数上限即停。
效果:你只交代两个角色名加一句任务描述,对话循环、提示词生成、结束判定全部由框架接管。核心实现在 camel/societies/role_playing.py。
图:CAMEL 多智能体角色扮演框架,负责处理角色翻转、指令重复、劣质回复与对话终止这四类问题
Workforce:一句需求如何驱动多个智能体分工
问题:单对角色扮演只有两个角色,而"给产品做个落地页"这种任务需要写内容、写 HTML、整合结果等多方配合。
设计:Workforce类用树形结构组织协作,源码在 camel/societies/workforce/:
- 根节点(Manager):
coordinator_agent负责分配任务,task_agent负责拆分子任务,最后整合结果 - Channel(任务通道):每块"黑板"记录子任务的发送方、接收方、结果与依赖关系
- 叶子节点(Workers):分
SingleAgentWorker(单个智能体)和RolePlayingWorker(直接复用上一节的双角色会话)
最有价值的是失败恢复:下图流程里,manager 把任务 A.2(写 HTML)分给内容写作者,对方接手后发现做不了,manager 不会报错,而是动态创建一个 code writer 新 worker重新指派,并自动从通道里取回依赖项(任务 A.1 的文案)再开工。
图:CAMEL Workforce 的 18 步任务流,覆盖用户提需求、任务拆解、通道分配、worker 失败重派与结果汇总
跑通路径:安装依赖、配置模型、启动第一次协作 🔧
- 安装依赖:CAMEL 要求 Python 3.10–3.14,已发布到 PyPI,直接装发布版最快:
pip install 'camel-ai[all]'- (可选)克隆仓库:想读示例和源码时用源码方式:
git clone https://gitcode.com/GitHub_Trending/ca/camel cd camel && pip install -e '.[all]'- 配置模型:用环境变量设置 API Key,各模型平台的对接参数集中在 camel/configs/,OpenAI、Anthropic、DeepSeek 等都有现成配置:
export OPENAI_API_KEY='your_key_here'- 运行最小协作示例:
from camel.societies import RolePlaying society = RolePlaying(assistant_role_name="Python programmer", user_role_name="stock trader", task_prompt="develop a stock trading bot") society.run(max_turns=3)跑起来后两个不同角色的智能体会围绕交易机器人展开对话。把task_prompt和两个角色名换成你自己的需求,就是一次新的协作;更多可直接运行的脚本在 examples/。
复用场景:同一套模式怎么搬到客服、行程与金融分析
- 客服知识问答:用
RolePlayingWorker搭建,user 角色扮客户、assistant 角色扮客服并挂上检索工具,数据流为:客户提问 → 检索内部知识库 → 生成答复 → 确认解决,全程轨迹留在 workforce 日志里可审计 - 动态行程规划:参考 examples/workforce/role_playing_with_agents.py,"Searcher" 角色持有搜索、天气、地图工具包负责调研,"planner" 与 "tour guide" 两个单智能体负责排行程,manager 把"调研巴黎并规划游览"自动拆成两个阶段
图:CAMEL 多智能体协作的实际案例,多个智能体结合天气与交通等实时信息规划行程
- 金融数据分析:搭一个 workforce,worker 分别负责行情拉取、趋势分析、报告生成,由 coordinator 整合成最终输出;同构的做法可对照 docs/cookbooks/applications/ 里的客服机器人系列示例,把"检索 + 答复"换成"取数 + 分析"即可
资源入口
- 官方文档:docs/
- 示例代码:examples/
- 核心源码:camel/societies/
【免费下载链接】camel🐫 CAMEL: The first and the best multi-agent framework. Finding the Scaling Law of Agents. https://www.camel-ai.org项目地址: https://gitcode.com/GitHub_Trending/ca/camel
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考