第 5 课
← 返回系列列表

多智能体工作流

Agentic AI — AI 智能体设计模式

多 Agent 协作、角色分工、通信协议与冲突解决。

多智能体工作流

课程简介

多 Agent 协作、角色分工、通信协议与冲突解决。

🎬 本课程视频:Agentic AI — AI 智能体设计模式


多智能体工作流:团队的力量

一、为什么需要多智能体系统?

单个智能体能力再强也有天花板。一个智能体既要理解用户需求,又要检索信息,还要生成高质量内容,同时自我检查质量——这些任务对同一个模型来说可能顾此失彼。

多智能体系统的核心理念是分工协作:让不同的智能体扮演不同的角色,各自专注于自己擅长的领域,通过结构化的通信协议协同工作。这就像软件开发团队:产品经理负责需求,设计师负责界面,工程师负责编码,测试工程师负责质量。

二、典型架构与角色设计

2.1 四角色架构

一个经过实践验证的多智能体架构包含四个基础角色:

1. 管理者 Agent(Manager)
- 职责:接收用户请求,分解任务,分配任务给合适的 Agent,协调执行顺序,处理冲突,合并最终成果
- 能力需求:全局规划能力强,理解每个 Agent 的能力边界
- 关键能力:任务分解与分配、进度跟踪、冲突仲裁

2. 执行者 Agent(Worker)
- 职责:执行具体的子任务,如代码编写、数据检索、内容生成
- 能力需求:在特定领域有专长,能够高质量完成任务
- 关键能力:领域专业知识、工具使用能力

3. 审查者 Agent(Reviewer)
- 职责:检查执行者的输出质量,发现错误和问题,提供改进建议
- 能力需求:批判性思维强,能够准确识别问题
- 关键能力:质量判断、错误检测、改进建议生成

4. 集成者 Agent(Integrator)
- 职责:将各执行者的成果合并为统一的最终交付物,确保风格一致、逻辑连贯
- 能力需求:整体把控能力强,能够协调多个子成果
- 关键能力:内容整合、风格统一、冲突消解

2.2 角色配置原则

不是所有系统都需要四个角色。角色配置应基于任务复杂度:

三、通信协议设计

通信协议是多智能体系统的关键基础设施。我们需要一种标准化的消息格式,让不同角色能够相互理解和协作。

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 消息类型

3.3 通信模式

点对点通信:两个 Agent 之间直接交换信息。如执行者向审查者发送审查请求。

广播通信:一个 Agent 向所有其他 Agent 发送信息。如管理者广播项目状态更新。

层级通信:按照组织层级结构通信。下级的消息通过管理者转发。

四、冲突解决机制

在多智能体系统中,冲突不可避免。审查者可能发现执行者的输出有问题,两个执行者可能给出矛盾的信息,管理者可能做出低效的分配决策。

4.1 冲突类型

  1. 质量冲突:审查者认为输出质量不达标
  2. 事实冲突:两个执行者给出矛盾的事实信息
  3. 资源冲突:多个执行者争用同一工具或 API
  4. 优先级冲突:对任务优先级判断不一致

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. 输出完整的系统文档
"""

八、多智能体系统的常见陷阱

  1. 过度沟通:智能体之间的不必要消息造成 Token 浪费。解决方案:限定消息长度和数量。
  2. 角色混淆:智能体逐渐偏离预设角色。解决方案:每次消息附带原始系统提示词摘要。
  3. 回声室效应:智能体相互确认错误假设。解决方案:引入外部验证。
  4. 协调超载:太多智能体导致管理开销过大。研究表明 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. 输出完整的系统文档
"""

八、多智能体系统的常见陷阱

  1. 过度沟通:智能体之间的不必要消息造成 Token 浪费。解决方案:限定消息长度和数量。
  2. 角色混淆:智能体逐渐偏离预设角色。解决方案:每次消息附带原始系统提示词摘要。
  3. 回声室效应:智能体相互确认错误假设。解决方案:引入外部验证。
  4. 协调超载:太多智能体导致管理开销过大。研究表明 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. 输出完整的系统文档
"""

八、多智能体系统的常见陷阱

  1. 过度沟通:智能体之间的不必要消息造成 Token 浪费。解决方案:限定消息长度和数量。
  2. 角色混淆:智能体逐渐偏离预设角色。解决方案:每次消息附带原始系统提示词摘要。
  3. 回声室效应:智能体相互确认错误假设。解决方案:引入外部验证。
  4. 协调超载:太多智能体导致管理开销过大。研究表明 3-5 个是黄金数量。

九、总结

多智能体协作模式通过角色分工和结构化通信,实现了 1+1 > 2 的团队智能效果。

关键要点回顾:
- 典型架构:管理者 + 执行者 + 审查者 + 集成者
- 通信协议:标准化的消息格式
- 冲突解决:退回修改、升级仲裁、辩论式协作
- 独立配置:每个智能体有自己的提示词、工具集和记忆
- 成本与收益的平衡:3-5 个智能体通常是最优选择

延伸阅读

← 规划模式(Planning) 评估与生产部署 →