多智能体工作流
课程简介
多 Agent 协作、角色分工、通信协议与冲突解决。
🎬 本课程视频:Agentic AI — AI 智能体设计模式
多智能体工作流:团队的力量
一、为什么需要多智能体系统?
单个智能体能力再强也有天花板。一个智能体既要理解用户需求,又要检索信息,还要生成高质量内容,同时自我检查质量——这些任务对同一个模型来说可能顾此失彼。
多智能体系统的核心理念是分工协作:让不同的智能体扮演不同的角色,各自专注于自己擅长的领域,通过结构化的通信协议协同工作。这就像软件开发团队:产品经理负责需求,设计师负责界面,工程师负责编码,测试工程师负责质量。
二、典型架构与角色设计
2.1 四角色架构
一个经过实践验证的多智能体架构包含四个基础角色:
1. 管理者 Agent(Manager)
- 职责:接收用户请求,分解任务,分配任务给合适的 Agent,协调执行顺序,处理冲突,合并最终成果
- 能力需求:全局规划能力强,理解每个 Agent 的能力边界
- 关键能力:任务分解与分配、进度跟踪、冲突仲裁
2. 执行者 Agent(Worker)
- 职责:执行具体的子任务,如代码编写、数据检索、内容生成
- 能力需求:在特定领域有专长,能够高质量完成任务
- 关键能力:领域专业知识、工具使用能力
3. 审查者 Agent(Reviewer)
- 职责:检查执行者的输出质量,发现错误和问题,提供改进建议
- 能力需求:批判性思维强,能够准确识别问题
- 关键能力:质量判断、错误检测、改进建议生成
4. 集成者 Agent(Integrator)
- 职责:将各执行者的成果合并为统一的最终交付物,确保风格一致、逻辑连贯
- 能力需求:整体把控能力强,能够协调多个子成果
- 关键能力:内容整合、风格统一、冲突消解
2.2 角色配置原则
不是所有系统都需要四个角色。角色配置应基于任务复杂度:
- 简单任务(单轮问答):单一 Agent 即可
- 中等复杂度(内容生成):执行者 + 审查者
- 复杂任务(多步骤项目):管理者 + 多个执行者 + 审查者 + 集成者
三、通信协议设计
通信协议是多智能体系统的关键基础设施。我们需要一种标准化的消息格式,让不同角色能够相互理解和协作。
3.1 消息格式
{
"message_id": "msg_20240727_001",
"sender": "manager_agent",
"receiver": "worker_agent_code",
"message_type": "task_assignment",
"content": {
"task_id": "task_003",
"description": "实现用户登录功能的后端接口",
"requirements": [
"使用 Python FastAPI 框架",
"支持 JWT Token 认证",
"包含输入参数校验"
],
"dependencies": ["task_001", "task_002"],
"deadline": "2026-07-28T18:00:00Z"
},
"timestamp": "2026-07-27T10:30:00Z",
"priority": "high",
"conversation_id": "conv_20240727_proj1"
}
3.2 消息类型
- task_assignment:分配新任务
- task_update:报告任务进展
- task_complete:任务完成通知
- review_request:请求质量审查
- review_result:审查结果反馈
- issue_report:报告问题
- resolution_request:请求冲突仲裁
- status_query:状态查询
3.3 通信模式
点对点通信:两个 Agent 之间直接交换信息。如执行者向审查者发送审查请求。
广播通信:一个 Agent 向所有其他 Agent 发送信息。如管理者广播项目状态更新。
层级通信:按照组织层级结构通信。下级的消息通过管理者转发。
四、冲突解决机制
在多智能体系统中,冲突不可避免。审查者可能发现执行者的输出有问题,两个执行者可能给出矛盾的信息,管理者可能做出低效的分配决策。
4.1 冲突类型
- 质量冲突:审查者认为输出质量不达标
- 事实冲突:两个执行者给出矛盾的事实信息
- 资源冲突:多个执行者争用同一工具或 API
- 优先级冲突:对任务优先级判断不一致
4.2 解决策略
退回修改:当审查者发现问题时,将任务退回给执行者并附上修改建议。适用于问题明确、修改范围可控的场景。
升级仲裁:将冲突升级给管理者 Agent 进行裁决。适用于执行者和审查者无法达成一致的场景。
辩论式协作:让两个持有不同观点的 Agent 进行结构化辩论,各自陈述理由,然后由第三个 Agent(裁决者)或管理者选择最优方案。实践表明,辩论式协作可以显著提升决策质量。
投票机制:在涉及多个执行者时,对候选方案进行投票,选择多数支持的意见。
五、实际案例:多智能体代码审查系统
class MultiAgentCodeReview:
'''多智能体代码审查系统'''
def __init__(self):
self.agents = {
"manager": Agent(role="manager", system_prompt="你是项目管理者..."),
"developer": Agent(role="developer", system_prompt="你是 Python 开发专家..."),
"reviewer": Agent(role="reviewer", system_prompt="你是代码审查专家..."),
"security": Agent(role="security", system_prompt="你是安全分析专家..."),
"tester": Agent(role="tester", system_prompt="你是测试专家...")
}
def review_code(self, requirement):
# 1. 管理者分解需求
tasks = self.agents["manager"].decompose(requirement)
# 2. 开发者编写代码
code = self.agents["developer"].implement(tasks)
# 3. 并行审查
review_results = []
for reviewer in ["reviewer", "security", "tester"]:
result = self.agents[reviewer].review(code)
review_results.append(result)
# 4. 冲突处理
if has_conflicts(review_results):
code = self.resolve_conflicts(code, review_results)
# 5. 集成者生成最终报告
final_report = self.agents["manager"].synthesize(code, review_results)
return final_report
def resolve_conflicts(self, code, reviews):
'''辩论式冲突解决'''
# 收集所有问题和修改建议
issues = collect_issues(reviews)
# 如果只有一个问题,直接修复
if len(issues) == 1:
return self.apply_fix(code, issues[0])
# 多个问题:管理者综合评估后给出最终方案
resolution = self.agents["manager"].arbitrate(code, issues)
return self.apply_resolution(code, resolution)
六、多智能体系统的最佳实践
6.1 Token 管理
多智能体系统意味着多个 Agent 各自消耗 Token。控制成本的方法是:
- 共享相同的模型实例,只在提示词和记忆上区分角色
- 使用较便宜的小模型执行简单任务
- 设定每个 Agent 的最大 Token 消耗预算
6.2 记忆管理
每个 Agent 应该有独立的记忆空间,但系统需要一个共享的记忆区域用于全局状态协调。推荐的结构:
全局记忆:项目上下文、共享事实、执行进度
├── Agent A 私有记忆:A 的对话历史、A 的工作结果
├── Agent B 私有记忆:B 的对话历史、B 的工作结果
└── Agent C 私有记忆:C 的对话历史、C 的工作结果
6.3 可观测性
多智能体系统比单一 Agent 更难调试。建议:
- 记录所有 Agent 之间的消息(通信日志)
- 跟踪每个任务的完整执行链路(任务追踪)
- 记录关键决策及其理由(决策日志)
- 可视化 Agent 间的交互关系
七、总结
多智能体系统通过角色分工、标准化通信协议和冲突解决机制,实现了超越单一 Agent 的能力。四角色架构(管理、执行、审查、集成)是一个经过验证的起点,通信协议和冲突解决机制决定了系统的协作效率。
实践表明,多智能体系统在需要多角度分析、质量要求高、步骤复杂的任务场景中表现尤为突出,是构建生产级 AI 应用的重要架构模式。
七、实战案例:多智能体代码审查系统
我们来构建一个完整的多智能体代码审查系统。该系统包含四个智能体:需求分析师、开发者、测试者和集成者。
7.1 需求分析师
analyst_prompt = """你是需求分析师。你的职责是:
1. 理解用户的功能需求
2. 将需求拆解为详细的功能点
3. 标注功能点的优先级和依赖关系
4. 输出需求规格文档
"""
7.2 开发者
developer_prompt = """你是 Python 开发专家。你的职责是:
1. 基于需求规格编写代码
2. 遵循 PEP 8 编码规范
3. 包含完整的错误处理和类型注解
4. 为关键函数编写文档字符串
"""
7.3 测试者
tester_prompt = """你是 QA 测试工程师。你的职责是:
1. 审查代码的功能正确性
2. 检查边界条件和异常情况
3. 检查性能和安全问题
4. 编写测试用例并运行
"""
7.4 集成者
integrator_prompt = """你是系统集成工程师。你的职责是:
1. 整合所有模块的代码
2. 确保模块接口兼容
3. 编写系统维度的测试
4. 输出完整的系统文档
"""
八、多智能体系统的常见陷阱
- 过度沟通:智能体之间的不必要消息造成 Token 浪费。解决方案:限定消息长度和数量。
- 角色混淆:智能体逐渐偏离预设角色。解决方案:每次消息附带原始系统提示词摘要。
- 回声室效应:智能体相互确认错误假设。解决方案:引入外部验证。
- 协调超载:太多智能体导致管理开销过大。研究表明 3-5 个是黄金数量。
九、总结
多智能体协作模式通过角色分工和结构化通信,实现了 1+1 > 2 的团队智能效果。
关键要点回顾:
- 典型架构:管理者 + 执行者 + 审查者 + 集成者
- 通信协议:标准化的消息格式
- 冲突解决:退回修改、升级仲裁、辩论式协作
- 独立配置:每个智能体有自己的提示词、工具集和记忆
- 成本与收益的平衡:3-5 个智能体通常是最优选择
七、实战案例:多智能体代码审查系统
我们来构建一个完整的多智能体代码审查系统。该系统包含四个智能体:需求分析师、开发者、测试者和集成者。
7.1 需求分析师
analyst_prompt = """你是需求分析师。你的职责是:
1. 理解用户的功能需求
2. 将需求拆解为详细的功能点
3. 标注功能点的优先级和依赖关系
4. 输出需求规格文档
"""
7.2 开发者
developer_prompt = """你是 Python 开发专家。你的职责是:
1. 基于需求规格编写代码
2. 遵循 PEP 8 编码规范
3. 包含完整的错误处理和类型注解
4. 为关键函数编写文档字符串
"""
7.3 测试者
tester_prompt = """你是 QA 测试工程师。你的职责是:
1. 审查代码的功能正确性
2. 检查边界条件和异常情况
3. 检查性能和安全问题
4. 编写测试用例并运行
"""
7.4 集成者
integrator_prompt = """你是系统集成工程师。你的职责是:
1. 整合所有模块的代码
2. 确保模块接口兼容
3. 编写系统维度的测试
4. 输出完整的系统文档
"""
八、多智能体系统的常见陷阱
- 过度沟通:智能体之间的不必要消息造成 Token 浪费。解决方案:限定消息长度和数量。
- 角色混淆:智能体逐渐偏离预设角色。解决方案:每次消息附带原始系统提示词摘要。
- 回声室效应:智能体相互确认错误假设。解决方案:引入外部验证。
- 协调超载:太多智能体导致管理开销过大。研究表明 3-5 个是黄金数量。
九、总结
多智能体协作模式通过角色分工和结构化通信,实现了 1+1 > 2 的团队智能效果。
关键要点回顾:
- 典型架构:管理者 + 执行者 + 审查者 + 集成者
- 通信协议:标准化的消息格式
- 冲突解决:退回修改、升级仲裁、辩论式协作
- 独立配置:每个智能体有自己的提示词、工具集和记忆
- 成本与收益的平衡:3-5 个智能体通常是最优选择
七、实战案例:多智能体代码审查系统
我们来构建一个完整的多智能体代码审查系统。该系统包含四个智能体:需求分析师、开发者、测试者和集成者。
7.1 需求分析师
analyst_prompt = """你是需求分析师。你的职责是:
1. 理解用户的功能需求
2. 将需求拆解为详细的功能点
3. 标注功能点的优先级和依赖关系
4. 输出需求规格文档
"""
7.2 开发者
developer_prompt = """你是 Python 开发专家。你的职责是:
1. 基于需求规格编写代码
2. 遵循 PEP 8 编码规范
3. 包含完整的错误处理和类型注解
4. 为关键函数编写文档字符串
"""
7.3 测试者
tester_prompt = """你是 QA 测试工程师。你的职责是:
1. 审查代码的功能正确性
2. 检查边界条件和异常情况
3. 检查性能和安全问题
4. 编写测试用例并运行
"""
7.4 集成者
integrator_prompt = """你是系统集成工程师。你的职责是:
1. 整合所有模块的代码
2. 确保模块接口兼容
3. 编写系统维度的测试
4. 输出完整的系统文档
"""
八、多智能体系统的常见陷阱
- 过度沟通:智能体之间的不必要消息造成 Token 浪费。解决方案:限定消息长度和数量。
- 角色混淆:智能体逐渐偏离预设角色。解决方案:每次消息附带原始系统提示词摘要。
- 回声室效应:智能体相互确认错误假设。解决方案:引入外部验证。
- 协调超载:太多智能体导致管理开销过大。研究表明 3-5 个是黄金数量。
九、总结
多智能体协作模式通过角色分工和结构化通信,实现了 1+1 > 2 的团队智能效果。
关键要点回顾:
- 典型架构:管理者 + 执行者 + 审查者 + 集成者
- 通信协议:标准化的消息格式
- 冲突解决:退回修改、升级仲裁、辩论式协作
- 独立配置:每个智能体有自己的提示词、工具集和记忆
- 成本与收益的平衡:3-5 个智能体通常是最优选择
延伸阅读
- 📺 B 站播放列表:Agentic AI — AI 智能体设计模式
- 📚 更多学习资源,请访问 deeplearning.ai 官网