Skip to content

AI Agent 协议(MCP & A2A) ​

核心问题

AI Agent 如何与外部世界"对话"? 就像互联网需要 HTTP 协议,AI Agent 也需要标准化的通信协议。本章介绍两个最主流的 Agent 协议:MCP 和 A2A,它们分别解决了 AI 与工具、Agent 与 Agent 之间的通信问题。


0. 什么是协议? ​

在计算机领域,协议(Protocol) 是一套标准化的规则和约定,让不同的系统、程序能够相互"理解"和"通信"。

0.1 为什么需要协议? ​

想象一个场景:你给朋友寄快递,需要填写地址。如果每个人写的地址格式都不一样,快递员就没法投递。协议就是规定了"地址怎么写"的标准——省、市、区、街道、门牌号,按这个格式写,谁都能看懂。

计算机也是一样。两个程序要通信,必须约定好:

  • 数据格式是什么?(JSON?二进制?)
  • 怎么建立连接?(握手流程)
  • 出错了怎么办?(错误处理)

0.2 计算机中常见的协议 ​

协议作用你每天都在用
HTTP网页传输协议浏览器打开网页
HTTPS加密的 HTTP网银、支付页面
TCP/IP互联网基础协议所有网络通信
DNS域名解析协议把 google.com 变成 IP 地址
SMTP邮件发送协议发送邮件
WebSocket双向实时通信聊天软件、在线游戏
SSH安全远程登录连接服务器
FTP文件传输协议上传/下载文件

这些协议构成了互联网的基石。没有它们,你无法浏览网页、发送邮件、观看视频。

0.3 协议的价值 ​

协议的核心价值是标准化和互操作性:

  • 标准化:大家都按同一套规则办事,减少沟通成本
  • 互操作性:不同厂商、不同技术栈的系统可以无缝对接

比如 HTTP 协议,让 Chrome 浏览器可以访问 Nginx 服务器,让 Python 爬虫可以抓取 Java 网站的数据。不需要 Chrome 和 Nginx 互相"认识",只要都遵守 HTTP 协议就行。

0.4 AI Agent 也需要协议 ​

AI Agent 要真正"干活",需要:

  • 调用外部工具(查天气、发邮件、操作数据库)
  • 与其他 Agent 协作(分工合作完成复杂任务)

这就需要标准化的协议来规定"AI 怎么调用工具"、"Agent 之间怎么对话"。这就是 MCP 和 A2A 的由来。


1. Agent 协议的层次 ​

在深入了解具体协议之前,让我们先看看 Agent 生态中的通信层次:

层级协议解决的问题类比
1Function CallAI 如何调用本地函数大脑发出指令
2MCPAI 如何连接外部工具和数据源USB-C 接口
3A2AAgent 之间如何协作通信企业微信

逐行解读这张表

第1层(Function Call):这是大模型最基础的能力——通过输出结构化数据(JSON)来触发函数执行。它是"协议"的基础,但本身更像是一种能力而非标准协议。

第2层(MCP):Model Context Protocol,由 Anthropic 于 2024 年 11 月发布。它标准化了 AI 与外部工具、数据源的连接方式,就像 USB-C 统一了各种设备的充电接口。

第3层(A2A):Agent-to-Agent Protocol,由 Google 于 2025 年 4 月发布。它让不同的 Agent 能够相互发现、通信和协作,就像企业微信让同事之间可以发任务、聊天。

本章重点介绍第 2、3 层的两个正式协议:MCP 和 A2A。


2. MCP (Model Context Protocol) ​

2.1 协议基本信息 ​

项目内容
全称Model Context Protocol
发起方Anthropic
发布时间2024 年 11 月 25 日
官方文档modelcontextprotocol.io
开源协议MIT License
GitHubgithub.com/modelcontextprotocol

为什么叫"Context Protocol"?

Context(上下文) 是大模型理解任务的关键。MCP 的核心思想是:让 AI 能够动态获取所需的上下文信息,而不是把所有信息都塞进 Prompt。

比如,AI 需要读取一个文件时,不需要你把文件内容复制粘贴给它,而是通过 MCP 直接访问文件系统。

2.2 发布的背景 ​

