返回学习地图
llmPhase C · 第 19

3.2 多Agent协作

Multi-Agent系统/协作模式/通信/工作流编排

4 个章节·按类别展开/折叠
知识

为什么需要多Agent?——从一个人干活到团队协作

单个Agent能力有限,就像一个人不可能精通所有技能。多Agent系统让多个Agent协作,每个Agent专攻一个领域,就像公司里有产品经理、程序员、设计师、测试工程师。

类比:餐厅团队。一个餐厅有:前台(接待顾客)、厨师(做菜)、服务员(上菜)、清洁工(打扫卫生)。每个人只做自己擅长的事,但通过协作完成整个用餐体验。

多Agent的核心优势:

  • 专业分工:每个Agent专攻一个领域,深度而非广度
  • 并行处理:多个Agent同时工作,提高效率
  • 冗余备份:一个Agent失败,其他Agent可以接管
  • 模块化:新增Agent不需要修改现有Agent
  • 可扩展:根据任务复杂度动态增减Agent数量

多Agent架构:

架构特点代表系统
层级式中央Agent协调,子Agent执行AutoGPT, MetaGPT
扁平式Agent平等协商,投票决策ChatDev, CAMEL
管道式Agent按流水线顺序处理LangChain Sequential
市场式Agent像自由市场一样交易资源AgentMarket, 研究阶段
知识

Agent之间的通信——团队怎么开会

多Agent系统需要通信机制,就像团队需要开会。Agent之间如何传递信息、协调行动、解决冲突?

通信方式:

1. 直接通信:Agent A直接给Agent B发送消息。简单高效,但耦合度高。

2. 黑板系统(Blackboard):所有Agent共享一个公共数据区(黑板)。Agent把结果写到黑板上,其他Agent从黑板读取。解耦,但可能有读写冲突。

3. 消息队列:Agent发送消息到队列,其他Agent异步消费。可靠,但延迟较大。

4. 发布-订阅:Agent发布事件,订阅该事件的Agent接收并处理。灵活,适合一对多通信。

协作模式:

模式描述适用场景
分工协作每个Agent负责一个子任务复杂任务分解
竞争协作多个Agent尝试同一任务,选最佳结果需要高质量输出的任务
教学协作一个Agent教另一个Agent新技能知识传递
辩论协作Agent互相挑战,找出最佳方案需要多角度分析的问题
实例

例子:多Agent软件开发团队

实例

场景:用多Agent系统开发一个 TODO App。

Agent角色分配:

产品经理Agent:写需求文档、设计功能列表
  → 输出:PRD文档、用户故事

架构师Agent:设计系统架构、数据库 schema
  → 输出:架构图、API设计

前端开发Agent:写HTML/CSS/JS代码
  → 输出:前端代码

后端开发Agent:写服务器代码、数据库操作
  → 输出:后端代码

测试Agent:写测试用例、执行测试
  → 输出:测试报告、bug列表

DevOps Agent:写Dockerfile、部署脚本
  → 输出:部署配置

协作流程:

1. 产品经理先写PRD
2. 架构师根据PRD设计架构
3. 前端和后端并行开发(基于架构设计)
4. 测试Agent在开发完成后进行测试
5. 发现bug → 通知开发Agent修复
6. DevOps Agent在测试通过后部署

总时间:单Agent需要10天,多Agent并行只需3天

这个例子来自MetaGPT和ChatDev的真实研究。实验表明,多Agent系统可以生成可运行的软件项目,虽然代码质量不如人类团队,但已经能完成简单应用的完整开发流程。

练习

练习:多Agent协作

练习

Q1:多Agent系统相比单Agent,核心优势是什么?什么时候需要多Agent?

Q2:黑板系统(Blackboard)和消息队列有什么区别?各适合什么场景?

Q3:如果两个Agent对同一个任务给出不同结果,系统应该如何决策?

Q4:设计一个多Agent系统来处理客户投诉。需要哪些Agent?它们如何协作?

Q5:多Agent系统的最大挑战是什么?如何解决Agent之间的冲突?

查看答案

A1:核心优势:专业分工、并行处理、冗余备份、模块化。当任务复杂到需要多个领域专业知识时,或者需要并行处理大量子任务时,需要多Agent。简单任务(如查天气)不需要多Agent。

A2:黑板系统:共享内存,所有Agent读写同一个数据区。适合需要实时共享状态的场景,但可能有竞争条件。消息队列:异步通信,Agent发送消息到队列,其他Agent消费。适合解耦、可靠传输,但有一定延迟。

A3:可以:1.投票(多数Agent认同的结果胜出);2.置信度加权(置信度高的Agent权重更大);3.上级Agent仲裁(中央协调者决定);4.重新执行(让Agent重新考虑对方观点);5.人类介入(复杂冲突由人类判断)。

A4:需要的Agent:接收Agent(接收投诉)、分析Agent(分析投诉类型和紧急程度)、处理Agent(根据类型分配给不同处理流程:退款/技术支持/产品建议)、回复Agent(生成回复)、升级Agent(处理无法解决的投诉)、记录Agent(记录所有交互)。协作:接收→分析→处理→(如需升级)升级→回复→记录。

A5:最大挑战:协调复杂性、通信开销、冲突解决。解决冲突:1.明确角色和权限;2.建立冲突解决协议(如投票、仲裁);3.设定共同目标(所有Agent服务于用户利益);4. human-in-the-loop(关键决策由人类确认)。