5分钟跑通 CAMEL:从单个 Agent 到多 Agent 角色扮演协作
【免费下载链接】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
CAMEL 是一个基于大模型角色扮演的多智能体框架。它解决的具体问题是:让两个模型分别扮演"用户"和"助手",自己互相下达指令、交付成果,你只给一句需求,不用手写对话,就能拿到完整产出。
快速上手:安装与最小运行
环境准备
Python 3.10 以上即可。默认走 OpenAI 平台的模型,所以 💡 运行前确认环境变量里已有OPENAI_API_KEY。
安装 CAMEL 并跑通最小示例
pip install camel-ai然后新建一个脚本,写入下面这段:
from camel.societies import RolePlaying session = RolePlaying( "Python Programmer", "Stock Trader", task_prompt="Develop a trading bot for the stock market", ) msg = session.init_chat() for _ in range(10): a_resp, u_resp = session.step(msg) print(a_resp.msg.content) msg = a_resp.msg跑起来后你会看到两个角色的对话交替滚动:"Stock Trader"先拆解需求,再逐条下指令;"Python Programmer"逐条回应,一轮轮逼近最终交付物。
刚才那段代码背后发生了什么
输入:你只给了三样东西——两个角色名和一句任务。
内部流转:RolePlaying先根据角色名自动生成双方各自的系统提示词;init_chat()让助手一方先开口"请开始逐条下达指令";此后每次step()完成一轮"用户下指令 → 助手执行"的来回。
输出:每轮的助手消息被打印出来,最终交付物就在最后一条助手消息里。
有两个设计决策值得展开。
为什么对面要放一个"用户":不是让助手一个人发挥。AI User 扮演的是专家角色,持续下指令、提验收要求,交付物才会一轮比一轮贴近任务本身,而不是跑题。
对话终止怎么判断:每次返回都带terminated标志,框架还会识别回复中的CAMEL_TASK_DONE标记词,仓库示例脚本就是在检测到标记词时退出循环的;上面for的 10 轮上限只是兜底。
另外可以初始化时加with_task_specify=True,框架会先把一句话任务展开成更具体的描述,再开始对话。
核心能力拆解:按场景选模块
当你需要用对话跑完一整个任务→ 你只需一句话需求,RolePlaying 完成双角色对话闭环 → 你得到完整对话记录和最终答案,不用手写双方提示词。
当任务复杂到单轮对话装不下→ 用 Workforce 机制:管理器 Agent 把任务拆成子任务、分派给多个工人 Agent 执行 → 子任务结果被自动整合成最终输出。
当 Agent 需要查实时信息或执行代码→ 纯文本对话不够用时,给它挂上 Toolkit(搜索、天气、网页抓取、代码执行) → Agent 在对话中自主决定何时调用工具。
当你要换模型供应商→ 构造 Agent 时传入平台与模型名,比如 Anthropic 的模型 → 业务代码不用动,供应商就能切换。
实际场景:能拿它做什么
客服机器人
- 输入:用户在聊天频道里问产品使用问题
- 过程:Agent 通过 RAG 检索产品文档后组织答复
- 输出:基于文档的回答直接发回频道
落地页制作
- 输入:一句话需求"创建产品 landing page"
- 过程:管理器拆出文案、HTML 编码两个子任务,分派给对应工人
- 输出:整合后可直接打开的 HTML 页面
动态旅行规划
- 输入:目的地、日期、预算
- 过程:Agent 依次查询实时天气与路线信息
- 输出:逐日行程,天气变化时自动调整
踩坑记录与进阶方向
常见卡点 ⚠️
对话打转:两个 Agent 反复围绕同一条指令,白烧 token——没检查terminated或没设轮数上限。解决:每轮判断终止标志,并保留 for 上限兜底。
缺 API Key 直接报错:默认走 OpenAI 平台,没配密钥跑不起来。解决:导出OPENAI_API_KEY,或显式传model参数切到你要用的平台。
产出和任务对不上:一句话需求太模糊,助手会自己猜需求。解决:加with_task_specify=True,让框架先把任务展开成具体描述再开工。
进阶方向
- 自定义角色:自己写角色名与任务描述,直接传给 RolePlaying
- 模型混搭:给 ChatAgent 传(平台, 模型)元组,比如换 Anthropic
- 工具集成:在 camel/toolkits/ 下挑选需要的 Toolkit 挂给 Agent
- 任务分解:在 camel/societies/workforce/ 用 Workforce 处理多子任务场景
示例对话跑通之后,最快的成长方式就是照 examples 里的脚本逐个跑。
- 官方文档
- 示例代码
- 核心源码
【免费下载链接】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),仅供参考