3.3 Multi-Agent:多智能体协作
Multi-Agent 系统由多个分工协作的 Agent 共同完成任务,通过拆分任务与隔离上下文解决单 Agent 系统难以处理的复杂问题。
为什么需要 Multi-Agent?
单 Agent 的局限
单 Agent = 一个人干所有事
问题:
- 注意力分散,什么都会一点但都不精
- 上下文太长,容易混淆和遗忘
- 不同任务需要不同的 prompt 和工具
- 一个环节出错容易影响全局
Multi-Agent 的优势
多 Agent = 一个团队协作
优势:
- 角色分工,每个 Agent 在自己领域更专业
- 上下文隔离,避免信息相互干扰
- 可以并行处理,提升效率
- 某 Agent 出错,其他可以纠正
典型协作模式
模式 1:层级式(Hierarchical)
🎯 协调者(Coordinator)
/ | \
👨💻 开发 🧪 测试 📝 文档
Agent Agent Agent
特点:
- 有明确的上下级关系
- 协调者分配任务,汇总结果
- 执行 Agent 专注各自任务
适用场景:有明确流程的复杂任务,如软件开发项目。
模式 2:轮值式(Round-Robin)
产品 Agent → 设计 Agent → 开发 Agent → 测试 Agent
↓ ↑
└──────────────────────────────────────┘
特点:
- 按固定顺序轮流工作
- 每个 Agent 完成自己那部分后交给下一个
- 清晰的工作流
适用场景:流水线式的任务,如内容生产流程。
模式 3:自由讨论式(Debate)
观点 A Agent ←→ 观点 B Agent
\ /
\ /
主持人 Agent
特点:
- 多个 Agent 持不同观点辩论
- 从多个角度分析问题
- 最后综合得出结论
适用场景:需要批判性思维的任务,如方案评审、风险评估。
模式 4:自治团队(Autonomous Team)
产品 设计 开发 测试
↕ ↕ ↕ ↕
大家自行协作,没人发号施令
特点:
- Agent 之间平等协作
- 自主决定做什么、跟谁协作
- 最灵活也最难实现
适用场景:探索性强、没有固定流程的任务。
经典 Multi-Agent 架构
AutoGPT 式:单一 Agent + 工具
虽然是单 Agent,但可以看作是"自我协作":
- 规划者角色
- 执行者角色
- 批判者角色
都在同一个 Agent 的不同阶段体现。
CrewAI:角色 + 任务 + 流程
from crewai import Agent, Task, Crew
# 定义角色
researcher = Agent(
role='研究员',
goal='收集和分析信息',
backstory='你是一位资深市场研究员...'
)
writer = Agent(
role='作家',
goal='撰写高质量报告',
backstory='你是一位专业技术作家...'
)
# 定义任务
research_task = Task(
description='调研 AI Agent 最新发展',
agent=researcher
)
write_task = Task(
description='根据调研结果写报告',
agent=writer
)
# 组建团队执行
crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task])
crew.kickoff()