7.3 角色分工与协作框架:AutoGen、MetaGPT、CrewAI、ChatDev


7.3 角色分工与协作框架:AutoGen、MetaGPT、CrewAI、ChatDev

拓扑解决了「谁和谁说话」,但具体「谁负责什么、按什么流程协作」还需要角色分工与框架。这一节讲清多 Agent 的角色设计——经典的经理/程序员/审核员模式、CAMEL 式角色扮演,以及四个主流框架(AutoGen、MetaGPT、CrewAI、ChatDev)的架构哲学与差异。

7.3.1 角色分工的本质:让每个 Agent 知道自己是谁

多 Agent 协作的第一步是角色定义——给每个 Agent 一份清晰的 Profile(第 2.1 节),让它知道:

问题 内容
我是谁 角色(经理/程序员/审核员)
我负责什么 职责范围
我用什么工具 专属工具集
我和谁协作 上游/下游
我何时交班 完成条件

角色定义不清是多 Agent 系统最常见的失败原因——Agent 不知道自己该干啥,要么抢活,要么推诿。

7.3.2 经典角色分工:经理-程序员-审核员

软件工程是多 Agent 协作最典型的领域。经典的分工:

角色 职责 工具
产品经理 理解需求、写 PRD 用户反馈、文档
架构师 系统设计、技术选型 设计工具、技术文档
程序员 写代码、解 bug IDE、代码库
测试员 写测试、找 bug 测试框架
审核员 代码审查、质量把关 审查工具
文档工程师 写文档、教程 文档系统

这种分工的本质:让每个 Agent 专精一职,通过流程串联。MetaGPT、ChatDev 等框架都采用了类似的软件公司式组织。

7.3.3 CAMEL:角色扮演式协作

CAMEL(Communicative Agents, Li et al. 2023)提出了另一种思路:让两个 Agent 通过角色扮演协作完成任务——一个是「用户代理」(提需求),一个是「AI 助手」(响应),通过对话推进。

CAMEL 的工作机制

CAMEL 的精髓是「角色扮演推动任务」:用户代理不断提具体指令,AI 助手响应并产出,两者对话直到完成。任务不是一次性下发,而是在对话中逐步细化。

CAMEL 的「初始 Prompt」

[用户代理 Profile] 你是一个"任务发起者"。你的角色是: - 给 AI 助手下达具体的、可执行的指令 - 不自己解决问题,只负责指挥 - 每次只给一个明确指令 [AI 助手 Profile] 你是一个"任务执行者"。你的角色是: - 严格按用户代理的指令做事 - 完成后报告结果 - 不主动越界 ​

💡 CAMEL 的深刻贡献:它发现了「角色扮演本身就是协作机制」——通过让两个 Agent 扮演互补角色,系统能自主推进任务,无需外部协调者。这种思路后来影响了大量框架(AutoGen 的 User-Agent/Assistant-Agent、ChatDev 的角色对话等)。

7.3.4 AutoGen:微软的通用多 Agent 对话框架

AutoGen(Wu et al. 2023, 微软)是最有影响力的多 Agent 框架之一。它的核心思想:把多 Agent 协作抽象为「可对话的 Agent」集合,通过灵活组合构建复杂系统。

AutoGen 的核心抽象

AutoGen 定义了几种基本 Agent 类型:

Agent 类型 角色
UserProxyAgent 代表人类,可执行代码、调工具
AssistantAgent LLM 驱动,提供建议与代码
GroupChatManager 管理多 Agent 群聊

AutoGen 的工作流

AutoGen 的特点

维度 AutoGen
核心抽象 可对话的 Agent
通信方式 对话(消息传递)
灵活性 极高(自由组合)
编排 通过对话历史自然涌现
适用 通用、研究、原型

💡 AutoGen 的优势是「极灵活」:它不规定协作流程,只提供「Agent 对话」这一基础原语,让开发者自由组合。这种「低抽象、高灵活」的设计,让 AutoGen 成了多 Agent 研究的首选框架。

