> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# Google A2A：AI代理间协议
- URL: https://www.hubwiz.com/blog/google-a2a-protocol/
- Published: 2025-04-12T01:16:06.000Z
- Updated: 2025-04-12T01:16:06.000Z
- Description: 今天，谷歌发布了其开源的代理间协议，这个协议被富有想象力地命名为A2A，即代理到代理。谷歌声称A2A与MCP是互补的。
- Author: admin
- Tags: APPLICATION, A2A, MCP, #Import 2026-10-14 14:41

今天，谷歌发布了其开源的代理间协议（Agent-to-Agent），这个协议被富有想象力地命名为[A2A](https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/?ref=hackernoon.com)，即代理到代理。由于我们已经看到Anthropic的[MCP](https://modelcontextprotocol.io/introduction?ref=hackernoon.com)（模型上下文协议）取得了很多进展，谷歌声称[A2A与MCP是互补的](https://google.github.io/A2A/?ref=hackernoon.com#/topics/a2a%5Fand%5Fmcp)。他们甚至用了一个心形表情符号来强调这一点。

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

## 1、测试A2A

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

## 2、运行A2A代理（服务器）

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

1. [Google ADK代理](https://github.com/google/A2A/blob/main/samples/python/agents/google%5Fadk/?ref=hackernoon.com)，它可以为你提交费用报告。
2. [CrewAI代理](https://github.com/google/A2A/tree/main/samples/python/agents/crewai?ref=hackernoon.com)，它可以生成图像。
3. [LangGraph代理](https://github.com/google/A2A/tree/main/samples/python/agents/langgraph?ref=hackernoon.com)，它可以查询最新的外汇汇率。

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美元？"
			]
		}
	]
}

```

## 3、启动A2A客户端演示应用

接下来是客户端。获取演示Web应用程序运行的说明在[这里](https://github.com/google/A2A/tree/main/demo?ref=hubwiz.com) 。

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

`URL: localhost:12000`

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

- Google ADK： `localhost:10002`
- CrewAI： `localhost:10001`
- LangGraph： `localhost:10000`

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

`https://localhost:10002/.well-known/agent.json`

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

![](https://www.hubwiz.com/blog/content/images/2025/04/image-178.png)

A2A代理

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

![](https://www.hubwiz.com/blog/content/images/2025/04/image-179.png)

A2A聊天记录

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

![](https://www.hubwiz.com/blog/content/images/2025/04/image-180.png)

A2A事件列表

以及所有的**任务列表**：

![](https://www.hubwiz.com/blog/content/images/2025/04/image-181.png)

A2A任务列表

**设置**非常基础：

![](https://www.hubwiz.com/blog/content/images/2025/04/image-182.png)

A2A设置

## 4、测试Google ADK代理的费用索赔

![](https://www.hubwiz.com/blog/content/images/2025/04/image-183.png)

Google ADK代理 - 费用索赔

## 5、测试LangGraph查询外汇汇率

![](https://www.hubwiz.com/blog/content/images/2025/04/image-184.png)

LangGraph代理 - 外汇汇率

## 6、测试CrewAI代理生成图像

![](https://www.hubwiz.com/blog/content/images/2025/04/image-185.png)

CrewAI代理 - 图像生成

## 7、多个代理组合测试

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

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

![](https://www.hubwiz.com/blog/content/images/2025/04/image-186.png)

![](https://www.hubwiz.com/blog/content/images/2025/04/image-187.png)

## 8、对A2A的初步观察

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

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

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

## 9、将A2A与MCP进行比较

现在我已经尝试了A2A，是时候将其与MCP进行比较了，我在[这篇文章](https://hackernoon.com/building-an-ai-trading-agent-using-anthropics-mcp-part-ii?ref=hackernoon.com)中之前提到过MCP。

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

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

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

## 10、结束语

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

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

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

---

原文链接：[Google A2A - a First Look at Another Agent-agent Protocol](https://hackernoon.com/google-a2a-a-first-look-at-another-agent-agent-protocol?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处