阶段五:多 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-生产级开发