7.3.5 MetaGPT:SOP 式软件公司

MetaGPT(Hong et al. 2023)走的是另一条路:把人类软件公司的 SOP(标准作业流程)显式编码进多 Agent 系统。

MetaGPT 的核心思想

MetaGPT 认为:人类组织之所以高效,是因为有 SOP——每个角色知道何时做什么、交付什么。把这套 SOP 移植到 Agent,能让多 Agent 系统从「自由对话」走向「工程化协作」。

MetaGPT 的软件公司式组织

MetaGPT 的「标准化产物」

MetaGPT 的精髓在于每个角色都有明确的输入/输出格式:

角色 输入 输出
产品经理 用户需求 PRD(产品需求文档)
架构师 PRD 设计文档
项目经理 设计文档 任务列表
工程师 任务列表 代码
QA 代码 测试报告

这种「结构化交付物」让协作不再是自由对话,而是按 SOP 产出标准件,大幅减少幻觉与扯皮。

MetaGPT vs AutoGen

维度 AutoGen MetaGPT
抽象 可对话 Agent SOP + 角色
流程 自由涌现 显式定义
灵活性 极高 中
可控性 中 高
适用 通用研究 软件工程等有 SOP 的领域

⚠️ AutoGen 与 MetaGPT 代表两种哲学:AutoGen 是「涌现派」——给 Agent 对话能力,让协作自然产生;MetaGPT 是「工程派」——预先定义 SOP,让协作按规范进行。前者灵活但难控,后者可控但僵硬。生产中常根据任务特性选边或混合。

7.3.6 CrewAI:角色与任务的轻量化框架

CrewAI 是一个相对轻量的多 Agent 框架,主打「Crew(团队)+ Task(任务)+ Agent(角色)」三要素。

CrewAI 的核心概念

概念 含义
Crew 一个团队(多个 Agent + 多个 Task)
Agent 角色(Profile + 工具)
Task 任务(描述 + 负责人 + 期望输出)
Process 协作流程(顺序/层级等)

CrewAI 的工作流

CrewAI 的特点:配置驱动、上手快、适合中小型协作。它的抽象比 AutoGen 高(更结构化),比 MetaGPT 低(不强制 SOP),处于中间地带。

7.3.7 ChatDev:聊天式软件开发

ChatDev(Qian et al. 2023)专门为软件开发设计,把软件开发过程建模为多个「聊天」阶段——每个阶段由两个 Agent 对话完成。

ChatDev 的阶段化设计

每个阶段是两个角色 Agent 的对话,对话产出该阶段的交付物(设计稿/代码/测试报告/文档)。

ChatDev 的特点

维度 ChatDev
专注 软件开发
协作 两两对话阶段化
流程 显式定义
类比 瀑布式软件公司

7.3.8 四大框架横向对比

