Google重磅发布:Multi-Agent的八种开发模式
无论你是在构建大型电商平台还是复杂的AI应用,依赖单一的全能实体都会造成瓶颈,增加调试成本,并限制专业性能的发挥。同样的原则也适用于AI Agent,承担过多职责的单一Agent会变成"样样通,样样松"。随着指令复杂性的增加,对特定规则的遵循度会下降,错误率会累积,导致越来越多的"幻觉"。
软件开发世界已经学到了这个教训:单体应用无法有效扩展。
无论你是在构建大型电商平台还是复杂的AI应用,依赖单一的全能实体都会造成瓶颈,增加调试成本,并限制专业性能的发挥。
同样的原则也适用于AI Agent,承担过多职责的单一Agent会变成"样样通,样样松"。随着指令复杂性的增加,对特定规则的遵循度会下降,错误率会累积,导致越来越多的"幻觉"。
如果您的Agent失败了,您不应该拆掉整个提示词来找错误,因为可靠性来自于去中心化和专业化。
Multi-Agent 系统(MAS)允许您构建AI领域的微服务架构。通过为单个Agent分配特定角色(解析器、评论家、调度器),您可以构建本质上更模块化、可测试和可靠的系统。
在本指南中,我们将使用Google Agent开发工具包(ADK)来说明8种基本设计模式,从顺序流水线到人机协同设计模式,为您提供构建生产级Agent团队所需的实用模式和伪代码。
1. 顺序流水线模式(又称装配线)
让我们从Agent工作流的基础开始。

将此模式视为经典的装配线,Agent A完成任务后直接将接力棒交给Agent B。
它是线性的、确定性的,而且令人耳目一新地易于调试,因为您总是确切地知道数据来自哪里。
这是您进行数据处理流水线的首选架构。
在下面的示例中,我们看到了处理原始文档的流程:解析器Agent将原始PDF转换为文本,提取器Agent提取结构化数据,总结器Agent生成最终摘要。

在ADK中,SequentialAgent原语为您处理协调。
这里的秘诀是状态管理:只需使用output_key写入共享的session.state,这样链中的下一个Agent就知道在哪里接续工作。
2. 协调器/调度器模式(又称门童)
有时您不需要链条;您需要一个决策者。

在此模式中,中央智能Agent充当调度器。它分析用户的意图并将请求路由到最适合的专家Agent。
这非常适合复杂的客户服务机器人,您可能需要将用户发送到"账单"专家处理发票问题,而将"技术支持"专家用于故障排除。

这依赖于LLM驱动的委托。您只需定义一个父协调器Agent并提供专家子Agent列表。ADK的AutoFlow机制会处理其余部分,根据您为子级提供的描述进行执行转移。
3. 并行分发/收集模式(又称章鱼)
速度很重要。
如果您有不相互依赖的任务,为什么要一个接一个地运行?在此模式中,多个Agent同时执行任务以减少延迟或获得多样化的视角。然后由最终的"合成器"Agent聚合它们的输出。

这对于像自动代码审查这样的场景很理想。与其顺序运行检查,您可以同时生成"安全审计员"、"风格执行者"和"性能分析员"来审查拉取请求。完成后,"合成器"Agent将它们的反馈合并成一个统一的审查评论。

ADK中的ParallelAgent应同时运行子Agent。请注意,尽管这些Agent在单独的执行线程中运行,但它们共享会话状态。为防止竞争条件,请确保每个Agent将其数据写入唯一键。
4. 层次分解(又称俄罗斯套娃)
有时一个任务对于一个Agent的上下文窗口来说太大了。高级Agent可以将复杂目标分解为子任务并委托它们。与路由模式不同,父Agent可能只委托任务的一部分并等待结果以继续自己的推理。

在此图中,我们看到一个ReportWriter本身不进行研究。它委托给一个ResearchAssistant,后者又管理WebSearch和Summarizer工具。
您可以在此处将子Agent视为工具。通过将Agent包装在AgentTool中,父Agent可以显式调用它,有效地将子Agent的整个工作流视为单个函数调用。

5. 生成器与评论家模式(又称编辑桌)
生成高质量、可靠的输出通常需要第二双眼睛。在此模式中,您将内容创建与内容验证分离。一个Agent充当生成器,生成草稿,而第二个Agent充当评论家,根据特定的硬编码标准或逻辑检查来审查它。

此架构的独特之处在于其条件循环。如果审查通过,循环中断,内容被最终确定。如果失败,特定反馈将被路由回生成器以生成合规草稿。
这对于需要语法检查的代码生成或需要合规审查的内容创建非常有用。

要在此模式中实现ADK,您需要将关注点分离为两个特定原语:管理草稿和审查交互的SequentialAgent,以及执行质量门和退出条件的父LoopAgent。
6. 迭代优化(又称雕塑家)
伟大的工作很少在单一草稿中完成。就像人类作家需要修改、润色和编辑一样,有时您的Agent需要几次尝试才能将答案完全正确。
在此模式中,Agent进入生成、评论和优化的循环,直到输出满足特定的质量阈值。

与关注正确性(通过/失败)的生成器和评论家模式不同,此模式关注质量改进。生成器创建粗略草稿,评论Agent提供优化说明,优化Agent根据这些说明润色输出。
此模式使用LoopAgent实现。这里的关键组件是退出机制。
虽然您可以使用max_iterations设置硬限制,但ADK还允许Agent发出早期完成信号。如果在达到最大迭代次数之前达到质量阈值,Agent可以通过在EventActions中发出escalate=True来触发退出。

7. 人机协同(人类安全网)
AI Agent很强大,但有时您需要人类在关键时刻担任驾驶员。
在此模型中,Agent处理基础工作,但人类必须授权高风险操作 - 特别是那些不可逆或具有重大后果的操作。这包括执行金融交易、将代码部署到生产环境,或基于敏感数据采取行动(而不是仅仅处理它),以确保安全和问责。

该图显示了处理常规工作的Transaction Agent。当需要高风险检查时,它调用ApprovalTool Agent,该Agent暂停执行并等待人类审核员说"是"或"否"。
ADK允许您通过自定义工具实现此功能。Agent可以调用approval_tool,该工具暂停执行或触发外部系统以请求人工干预。

8. 复合模式(混搭)
现实世界的企业的应用程序很少适合单个模式。您可能会结合这些模式来构建生产级应用程序。

例如,强大的客户支持系统可能使用协调器来路由请求。如果用户有技术问题,该分支可能会触发文档和用户历史的并行搜索。最终答案随后可能通过生成器和评论家循环来确保语调一致性,然后发送给用户。
更多推荐
所有评论(0)