阶段五:多 Agent 系统

🎯 目标

理解多 Agent 系统的设计模式,学会编排多个 Agent 协作完成复杂任务。


一、为什么需要多 Agent?

1.1 单 Agent 的局限

  • 上下文窗口限制
  • 角色混杂导致质量下降
  • 复杂任务难以高效处理
  • 错误容易累积

1.2 多 Agent 的优势

  • 🧩 分而治之:每个 Agent 专注一个领域
  • 🔁 互相验证:Agent 之间可以交叉检查
  • 并行执行:多个 Agent 同时工作
  • 🎭 角色扮演:模拟真实团队协作

二、多 Agent 架构模式

2.1 编排者模式(Orchestrator)

         ┌──────────┐
         │ 编排者   │
         │Agent    │
         └────┬─────┘
        ┌─────┼─────┐
        ↓     ↓     ↓
    ┌──────┐┌──────┐┌──────┐
    │研究  ││编码  ││测试  │
    │Agent ││Agent ││Agent │
    └──────┘└──────┘└──────┘
  • 一个中央 Agent 负责任务分配和协调
  • 适合:项目管理体系、工作流引擎
  • 代表:AutoGen、CrewAI

2.2 对话模式(Conversation)

    ┌──────┐         ┌──────┐
    │Agent │←───────→│Agent │
    │  A   │         │  B   │
    └──────┘         └──────┘
         ↕               ↕
    ┌──────┐         ┌──────┐
    │Agent │←───────→│Agent │
    │  C   │         │  D   │
    └──────┘         └──────┘
  • Agent 之间自由对话,达成共识
  • 适合:辩论、代码审查、头脑风暴
  • 代表:AutoGen GroupChat

2.3 流水线模式(Pipeline)

输入 → [Agent A] → [Agent B] → [Agent C] → 输出
         写稿       审校        排版
  • 严格的顺序执行
  • 适合:内容生产、数据处理流水线
  • 代表:CrewAI Sequential

2.4 层级模式(Hierarchical)

            ┌───────────┐
            │ CEO Agent │
            └─────┬─────┘
         ┌────────┼────────┐
    ┌────┴────┐   │  ┌────┴────┐
    │技术主管 │   │  │产品主管 │
    │Agent   │   │  │Agent   │
    └────┬────┘   │  └────┬────┘
    ┌────┴────┐   │  ┌────┴────┐
    │开发Agent│   │  │设计Agent│
    └─────────┘   │  └─────────┘
  • 多层级管理结构
  • 适合:大型项目、组织模拟
  • 代表:MetaGPT

三、多 Agent 通信机制

3.1 消息传递

class Message:
    sender: str       # 发送者
    receiver: str     # 接收者
    content: str      # 内容
    type: str         # 消息类型:task/result/feedback
    metadata: dict    # 附加信息

3.2 共享状态

class SharedState:
    task_queue: list       # 待处理任务
    results: dict          # 已完成结果
    context: dict          # 共享上下文
    lock: threading.Lock   # 并发控制

3.3 事件驱动

class Event:
    type: str         # event type
    source: str       # source agent
    data: dict        # event data
    timestamp: float  # time

四、AutoGen 深入

4.1 核心概念

import autogen
 
# 配置 LLM
config_list = [{"model": "gpt-4o", "api_key": "your-key"}]
 
# 创建 Agent
assistant = autogen.AssistantAgent(
    name="assistant",
    llm_config={"config_list": config_list}
)
 
user_proxy = autogen.UserProxyAgent(
    name="user",
    human_input_mode="TERMINATE",
    code_execution_config={"work_dir": "coding"}
)
 
# GroupChat
groupchat = autogen.GroupChat(
    agents=[assistant, user_proxy],
    messages=[],
    max_round=10
)
 
manager = autogen.GroupChatManager(
    groupchat=groupchat,
    llm_config={"config_list": config_list}
)

4.2 AutoGen 的优势

  • 内置代码执行沙箱
  • 支持人工介入
  • 灵活的对话模式
  • 可自定义 Agent 行为

五、实战项目

项目 1:AI 软件开发团队

角色:
- 产品经理:分析需求,写 PRD
- 架构师:设计技术方案
- 开发工程师:编写代码
- 测试工程师:写测试用例
- Code Reviewer:代码审查

任务:让团队协作开发一个 TODO 应用

项目 2:AI 辩论系统

角色:
- 正方辩手:支持观点 A
- 反方辩手:支持观点 B
- 评委:总结双方论点,给出评判

任务:让 AI 就「AI 是否会取代程序员」进行辩论

项目 3:智能研究团队

角色:
- 文献搜索 Agent:搜索相关论文
- 数据分析 Agent:分析数据
- 报告撰写 Agent:整合成果
- 质量检查 Agent:审核报告

任务:自动完成一个领域的研究报告

⚠️ 多 Agent 系统的挑战

挑战说明解决方案
通信开销Agent 间通信消耗 Token精简消息格式,共享摘要
循环调用Agent 互相推诿设置最大轮次,强制终止
一致性不同 Agent 结果矛盾引入仲裁 Agent
调试困难多 Agent 交互复杂完善日志,可视化流程
成本控制Token 消耗翻倍精简 Prompt,使用小模型

📚 推荐资源

  • 📖 AutoGen 官方文档
  • 📖 CrewAI 官方文档
  • 📖 MetaGPT
  • 📄 论文:Communicative Agents for Software Development (Qian et al., 2023)
  • 📄 论文:Generative Agents: Interactive Simulacra (Park et al., 2023) — 斯坦福小镇

✅ 阶段完成标准

  • 理解 4 种多 Agent 架构模式
  • 能用 AutoGen 或 CrewAI 搭建多 Agent 系统
  • 实现至少 1 个多 Agent 协作项目
  • 了解多 Agent 系统的挑战和解决方案

上一阶段Agent路线图-04-框架实战 下一阶段Agent路线图-06-生产级开发