2024 年,随着 Claude 3.5 Sonnet 的发布,Anthropic 发现一个问题:每个工具都要单独集成。

想象一下:

  • 你想让 AI 读取 GitHub 仓库 → 要写 GitHub 集成代码
  • 你想让 AI 查询数据库 → 要写数据库集成代码
  • 你想让 AI 操作文件系统 → 要写文件系统集成代码

每个集成都要重复写类似的代码:认证、错误处理、数据转换……

Anthropic 在官方博客中写道:

"We're introducing the Model Context Protocol (MCP), an open protocol that standardizes how applications provide context to LLMs."

核心目标:让工具开发者写一次代码,所有支持 MCP 的 AI 应用都能使用。

2.3 MCP 是什么? ​

MCP 是什么?
MCP(Model Context Protocol)是 Anthropic 于 2024 年 11 月推出的AI 与外部工具连接的统一标准。它让 AI 应用可以调用外部工具、读取资源数据、使用预定义提示,就像给 AI 装上了"手"和"眼睛"。
三大核心能力
能力
英文
作用
示例
工具
Tools
AI 可以调用的功能
查询天气、发送邮件、调用 API
资源
Resources
AI 可以读取的数据
文件内容、数据库记录、配置信息
提示
Prompts
预定义的提示模板
代码审查模板、写作模板
什么时候用 MCP?
当 AI 需要执行实际操作时
AI 不仅要回答问题,还要真正做事:发送邮件、操作文件、调用第三方 API
当 AI 需要访问私有数据时
读取本地文件、查询数据库、访问企业内部系统
当需要标准化工具接入时
一次开发,多个 AI 应用可用(Claude、Cursor、Windsurf 等)
如何使用 MCP?
1
开发 MCP Server
按 MCP 规范实现 Server,提供 tools/resources/prompts
2
配置 AI 应用连接
在 AI 应用中添加 MCP Server 配置(本地或远程)
3
AI 自动调用
AI 根据任务需求,自动发现并调用合适的工具或读取资源

三大核心能力:

能力英文作用示例
工具ToolsAI 可以调用的功能查询天气、发送邮件
资源ResourcesAI 可以读取的数据文件内容、数据库记录
提示Prompts预定义的提示模板代码审查模板、写作模板

2.4 MCP 的内部实现 ​

MCP 内部实现客户端-服务器架构的通信细节
为什么 MCP 这么火?

MCP 之前,AI 只能"看"和"说",有了 MCP,AI 终于可以"动手"了。它让 AI 可以操纵各种程序,真正帮你干活。

如何使用 MCP?

使用 MCP 非常简单,只需要配置一个 mcp.json 文件,就可以在你的 IDE 里使用各种 MCP 工具。

1
找到 MCP Server
从 MCP 资源站或 GitHub 找到你需要的 MCP Server
MCP.so(中文)mcp.so
Pulse MCP(英文)pulsemcp.com
Smithery(英文)smithery.ai
2
配置 mcp.json
在你的 AI 编辑器(Cursor / Claude Desktop 等)中找到 MCP 配置文件位置,添加 Server 配置
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/home/user/projects"
      ]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "your-token-here"
      }
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://user:pass@localhost/db"
      }
    }
  }
}
3
重启 IDE 即可使用
重启后,AI 会自动发现并加载 MCP 工具,你就可以直接让 AI 使用这些工具了
Skills 正在替代 MCP?
随着 Skills 的普及,越来越多的场景开始使用 Skills 替代 MCP 协议。Skills 更轻量、更易编写,适合大多数常见任务。MCP 更适合需要复杂工具集成、多客户端复用的场景。如果你只是想让 AI 做一些简单操作,建议优先考虑 Skills。
常见 IDE 的 mcp.json 位置
Cursor~/.cursor/mcp.json
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
Windsurf~/.windsurf/mcp.json
如何实现一个 MCP Server?

假设你有一个天气 API,想把它封装成 MCP Server 让 AI 可以调用。下面以 Node.js 为例演示:

weather-mcp-server.js
import { Server } from '@modelcontextprotocol/sdk/server/index.js'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'

