Google A2A:AI代理间协议

360影视 国产动漫 2025-04-12 17:17 2

摘要:今天,谷歌发布了其开源的代理间协议(Agent-to-Agent),这个协议被富有想象力地命名为A2A,即代理到代理。由于我们已经看到Anthropic的MCP(模型上下文协议)取得了很多进展,谷歌声称A2A与MCP是互补的。他们甚至用了一个心形表情符号来强调

今天,谷歌发布了其开源的代理间协议(Agent-to-Agent),这个协议被富有想象力地命名为A2A,即代理到代理。由于我们已经看到Anthropic的MCP(模型上下文协议)取得了很多进展,谷歌声称A2A与MCP是互补的。他们甚至用了一个心形表情符号来强调这一点。

我不太确定,所以我决定深入研究一下,看看A2A在代理宇宙中的位置如何。因此我们将涵盖A2A在现实生活中的工作方式,并将其与MCP进行比较。

使用A2A出乎意料地类似于MCP。你可以运行几个A2A代理/服务器,然后A2A客户端可以连接到它们。好消息是,通常不需要在运行A2A客户端的同时运行A2A代理。

我在本地启动了所有三个示例代理:

Google ADK代理,它可以为你提交费用报告。CrewAI代理,它可以生成图像。LangGraph代理,它可以查询最新的外汇汇率。

A2A服务器通过JSON格式的“代理卡”向世界展示其功能。例如,Google ADK的代理卡如下所示:

{ "name": "报销代理", "description": "此代理处理员工的报销流程,根据报销金额和用途。", "url": "http://localhost:10002/", "version": "1.0.0", "capabilities": { "streaming": true, "pushNotifications": false, "stateTransitionHistory": false }, "defaultInputModes": [ "text", "text/plain" ], "defaultOutputModes": [ "text", "text/plain" ], "skills": [ { "id": "process_reimbursement", "name": "处理报销工具", "description": "帮助用户根据报销金额和用途完成报销流程。", "tags": [ "报销" ], "examples": [ "能否报销我午餐与客户的20美元?" ] } ]}

接下来是客户端。获取演示Web应用程序运行的说明在这里 。

一旦Web应用程序开始运行,你就可以从浏览器访问它。客户端看起来有点像Gemini AI Studio,具有标志性的Google Material设计风格。

URL: localhost:12000

首先,我们需要通过指定其基本URL将所有代理添加到客户端中。由于在我的情况下我都在本地运行这些代理,所以它们的基本URL是:

Google ADK: localhost:10002CrewAI: localhost:10001LangGraph: localhost:10000

备注:在协议中,最终的URL看起来像这样:

现在你可以看到所有三个已连接的代理

A2A代理

你可以在这里看到聊天历史记录

A2A聊天记录

这里可以看到所有的事件列表

A2A事件列表

以及所有的任务列表

A2A任务列表

设置非常基础:

A2A设置

Google ADK代理 - 费用索赔

LangGraph代理 - 外汇汇率

CrewAI代理 - 图像生成

7、多个代理组合测试

我想看看A2A客户端是否能够使用多个代理实现单一目标。所以我测试了它是否可以结合费用索赔代理和外汇汇率代理。结果是可行的。

我的任务是“在商务旅行期间为德国的一杯啤酒申请费用,金额为5欧元,日期为2025年4月4日”。对话经过了几轮来回,最终在费用索赔表中得到了正确的美元金额。

我喜欢A2A是一个纯粹的客户端-服务器模型,两者都可以远程运行和托管。客户端无需指定和启动代理/服务器。

代理配置相当简单,只需指定基本URL,“代理卡”负责上下文交换。而且可以在客户端已经启动后添加和移除代理。

在当前的演示形式下,很难理解代理之间如何通信并完成复杂任务。客户端分别调用每个代理执行不同任务,因此非常类似于多工具调用。

现在我已经尝试了A2A,是时候将其与MCP进行比较了,我在这篇文章中之前提到过MCP。

虽然A2A和MCP都旨在改善AI代理系统的开发,理论上它们解决不同的需求。A2A在代理层面运作,专注于独立实体之间的交互,而MCP在LLM层面运作,专注于丰富单个语言模型的上下文和能力。

根据它们的协议文档,以下是它们的主要相似点和差异的概览:

特性A2AMCP主要应用场景代理间的通信与协作为LLMs提供上下文和工具(外部API/SDK)核心架构客户端-服务器(代理-代理)客户端-主机-服务器(应用-LLM-外部资源)标准接口JSON规范、代理卡、任务、消息、工件JSON-RPC 2.0、资源、工具、记忆、提示关键特性多模态、动态、安全协作、任务管理、能力发现模块化、安全边界、可重用的连接器、SDKs、工具发现通信协议HTTP、JSON-RPC、SSEJSON-RPC 2.0通过stdio、HTTP带SSE(或流式HTTP)性能重点异步通信以处理负载高效的上下文管理、并行处理、缓存以实现高吞吐量采用与社区初期行业支持良好,生态系统尚处于萌芽阶段整个行业的广泛采用,快速增长的社区10、结束语

尽管谷歌做出了听起来A2A像是MCP的互补协议,我的初步测试显示它们在目的和功能上高度重叠。它们都旨在满足AI应用开发者利用多个代理和工具实现复杂目标的需求。目前,两者都缺乏一种良好的机制来注册和发现其他代理和工具,而无需手动配置。

MCP起步较早,已经获得了开发社区和大型企业的极大支持。A2A非常年轻,但已获得许多Google Cloud企业客户的强力初始支持。

我认为这对开发者来说是个好消息,因为他们将有更多的选择在开放且标准的代理间协议中。只有时间能告诉我们哪个会占据主导地位,或者它们可能会合并为一个单一的标准。

来源:小火看科技

相关推荐