
谷歌发布“智能体聊天”A2A协议:Agent2Agent
- Google Agent2Agent (A2A) 协议
- 背景与大会焦点
- Google Cloud Next 2025 大会的焦点之一。
- 在开发者主题演讲中,“代理”(agents) 一词被频繁提及。
- 观察发现,许多演示展示的是 LLM 工作流或小型脚本,而非真正的“完全代理式”解决方案。
- 目前看到的提供商离 AGI (通用人工智能) 仍有距离。
- 核心思想与目的
- A2A 是 Google 提出的一个新的协议,其核心思想是允许代理之间相互“对话”。
- 这提供了一种更复杂的协作方式,超越了简单地将另一个代理用作工具或进行简单的传递。
- 通过此协议,代理可以发现它们完成任务可能需要的其他代理。
- 代理之间可以进行协商,明确任务要求、所需返回的格式、语言等各种细节。
- 技术细节与关系
- 该协议计划使用标准,如 HTTP, SSE, JSON RPC 等 (在 Google 的博客文章中提及)。
- Google 正尝试使此协议默认为安全。
- A2A 与 MCP (Agent-to-Controller Protocol) 的关系:
- Google 强调 A2A 不是为了替代 MCP。
- “A2A loves MCP”(A2A 喜爱 MCP)。
- 两者在不同的层面运作:MCP 涉及代理到工具的通信,而 A2A 是代理到代理的通信。
- 关键概念与组成部分
- 代理发现 (Agent Discovery):这是 A2A 中的一个重要部分。
- 目标是让代理能够找到其他代理。
- 每个代理将拥有一个“代理卡片”(Agent Card),包含该代理的功能、工作方式等详细信息,供其他代理了解。
- 可能的发现机制包括中心化的注册表或私有的 API 调用等。
- 这与业界关于构建“代理商店”(agent store) 或“代理市场”的想法紧密相关,就像一个“代理的 App Store”,代理可以在其中找到并使用其他代理的服务,甚至可能为此付费。
- A2A 服务器 (A2A Server):可以托管或服务不同的代理。
- 客户端 (Client):在某些方面可能与 MCP 的客户端类似。
- 术语 (Terminology):协议中定义了如 Task (任务)、Messages (消息)、Artifacts (工件) 等术语;工件是代理的输出,可以返回给用户或传递给另一个代理。
- 工作流程示例
- 一个典型的流程是:客户端接收输入 -> 从注册表获取与任务相关的代理列表 -> 选择一个代理来执行任务。
- 资源与开发支持
- Google 提供了博客文章、网站、GitHub 仓库以及示例代理来展示协议的工作方式。
- GitHub 仓库中有一个关于概念的概览,解释了代理卡片、A2A 服务器、客户端和相关术语。
- Google 推出了新的代理开发工具包 (Agent Development Kit / ADK)。
- 提供了使用 ADK、crewi、Langchain 甚至 Google 自家 Genkit 的示例。
- 协议支持不同语言编写的代理之间进行交互 (例如,JavaScript 编写的代理调用 Python 编写的代理)。
- 合作伙伴与生态
- Google 表示有约 50 家技术合作伙伴参与并贡献于 A2A 协议。
- 合作者包括模型公司 (如 Cohere) 和代理框架公司 (如 Langchain)。
- 提供了贡献合作伙伴的列表。
- 担忧与挑战
- 协议的采纳与接受度是一个挑战,历史上有很多协议最终被放弃或未被广泛接受。
- Anthropic 的缺席是一个令人担忧的问题。
- Anthropic 未出现在 Google 列出的合作伙伴名单中。
- 如果 Anthropic 选择扩展自己的 MCP 协议来实现代理间通信,可能会导致出现冲突的协议,这对整个领域不利。
- 作者认为,如果能看到 Anthropic 加入,将大大增强对 A2A 协议未来发展的信心。
- 除了 Langchain,名单中似乎缺少其他一些重要的代理框架,如 Llama Index、Paidantic AI 等。
- 未来展望与开放性
- 与“代理市场”的概念紧密相连,未来可能出现代理可以自由寻找并付费使用其他代理服务的场景。
- Google 强调他们乐于接受反馈,鼓励开发者和用户对 A2A 协议提出改进意见。
- 作者希望 A2A 协议能够保持开放性,并可能最终移交给一个独立的组织,避免其被视为仅仅是 Google 的私有协议。