// 1. 创建 MCP Server
const server = new Server({
  name: 'weather-server',
  version: '1.0.0'
}, {
  capabilities: { tools: {} }
})

// 2. 定义工具列表
server.setRequestHandler('tools/list', async () => ({
  tools: [{
    name: 'get_weather',
    description: '获取指定城市的天气信息',
    inputSchema: {
      type: 'object',
      properties: {
        city: { type: 'string', description: '城市名称' }
      },
      required: ['city']
    }
  }]
}))

// 3. 实现工具调用逻辑
server.setRequestHandler('tools/call', async (request) => {
  const { name, arguments: args } = request.params
  
  if (name === 'get_weather') {
    // 调用你的天气 API
    const response = await fetch(
      `https://api.weather.com/v1/current?city=${args.city}`
    )
    const data = await response.json()
    
    return {
      content: [{
        type: 'text',
        text: JSON.stringify(data)
      }]
    }
  }
})

// 4. 启动服务(stdio 方式)
const transport = new StdioServerTransport()
await server.connect(transport)
stdio vs HTTP+SSE 传输方式
stdio(本地进程)

MCP Server 作为子进程运行,通过标准输入输出通信

优点:简单、安全、适合本地工具

缺点:只能本地使用,不支持远程

HTTP + SSE(远程服务)

MCP Server 作为 HTTP 服务运行,支持 SSE 推送

优点:支持远程访问、多客户端共享

缺点:需要部署服务器、配置认证

通信流程(4 步)
1握手(initialize)▼
MCP Server 启动时向 Client 发送握手请求,声明自己的协议版本和能力
Server → Client
// Server 发送 initialize 请求
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2024-11-05",
    "capabilities": {
      "tools": {},
      "resources": {},
      "prompts": {}
    },
    "serverInfo": {
      "name": "filesystem",
      "version": "1.0.0"
    }
  }
}
2列工具(tools/list)▶
3调工具(tools/call)▶
4返回结果▶
技术深究:JSON-RPC 2.0 消息格式
请求消息结构
{
  "jsonrpc": "2.0",           // 协议版本
  "id": 1,                     // 请求 ID,用于匹配响应
  "method": "tools/call",      // 方法名
  "params": { ... }            // 参数对象
}
响应消息结构
// 成功响应
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": { ... }
}

// 错误响应
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32600,
    "message": "Invalid Request"
  }
}
JSON-RPC 2.0 是无状态协议,每个请求都需要包含 id 用于匹配响应
技术深究:两种传输方式
stdio(本地进程)
适用于本地工具,通过标准输入输出通信
// 启动 MCP Server 作为子进程
npx @modelcontextprotocol/server-filesystem ./project

// 通过 stdio 通信
// stdin: 接收请求
// stdout: 发送响应
HTTP + SSE(远程)
适用于远程服务,支持长连接推送
// HTTP 传输(Server-Sent Events)
POST /mcp HTTP/1.1
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": { ... }
}

// SSE 长连接用于推送
GET /mcp/sse HTTP/1.1
// 持续接收服务器推送的更新
技术深究:MCP 核心 API
initialize初始化
Server 向 Client 声明协议版本和能力
tools/list工具列表
获取 Server 提供所有可用工具
tools/call调用工具
实际调用某个工具并获取结果
resources/list资源列表
获取可访问的资源(如文件、数据库)
resources/read读取资源
读取某个资源的内容
prompts/list提示模板
获取预定义的提示模板

2.5 类比理解:USB-C 接口 ​

MCP 就像 USB-C 接口:

  • 以前:每个设备都有自己的充电口(圆口、扁口、磁吸……)
  • 现在:USB-C 统一了所有设备的充电和数据传输
  • MCP:统一了 AI 与所有工具的连接方式

工具开发者只需要实现一次 MCP Server,所有支持 MCP 的 AI 应用(Claude、Cursor、Windsurf 等)都能直接使用。

2.6 MCP 的典型应用场景 ​

场景说明示例
本地文件操作让 AI 读取/修改本地文件读取代码库、分析日志文件
数据库查询让 AI 直接查询数据库SQL 查询、数据分析
API 调用让 AI 调用第三方服务GitHub API、Slack、邮件
开发工具集成让 AI 使用开发工具Git 操作、终端命令

