这是一个关于构建多智能体系统的系列文章的最后一篇。
系列回顾:
- 第一部分介绍了单体 AI“大脑”的问题,并设计了专家团队代理的架构来支持“InstaVibe Ally”功能。
- 第二部分深入探讨了模型上下文协议(MCP),展示了如何将平台交互代理连接到应用的现有 REST API 并将其转化为可重用工具。
- 当前问题:各代理处于孤立状态,无法协作,如社交分析代理无法将洞察提供给事件规划器,平台集成器无法与其他代理协作。
A2A:给代理一个共享语言:
- A2A 是用于代理之间发现、通信和委托任务的开放标准,不同于 MCP 用于代理与工具的通信。
- MCP 如平台代理使用它连接到 MCP 服务器以访问“哑”工具(如 InstaVibe REST API),而 A2A 如协调器使用它连接到规划器代理,规划器代理有自己的语言模型等。
- 使用 MCP 是让代理使用特定的预定义能力,使用 A2A 是让代理将复杂任务委托给有自己智能的其他代理。
实现 A2A:a2a-python 库的作用:
- 使用 a2a-python 库将专家代理包装在 A2A 服务器中,创建代理卡(Agent Card),如规划器代理的代理卡包含其名称、描述、技能等信息,并在 Cloud Run 上启动服务器。
- 协调器作为 A2A 客户端,初始化时获取其他专家代理的代理卡,通过 send_message 工具进行 A2A 调用,根据用户目标和代理卡信息智能地委托任务。
- 完整流程示例:用户在 InstaVibe 应用中请求在芝加哥为自己和朋友规划一个有趣的周末,应用调用运行在 Vertex AI Agent Engine 上的协调器代理,协调器代理依次调用社交代理获取朋友兴趣,再调用事件规划器代理根据兴趣规划事件,最后将规划结果呈现给用户,展示了多代理系统的协同工作。
- 系列结论:从简单想法到功能齐全的分布式 AI 系统,构建复杂 AI 系统需要像软件工程师一样思考,使用 MCP 和 A2A 等开放标准和框架可构建健壮、可扩展且可维护的系统,并提供了一个实践的“InstaVibe Multi-Agent” Google Codelab 用于从理论到实践的学习和构建。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。