框架(三)CAMEL 📅 2026/7/19 4:07:04 前面已经学习了AutoGen和AgentScope两个多智能体框架今天继续学习第三个经典框架——CAMEL。与前两个框架相比CAMEL 并没有设计复杂的消息调度或工作流而是提出了一种非常有意思的思想让多个 AI 扮演不同角色通过不断对话自主完成任务。这种角色扮演Role Playing也是 CAMEL 最具代表性的特点。一、什么是 CAMELCAMELCommunicative Agents for Mind Exploration of Large Language Model Society最初的目标就是研究如何让多个 AI 在尽可能少的人类干预下通过自主对话完成复杂任务。例如开发一个股票交易工具AI 用户股票交易员负责提出需求。AI 助理Python 工程师负责实现代码。整个过程就像真实团队协作一样。股票交易员 │ 提出需求 │ ▼ Python 工程师 │ 实现功能 │ 返回结果 │ 继续协作相比 AutoGen 更偏向多 Agent 调度CAMEL 更强调不同角色之间的自然协作。二、CAMEL 的核心思想CAMEL 的设计主要围绕两个概念展开Role Playing角色扮演Inception Prompting引导性提示1、Role Playing角色扮演CAMEL 会为每个 Agent 指定一个明确身份每个角色负责不同工作。例如AI User作家负责规划章节提出写作需求调整整体结构AI Assistant心理学家负责提供专业知识补充理论依据保证内容科学性整个任务就在两个不同领域专家之间不断推进。2、Inception Prompting引导性提示仅仅告诉 AI你是一位心理学家。其实是不够的。CAMEL 会在聊天开始前为两个 Agent 自动生成一份System Prompt其中通常包含自己的角色合作对象是谁当前共同目标回复规则任务结束标志例如你是一名心理学家。 你正在与一位专业作家合作。 共同完成一本关于拖延症心理学的电子书。 任务完成后输出 CAMEL_TASK_DONE这样可以保证整个对话始终围绕同一个目标进行而不会轻易跑题。三、案例AI 协作创作一本电子书下面通过官方案例体验 CAMEL 的角色协作能力。目标创作一本《拖延症心理学》电子书。两个 Agent 分别负责心理学家Psychologist提供专业理论引用研究成果保证科学严谨作家Writer组织文章结构优化语言表达提升可读性最终共同完成一本适合普通读者阅读的科普电子书。四、创建模型首先创建大模型这里以 Qwen 为例。model ModelFactory.create( model_platformModelPlatformType.QWEN, model_typeLLM_MODEL, urlLLM_BASE_URL, api_keyLLM_API_KEY )这里只负责创建模型对象后续 RolePlaying 会直接使用该模型完成对话。五、定义协作任务接下来定义整个协作目标。task_prompt 创作一本关于拖延症心理学的短篇电子书。 要求 1. 内容科学严谨 2. 通俗易懂 3. 包含案例分析 4. 8000~10000字 5. 结构清晰 这里的task_prompt可以理解为整个协作任务的说明书。后续 CAMEL 会根据任务内容自动生成 Prompt引导两个 Agent 围绕这一目标开展讨论。六、创建 RolePlaying接下来创建角色协作会话。role_play_session RolePlaying( assistant_role_name心理学家, user_role_name作家, task_prompttask_prompt, modelmodel, with_task_specifyFalse, )这里指定了两个角色user_role_name作家提出需求assistant_role_name心理学家提供专业内容整个双 Agent 协作环境就创建完成了。七、启动自动协作首先调用input_msg role_play_session.init_chat()这一方法会根据任务和角色自动生成第一轮消息因此无需我们手动编写开场白。随后进入循环assistant_response, user_response role_play_session.step(input_msg)每调用一次step()都会完成一轮完整协作作家提出需求 │ ▼ 心理学家提供专业内容 │ ▼ 进入下一轮讨论随后input_msg assistant_response.msg将上一轮回复作为下一轮输入不断推进整个任务。八、结束协作为了避免无限循环一般有两种结束方式。达到最大轮数chat_turn_limit 30或者检测任务完成标志if CAMEL_TASK_DONE in assistant_response.msg.content: break当任意一个 Agent 输出CAMEL_TASK_DONE时说明任务已经完成程序自动结束。九、整体协作流程整个案例的执行流程如下定义任务 │ 创建两个角色 │ 初始化 RolePlaying │ AI 自动开始对话 │ 不断调用 step() │ 输出 CAMEL_TASK_DONE │ 结束任务整个过程中基本不需要人工参与两个 Agent 会围绕共同目标不断讨论直到完成任务。十、CAMEL 的优缺点优点角色扮演思想简单直观多个 Agent 就像真实团队协作。Prompt 驱动无需复杂工作流即可完成多轮协作。上手简单非常适合内容创作、方案讨论等场景。不足对 Prompt 质量依赖较高Prompt 不合理容易影响协作效果。更适合少量 Agent对大规模多智能体调度支持相对有限。工作流控制能力不如 LangGraph工程化能力也弱于 AgentScope。十一、完整代码DigitalBookWriting.pyfrom colorama import Fore from camel.societies import RolePlaying from camel.utils import print_text_animated from camel.models import ModelFactory from camel.types import ModelPlatformType from dotenv import load_dotenv import os load_dotenv() LLM_API_KEY os.getenv(LLM_API_KEY) LLM_BASE_URL os.getenv(LLM_BASE_URL) LLM_MODEL os.getenv(LLM_MODEL) #创建模型,在这里以Qwen为例,调用的百炼大模型平台API model ModelFactory.create( model_platformModelPlatformType.QWEN, model_typeLLM_MODEL, urlLLM_BASE_URL, api_keyLLM_API_KEY ) # 定义协作任务 task_prompt 创作一本关于拖延症心理学的短篇电子书目标读者是对心理学感兴趣的普通大众。 要求 1. 内容科学严谨基于实证研究 2. 语言通俗易懂避免过多专业术语 3. 包含实用的改善建议和案例分析 4. 篇幅控制在8000-10000字 5. 结构清晰包含引言、核心章节和总结 print(Fore.YELLOW f协作任务:\n{task_prompt}\n) # 初始化角色扮演会话 role_play_session RolePlaying( assistant_role_name心理学家, user_role_name作家, task_prompttask_prompt, modelmodel ) print(Fore.CYAN f具体任务描述:\n{role_play_session.task_prompt}\n) # 开始协作对话 chat_turn_limit, n 30, 0 input_msg role_play_session.init_chat() while n chat_turn_limit: n 1 assistant_response, user_response role_play_session.step(input_msg) print_text_animated(Fore.BLUE f作家:\n\n{user_response.msg.content}\n) print_text_animated(Fore.GREEN f心理学家:\n\n{assistant_response.msg.content}\n) # 检查任务完成标志 if CAMEL_TASK_DONE in user_response.msg.content: print(Fore.MAGENTA ✅ 电子书创作完成) break input_msg assistant_response.msg print(Fore.YELLOW f总共进行了 {n} 轮协作对话)requirements.txtcode/chapter6/CAMEL/requirements.txt总结CAMEL 最大的特点就是通过Role Playing角色扮演和Inception Prompting引导性提示实现多智能体协作。相比 AutoGen它没有复杂的调度机制而是让不同角色通过持续对话自然完成任务相比 AgentScope它更加轻量代码也更加简洁。如果你的应用场景偏向内容创作、方案设计、头脑风暴等需要多个角色共同协作的任务那么 CAMEL 是一个非常值得学习的多智能体框架。