实际案例:

  • Cursor/Windsurf:通过 MCP 连接文件系统、Git、终端
  • Claude Desktop:通过 MCP 连接笔记软件、邮件客户端
  • 自动化脚本:让 AI 执行自动化任务(备份、部署、数据同步)

3. A2A (Agent-to-Agent Protocol) ​

3.1 协议基本信息 ​

项目内容
全称Agent-to-Agent Protocol
发起方Google
发布时间2025 年 4 月 9 日
官方文档google.github.io/A2A
开源协议Apache 2.0
GitHubgithub.com/google/A2A

为什么是 Google 发起?

Google 在 Cloud Next 2025 大会上发布 A2A,与其企业级 AI 战略密切相关。

Google 认为:未来的企业 AI 不是单个超级 Agent,而是多个专业 Agent 协作——有的负责数据分析,有的负责代码生成,有的负责文档处理。

这些 Agent 需要一种标准化的方式相互通信,A2A 应运而生。

3.2 发布的背景 ​

MCP 解决了"AI 如何连接工具"的问题,但还有一个问题:多个 Agent 如何协作?

想象一个场景:

  • Agent A 是"需求分析专家"
  • Agent B 是"代码生成专家"
  • Agent C 是"测试专家"

用户说:"帮我开发一个登录功能"

Agent A 分析需求后,需要把任务分配给 Agent B;Agent B 写完代码后,需要让 Agent C 测试。它们之间如何通信?

Google 在官方博客中写道:

"A2A is an open protocol that enables AI agents to communicate with each other, facilitating collaboration across different frameworks and vendors."

核心目标:让不同厂商、不同框架开发的 Agent 能够无缝协作。

3.3 A2A 是什么? ​

A2A 是什么?
A2A(Agent-to-Agent Protocol)是 Google 于 2025 年 4 月推出的Agent 之间相互协作的通信标准。它让不同厂商、不同框架的 Agent 能够相互发现、分配任务、交换信息,就像给 AI 世界装上了"对讲机"。
核心概念
Agent Card(Agent 名片)
每个 Agent 公开的元数据,包括能力描述、版本号、端点地址等,相当于人的"名片"
Task(任务)
Agent 之间传递的工作单元,可以包含多轮对话、文件附件等
Message(消息)
Agent 之间的通信内容,支持文本、文件、语音等多模态
SSE(Server-Sent Events)
服务器推送技术,用于实时任务进度更新
什么时候用 A2A?
当需要多个 Agent 协作完成复杂任务时
一个 Agent 负责需求分析,一个负责写代码,一个负责测试,各自发挥专长
当需要集成不同厂商的 Agent 时
Google 的 Agent、Anthropic 的 Agent、OpenAI 的 Agent 需要相互协作
当需要任务委托和进度追踪时
主 Agent 分配任务给专家 Agent,并实时接收进度更新
如何使用 A2A?
1
发布 Agent Card
在 /.well-known/agent.json 路径暴露 Agent 的能力描述
2
发现 Agent
通过 agents/get API 获取其他 Agent 的名片,了解其能力
3
发送任务
通过 tasks/send API 发送任务,支持 SSE 接收进度更新
4
获取结果
任务完成后,通过 tasks/get API 获取最终结果

三大核心概念:

概念英文作用类比
Agent CardAgent 名片描述 Agent 的能力员工工牌
Task任务要执行的工作单元工单
Message消息Agent 之间的通信内容聊天记录

3.4 A2A 的内部实现 ​

A2A 内部实现对等网络架构的通信细节
A2A 可以做什么?

A2A 让多个 AI Agent 可以相互协作,不再是单打独斗。一个复杂任务可以分配给多个专业 Agent,每个 Agent 做自己擅长的事。

如何使用 A2A?

A2A 目前还在早期阶段,主要由 Google 推动。如果你想尝试 A2A,需要开发支持 A2A 协议的 Agent 服务。