<svg viewBox="0 0 720 380" xmlns="http://www.w3.org/2000/svg"> <!-- 坐标轴 --> <line x1="80" y1="320" x2="680" y2="320" stroke="#475569" stroke-width="2"/> <line x1="80" y1="40" x2="80" y2="320" stroke="#475569" stroke-width="2"/> <text x="680" y="345" font-size="12" fill="#475569" text-anchor="end">灵活性 →</text> <text x="60" y="40" font-size="12" fill="#475569" text-anchor="end" transform="rotate(-90 60 40)">↑ 可控性</text> <!-- 框架点 --> <circle cx="540" cy="100" r="16" fill="#dbeafe" stroke="#2563eb"/> <text x="540" y="105" font-size="12" fill="#1e3a8a" text-anchor="middle" font-weight="bold">AutoGen</text> <text x="540" y="135" font-size="10" fill="#475569" text-anchor="middle">灵活,难控</text> <circle cx="160" cy="100" r="16" fill="#fef9c3" stroke="#ca8a04"/> <text x="160" y="105" font-size="12" fill="#713f12" text-anchor="middle" font-weight="bold">MetaGPT</text> <text x="160" y="135" font-size="10" fill="#475569" text-anchor="middle">SOP,可控</text> <circle cx="350" cy="200" r="16" fill="#dcfce7" stroke="#16a34a"/> <text x="350" y="205" font-size="12" fill="#14532d" text-anchor="middle" font-weight="bold">CrewAI</text> <text x="350" y="235" font-size="10" fill="#475569" text-anchor="middle">中间地带</text> <circle cx="220" cy="160" r="16" fill="#fce7f3" stroke="#db2777"/> <text x="220" y="165" font-size="12" fill="#831843" text-anchor="middle" font-weight="bold">ChatDev</text> <text x="220" y="195" font-size="10" fill="#475569" text-anchor="middle">软件专用</text> <!-- 趋势线 --> <path d="M 160 100 L 540 100" stroke="#94a3b8" stroke-width="1.5" stroke-dasharray="4 4"/> <text x="360" y="60" font-size="13" fill="#475569" text-anchor="middle">灵活性 ↔ 可控性 权衡</text> </svg> ​
框架 抽象 流程 灵活性 可控性 适用
AutoGen 可对话 Agent 涌现 极高 中 通用研究
MetaGPT SOP + 角色 显式 中 高 有 SOP 的领域(软件、报告)
CrewAI Crew + Task 配置驱动 高 中 中小型协作
ChatDev 阶段化对话 显式 低(专用) 高 软件开发

7.3.9 框架选型指南

场景 推荐
研究多 Agent 协作机制 AutoGen
软件开发、有清晰 SOP 的领域 MetaGPT / ChatDev
中小型任务、快速上手 CrewAI
需要极高灵活性 AutoGen
需要稳定可控 MetaGPT
需要平衡 CrewAI

💡 框架选型的核心权衡:灵活性 vs 可控性。AutoGen 灵活但难控,MetaGPT 可控但僵硬,CrewAI 居中。没有最好的框架,只有最匹配场景的框架。第 8.1 节会进一步给出选型决策树。

7.3.10 多 Agent 框架的反模式

反模式 表现 后果 正确做法
角色不清 Agent 不知道干啥 抢活/推诿 清晰 Profile
流程过松 无 SOP 全靠涌现 协作失控 加结构化流程
流程过死 SOP 没有灵活性 死板 关键点保留弹性
Agent 太多 一上来 10+ Agent 协调成本爆炸 按需增加
无中间校验 一错到底 错误放大 关键节点 review
盲目抄框架 不理解就用 落地变形 先理解再选

本节小结

  • 角色分工的本质是给每个 Agent 一份清晰 Profile,让它知道「我是谁、负责什么、和谁协作、何时交班」。角色不清是多 Agent 最常见失败原因。
  • 经典角色分工:经理-程序员-审核员式(软件工程为代表),通过流程串联专精角色。MetaGPT、ChatDev 都采用软件公司式组织。
  • CAMEL 用角色扮演推动任务——用户代理提需求、AI 助手响应,对话即协作。深刻贡献是发现「角色扮演本身就是协作机制」。
  • 四大框架对比:AutoGen(涌现派、灵活难控)、MetaGPT(SOP 派、可控僵硬)、CrewAI(中间地带、配置驱动)、ChatDev(软件专用、阶段化对话)。
  • 框架选型核心权衡:灵活性 vs 可控性。研究用 AutoGen,有 SOP 的领域用 MetaGPT,中小型用 CrewAI,软件开发用 ChatDev。没有最好,只有最匹配。

下一节《7.4 协作 vs 竞争:辩论、投票、市场机制与对抗验证》将打破「协作总是好的」的迷思,讨论竞争模式如何反而提升系统质量。

作者与出处
原作者:会发光的石头的小龙虾
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 会发光的石头的小龙虾 转发
评论区 (0)
U