1
实现 Agent Card 端点
在你的 Agent 服务中暴露 /.well-known/agent.json,声明 Agent 的能力和版本
2
实现 A2A API
实现 agents/get、tasks/send、tasks/get 等核心 API
3
部署并注册 Agent
将 Agent 部署到服务器,并在 Agent 注册表中登记,让其他 Agent 可以发现它
当前状态
A2A 协议于 2025 年 4 月发布,目前还在快速发展中。Google 提供了参考实现,但生态还在建设中。建议关注 官方文档 获取最新进展。
通信流程(5 步)
1发现(agents/get)▼
Agent 之间通过 HTTP 请求获取对方的 Agent Card,了解对方的能力和版本
HTTP 请求
// Agent A 获取 Agent B 的 Agent Card
GET /.well-known/agent.json HTTP/1.1
Host: agent-b.company.com

// 响应
{
  "name": "Code Agent",
  "description": "专业代码生成 Agent",
  "url": "https://agent-b.company.com",
  "version": "1.0.0",
  "capabilities": {
    "streaming": true,
    "pushNotifications": true
  },
  "skills": [
    {"id": "code-gen", "name": "代码生成"},
    {"id": "code-review", "name": "代码审查"}
  ]
}
2发任务(tasks/send)▶
3执行(Task Processing)▶
4推送(SSE)▶
5返回结果(tasks/get)▶
技术深究:Agent Card 名片格式
Agent Card 是一个 JSON 文件,通常放在 /.well-known/agent.json 路径
Agent Card 示例
{
  "name": "代码生成 Agent",
  "description": "专业的前后端代码生成 Agent",
  "url": "https://code-agent.company.com",
  "version": "1.0.0",
  "capabilities": {
    "streaming": true,
    "pushNotifications": true
  },
  "skills": [
    {
      "id": "frontend",
      "name": "前端开发",
      "description": "React/Vue/Angular"
    },
    {
      "id": "backend", 
      "name": "后端开发",
      "description": "Node/Python/Go"
    }
  ],
  "authentication": {
    "schemes": ["Bearer", "OAuth2"]
  }
}
通过 Agent Card,Agent 之间可以相互发现,了解对方的能力和版本,实现互操作
技术深究:HTTP + SSE 通信
任务发送(HTTP POST)
POST /tasks/send HTTP/1.1
Host: agent-b.company.com
Content-Type: application/json
Authorization: Bearer {token}

{
  "id": "task-001",
  "message": {
    "role": "user",
    "parts": [{ "type": "text", "text": "写一个登录接口" }]
  }
}
实时推送(SSE)
GET /tasks/task-001/sse HTTP/1.1
Authorization: Bearer {token}

event: progress
data: {"status": "processing", "progress": 50}

event: completed  
data: {"status": "completed", "result": {...}}
SSE(Server-Sent Events)允许服务器主动推送消息,适合长时任务的状态更新
技术深究:A2A 核心 API
GETagents/get
获取指定 Agent 的 Agent Card,了解其能力
POSTtasks/send
发送任务给目标 Agent,同步等待结果
POSTtasks/sendSubscribe
发送任务并订阅 SSE 推送,实时获取进度
GETtasks/get
根据任务 ID 获取任务状态和结果
GETtasks/cancel
取消正在执行的任务
技术深究:认证机制
API Key
简单的认证方式,适合内部 Agent 通信
Authorization: Bearer sk-xxxxx
# 或
Authorization: ApiKey sk-xxxxx
OAuth 2.0
企业级认证,支持令牌刷新和权限控制
Authorization: Bearer {access_token}
# 支持刷新令牌
POST /oauth/token
{
  "grant_type": "refresh_token",
  "refresh_token": "xxx"
}

3.5 类比理解:企业微信 ​

A2A 就像 企业微信:

  • Agent Card:每个人的名片,显示姓名、部门、职责
  • 发任务:@某人,分配一个任务
  • 聊天沟通:任务执行过程中可以随时沟通
  • 任务追踪:能看到任务的进度和状态

不同的 Agent 就像不同的同事,A2A 让它们能够协作完成复杂项目。

3.6 A2A 的典型应用场景 ​

场景说明示例
软件开发多 Agent 协作完成开发任务需求分析→代码→测试→部署
企业工作流不同部门 Agent 协作处理业务HR Agent + 财务 Agent + 法务 Agent
智能客服多个专业 Agent 分工处理接待→解答→转接→记录
数据分析多个 Agent 协作分析数据收集→清洗→分析→可视化→报告

实际案例:

  • Google Agent Space:企业内部多个 Agent 协作处理文档、邮件、日程
  • 软件开发团队:需求 Agent → 代码 Agent → 测试 Agent → 部署 Agent
  • 智能客服系统:接待 Agent → 专业解答 Agent → 人工转接 Agent

4. MCP vs A2A:对比与关系 ​

4.1 核心差异 ​

维度MCPA2A
发起方Anthropic (2024.11)Google (2025.04)
定位AI 与工具的连接Agent 与 Agent 的协作
通信范围Client-ServerPeer-to-Peer
数据格式JSON-RPC 2.0HTTP + JSON
类比USB-C 接口企业微信

4.2 两者的关系 ​

MCP 和 A2A 不是竞争关系,而是互补关系:

MCP vs A2AAI Agent 两大协议的定位差异
想象你在一个大型商场:MCP 就像商场的"统一插座标准",让各种电器(工具)都能插上使用;A2A 就像商场的"内部对讲系统",让不同店铺(Agent)之间可以协作。
MCP工具连接
Model Context Protocol
AI 与外部工具、数据源的连接协议,让工具开发者写一次代码,所有 AI 应用都能用
发起方Anthropic
发布时间2024.11
架构Client-Server
数据格式JSON-RPC 2.0
类比USB-C 接口 —— 统一各种设备的充电方式
A2AAgent协作
Agent-to-Agent Protocol
Agent 之间的通信协议,让不同厂商、不同框架的 Agent 能够无缝协作
发起方Google
发布时间2025.04
架构Peer-to-Peer
数据格式HTTP + JSON
类比企业微信 —— 让同事之间可以发任务、聊天
核心思想:MCP 和 A2A 不是竞争关系,而是互补关系。MCP 解决"AI 如何获取外部能力",A2A 解决"多个 AI 如何协作"。

4.3 如何选择? ​

场景选择
让 AI 调用本地函数或工具Function Call
使用第三方工具(数据库、API、文件系统)MCP
构建多 Agent 协作系统A2A
同时需要工具集成和多 Agent 协作MCP + A2A

5. 协议的未来趋势 ​

5.1 生态发展 ​

MCP 生态(截至 2025 年初):

  • 官方提供的 Server:文件系统、SQLite、Git、PostgreSQL 等
  • 社区贡献的 Server:Slack、Notion、Figma、Stripe 等
  • 支持 MCP 的应用:Claude Desktop、Cursor、Windsurf、Zed 等

A2A 生态(刚发布):

  • Google 自家的 Agent 产品率先支持
  • 开源社区正在开发各种语言的 SDK
  • 企业级应用正在探索中

5.2 标准化进程 ​

目前 Agent 协议还处于"战国时代":

  • MCP 和 A2A 是最主流的两个
  • 还有其他新兴协议如 ANP、AGP 等
  • 未来可能会融合或统一

类比互联网的发展:

  • 早期:各种局域网协议并存
  • 后来:TCP/IP 成为标准
  • 现在:Agent 协议可能也会走向统一

6. 小结 ​

核心要点

协议一句话理解发布时间发起方适用场景
MCPAI 连接工具的"USB-C"2024.11Anthropic工具集成、数据源连接
A2AAgent 协作的"企业微信"2025.04Google多 Agent 协作、任务委托

关键洞察:

  1. MCP 解决"AI 如何获取外部能力"的问题
  2. A2A 解决"多个 AI 如何协作"的问题
  3. 两者互补,未来可能会融合使用
  4. 选择协议要根据具体场景,没有银弹

参考资料 ​

  1. MCP 官方文档: modelcontextprotocol.io
  2. MCP GitHub: github.com/modelcontextprotocol
  3. Anthropic 发布博客: "Introducing the Model Context Protocol" (2024-11-25)
  4. A2A 官方文档: google.github.io/A2A
  5. A2A GitHub: github.com/google/A2A
  6. Google Cloud Blog: "Announcing the Agent-to-Agent Protocol" (2025-04-09)