您的位置 首页 AI实战案例

Google A2A协议深度解析:Agent互操作的技术标准,AI基础设施的TCP/IP时刻

🔥 火山剧创 1.0

🎬 Seedance 2.0 🖼️ Seedream 5.0 Lite ⚡ Seedance 2.0 Fast 🎨 Seedream 4.5
✅ 支持 30个 子账号
✅ 开通即赠 10,000 积分
🎬 生成约 67秒 720p视频
🖼️ 生成约 450张 图片
💧 视频去水印导出
立即关联,抢内测资格 →
扫码购买 扫码加微信抢内测资格

2025年4月,Google在Cloud Next’25大会上发布了一个看似低调、实则可能改变整个…

2025年4月,Google在Cloud Next’25大会上发布了一个看似低调、实则可能改变整个AI行业格局的开放协议——A2A(Agent-to-Agent Protocol)。一年后,这个协议已经从Google的单方面提案,演变为Linux基金会托管的、拥有150+组织贡献的行业标准,官方SDK覆盖6种编程语言,合作伙伴超过50家(包括Salesforce、SAP、Atlassian、PayPal等企业级巨头)。

与此同时,Anthropic推出的MCP(Model Context Protocol)正在成为”Agent连接工具”的事实标准。两个协议的出现,让很多人产生了同一个疑问:A2A和MCP到底是什么关系?它们是竞争还是互补?

本文将从协议设计、技术架构、代码实现、行业生态四个维度,深度拆解A2A协议。无论你是AI应用开发者、企业架构师,还是纯粹的技术观察者,这篇文章都值得你花10分钟读完。

一、为什么需要A2A?AI Agent的”巴别塔”困局

2026年,AI Agent已经从概念验证走向生产部署。但一个根本性问题始终没有得到解决:不同框架、不同厂商构建的Agent之间无法互相通信

想象一个真实场景:你想让一个”差旅规划Agent”帮你完成出差安排。这个Agent需要调用”日历Agent”查看你的日程、调用”机票Agent”搜索航班、调用”酒店Agent”预订房间、调用”报销Agent”提交费用。问题是——这些Agent可能分别由Google Calendar、Expedia、Booking.com和你的公司财务系统提供,它们运行在不同的框架上(LangChain、CrewAI、AutoGen、自研),使用不同的通信方式。

这就是AI Agent领域的”巴别塔”问题——每个Agent都在说自己的语言,彼此无法理解。在A2A出现之前,唯一的解决方案是为每一对Agent之间写一个定制的集成适配器,复杂度随Agent数量呈O(n²)增长。

A2A的核心愿景很简单:定义一种通用的”Agent间通信语言”,让任何Agent都能发现、理解并与任何其他Agent协作,无论它们运行在什么框架上

二、A2A协议核心架构:四大支柱

A2A的设计哲学可以概括为四个词:开放、简单、企业级、可组合。协议建立在一个极其成熟的基础之上——JSON-RPC 2.0 + HTTP(S),这意味着任何能发HTTP请求的系统都能参与A2A生态。

支柱一:Agent Card——Agent的”名片”

每个A2A Agent都通过一个标准化的Agent Card来宣告自己的存在和能力。Agent Card是一个JSON文件,发布在约定路径/.well-known/agent.json下,遵循Web标准的”well-known”发现机制。

一个Agent Card的典型结构如下:

{
  "name": "TravelPlanningAgent",
  "description": "专业的差旅规划智能体,支持机票、酒店、日程的协调安排",
  "url": "https://travel-agent.example.com/a2a",
  "version": "1.0.0",
  "protocolVersion": "0.2.1",
  "capabilities": {
    "streaming": true,
    "pushNotifications": true
  },
  "skills": [
    {
      "id": "flight-search",
      "name": "航班搜索",
      "description": "搜索并比较全球航班信息",
      "tags": ["travel", "flight", "booking"]
    },
    {
      "id": "hotel-booking",
      "name": "酒店预订",
      "description": "搜索和预订酒店",
      "tags": ["travel", "hotel"]
    }
  ],
  "defaultInputModes": ["text/plain", "application/json"],
  "defaultOutputModes": ["text/plain", "application/json"],
  "provider": {
    "organization": "TravelCorp",
    "url": "https://travelcorp.com"
  }
}

关键字段解读:

  • name / description:人类可读的Agent标识,用于Agent发现时的初步判断
  • url:A2A消息端点,客户端通过此URL发送JSON-RPC请求
  • capabilities:声明Agent支持的高级特性(流式传输、推送通知等)
  • skills:Agent的具体技能列表,每个skill有独立的ID、描述和标签,是Agent路由的核心依据
  • defaultInputModes / defaultOutputModes:声明Agent接受的输入输出MIME类型

支柱二:Task——Agent协作的”工作单元”

A2A中的所有交互都围绕Task(任务)展开。当Agent A需要Agent B帮忙时,它会创建或发送消息到一个Task。Task是A2A的核心状态机,拥有一个精心设计的生命周期:

submitted → working → input-required → completed
                   ↘ failed
                   ↘ canceled
  • submitted:任务已提交,等待Agent处理
  • working:Agent正在执行任务
  • input-required:Agent需要更多输入才能继续(这是A2A最精妙的设计之一——支持多轮对话式的Agent协作)
  • completed:任务成功完成
  • failed:任务失败
  • canceled:任务被取消

每个Task包含三个核心数据载体:

  • Messages:Agent之间的对话消息,每条消息有role(user/agent)和parts
  • Artifacts:任务的产出物,比如生成的文件、分析结果等
  • Parts:消息和产出物的基本单元,支持三种类型——TextPart(纯文本)、FilePart(文件引用或内联base64)、DataPart(结构化JSON数据)

支柱三:流式通信与推送通知

对于长时间运行的任务(比如一个Agent需要几分钟甚至更久才能完成),A2A提供了两种机制:

  • SSE(Server-Sent Events)流式传输:客户端发送请求后,保持连接打开,Agent通过SSE逐步推送状态更新和部分结果。这对实时仪表盘和进度追踪至关重要。
  • Push Notifications(推送通知):对于超长任务,客户端可以注册一个Webhook URL,Agent在任务状态变化时主动推送通知。客户端无需保持长连接。

这两种机制的组合,使得A2A既能支持毫秒级的快速交互,也能支持跨越数小时甚至数天的异步任务协作。

支柱四:企业级安全模型

A2A的安全设计直接面向企业级部署场景:

  • 传输层:强制HTTPS,所有通信加密传输
  • 认证:支持API Key、OAuth 2.0 Bearer Token、mTLS双向证书认证
  • 授权:Agent Card中可以声明所需的认证方式,客户端按需提供凭证
  • 隔离:每个Task在独立的上下文中运行,Agent之间无法访问彼此的内部状态

三、A2A vs MCP:竞争还是互补?

这是2026年AI领域被问得最多的问题之一。答案是:它们解决的是完全不同层面的问题,不是竞争关系,而是互补关系

用一个类比来理解:MCP像是”手”——让Agent能操作工具、访问数据、调用API;A2A像是”嘴”——让Agent能与其他Agent对话、协商、协作。

维度 MCP(Anthropic) A2A(Google)
核心定位 Agent ↔ 工具/数据(垂直连接) Agent ↔ Agent(水平协作)
协议基础 JSON-RPC 2.0 + stdio/SSE JSON-RPC 2.0 + HTTP(S) + SSE
发现机制 Server声明Resources和Tools Agent Card(/.well-known/agent.json)
核心概念 Resources、Tools、Prompts AgentCard、Task、Message、Artifact
典型场景 Agent调用数据库、读写文件、调用API 多个Agent协调完成复杂任务
状态管理 无状态(每次调用独立) 有状态(Task生命周期管理)
发起方 Anthropic(2024年11月) Google(2025年4月)
治理 Anthropic主导 Linux基金会(2025年6月捐赠)
SDK Python、TypeScript Python、TypeScript、Go、Java、C#、Rust

在实际的Agent系统中,两者是同时存在、同时使用的。一个Agent通过MCP连接各种工具和数据源来增强自身能力,同时通过A2A与其他Agent通信来完成自己无法独立处理的子任务。Google官方和Anthropic都多次公开表示,A2A和MCP是互补关系。

更多关于AI Agent技术架构和生态的讨论,推荐阅读AI Agent 2026全面解读,其中详细分析了Agent的技术架构和六大落地场景。

四、动手实践:用Python构建一个A2A Agent

理论讲完了,让我们动手写代码。A2A官方提供了6种语言的SDK(Python、TypeScript、Go、Java、C#、Rust),下面以Python为例,演示如何从零构建一个A2A Agent Server,并让另一个Agent调用它。

4.1 安装SDK

pip install a2a-sdk

4.2 实现一个”翻译Agent”服务端

from a2a.server.apps import A2AServer
from a2a.server.request_handlers import DefaultRequestHandler
from a2a.server.agent_execution import AgentExecutor
from a2a.types import (
    AgentCard, AgentSkill, Message, TextPart, Task
)

# 定义Agent能力
agent_card = AgentCard(
    name="TranslationAgent",
    description="专业的多语言翻译Agent",
    url="http://localhost:8000/a2a",
    version="1.0.0",
    skills=[
        AgentSkill(
            id="translate",
            name="文本翻译",
            description="将文本翻译为目标语言",
            tags=["translation", "nlp", "language"]
        )
    ],
    defaultInputModes=["text/plain"],
    defaultOutputModes=["text/plain"],
)

# 实现Agent执行逻辑
class TranslationExecutor(AgentExecutor):
    async def execute(self, task: Task) -> Task:
        # 获取用户输入
        user_message = task.messages[-1]
        source_text = user_message.parts[0].text
        
        # 调用翻译API(这里简化为模拟)
        translated = await self._translate(source_text, "en", "zh")
        
        # 返回结果
        task.artifacts.append(
            Artifact(parts=[TextPart(text=translated)])
        )
        return task

    async def _translate(self, text, src, tgt):
        # 实际项目中调用DeepL/Google Translate等API
        return f"[翻译结果] {text}"

# 启动A2A Server
handler = DefaultRequestHandler(
    agent_card=agent_card,
    executor=TranslationExecutor()
)
server = A2AServer(handler=handler, port=8000)
server.run()

4.3 从客户端调用Agent

from a2a.client import A2AClient

async def main():
    client = A2AClient("http://localhost:8000/a2a")
    
    # 发现Agent能力
    card = await client.get_agent_card()
    print(f"发现Agent: {card.name}")
    print(f"技能: {[s.name for s in card.skills]}")
    
    # 发送翻译请求
    response = await client.send_message(
        Message(
            role="user",
            parts=[TextPart(text="Hello, how are you today?")]
        )
    )
    
    print(f"翻译结果: {response.artifacts[0].parts[0].text}")

这就是A2A的核心用法——服务端声明能力,客户端发现并调用。当多个这样的Agent互相发现、互相调用时,就构成了一个动态的”Agent协作网络”。

五、真实场景:多Agent协作的差旅规划

让我们看一个更贴近实际的场景。假设公司部署了以下A2A Agent:

  • OrchestratorAgent:协调者,负责理解用户意图并分配子任务
  • CalendarAgent:连接Google Calendar(通过MCP),查询和安排日程
  • FlightAgent:连接航空公司API(通过MCP),搜索航班
  • HotelAgent:连接酒店预订系统(通过MCP),预订房间
  • ExpenseAgent:连接财务系统(通过MCP),提交报销

当用户对OrchestratorAgent说”帮我安排下周一到上海出差两天”时,协作流程如下:

  1. OrchestratorAgent解析意图,创建主Task
  2. 向CalendarAgent发送A2A消息:”查询下周一和周二是否有空”
  3. CalendarAgent通过MCP查询Google Calendar,返回”有空”
  4. 向FlightAgent发送A2A消息:”搜索周一早上北京→上海、周二晚上上海→北京的航班”
  5. FlightAgent通过MCP调用航空公司API,返回航班列表
  6. 向HotelAgent发送A2A消息:”预订周一晚上海酒店”
  7. 收集所有子任务结果,向ExpenseAgent提交费用汇总
  8. 返回最终方案给用户确认

注意这里的关键设计:每个Agent只负责自己擅长的一小块,通过A2A进行Agent间协调,通过MCP访问各自的工具和数据。这就是A2A + MCP组合的威力——水平协作 + 垂直能力 = 完整的Agent生态。

这种多Agent协作模式正在被各大平台采纳。Coze 3.0已经实现了多人多Agent协作能力,详见Coze 3.0多Agent协作时代。微信也上线了AI Agent能力,覆盖13亿用户,详见微信AI Agent深度分析

六、A2A的生态版图:谁在用?

A2A自2025年4月发布以来,生态扩张速度惊人。截至2026年6月,核心参与者包括:

企业级合作伙伴(50+家)

  • CRM/ERP:Salesforce、SAP、ServiceNow、Workday、UKG
  • 协作工具:Atlassian(Jira/Confluence)、Box
  • 金融支付:PayPal、Mastercard、Intuit
  • AI平台:Cohere、LangChain、Google Cloud
  • 数据库:MongoDB

框架集成

  • LangChain / LangGraph:原生支持A2A Agent作为节点
  • CrewAI(v0.80+):支持将A2A Agent作为Crew成员
  • Microsoft Agent Framework:支持A2A互操作
  • AWS Strands:支持A2A协议集成
  • Google ADK(Agent Development Kit):原生A2A支持
  • Dify:工作流中可嵌入A2A Agent调用

治理与开源

2025年6月,Google将A2A协议捐赠给Linux基金会,标志着A2A从Google主导的开源项目升级为行业共治的标准协议。目前已有150+组织贡献代码,协议版本已迭代至v1.0.1(2026年5月28日)。GitHub仓库(google/A2A)提供Apache 2.0许可下的全部代码和文档。

七、A2A的局限与未来

尽管前景广阔,A2A仍面临一些现实挑战:

  1. 信任问题:当Agent A调用Agent B时,A如何信任B的输出?当前协议没有内置的”Agent信誉”或”结果验证”机制,这在金融、医疗等高风险场景中是个隐患。
  2. 成本控制:多Agent协作意味着多次LLM调用,成本可能迅速膨胀。A2A协议本身不涉及成本优化,需要上层框架来处理。
  3. 状态同步:当多个Agent同时操作同一个Task时,状态冲突的解决机制还不够完善。
  4. 生态碎片化:虽然有Linux基金会治理,但各厂商的实现可能存在微妙的不兼容。”标准”的价值取决于”遵循标准的程度”。
  5. 安全审计:Agent之间的通信可能涉及敏感数据,目前缺乏标准化的审计日志和合规性框架。

不过,A2A团队已经在路线图中规划了这些能力的演进。随着更多企业投入生产使用,这些问题将逐步得到解决。

八、总结:A2A是AI基础设施的”TCP/IP时刻”

回顾互联网发展史,TCP/IP协议并不是最好的网络协议,但它是第一个让所有计算机能互相通信的开放标准。正是因为有了TCP/IP,才有了后来的HTTP、Web、移动互联网和云计算。

A2A正在扮演AI Agent领域的类似角色。它不追求完美,但追求开放、通用、可组合。当每一个Agent都能通过标准协议被发现、被调用、被组合时,AI的能力边界将不再受限于单个Agent的智能程度,而是扩展到整个Agent网络的集体智慧。

对于开发者和企业来说,现在正是投入A2A生态的最佳时机。协议已成熟(v1.0.1),SDK覆盖6种语言,主流框架都已集成,Linux基金会提供了长期治理保障。等到所有企业都接入A2A时再跟进,就已经太晚了。

延伸阅读:如果你正在构建Agent系统,以下文章值得一读——AI Agent 2026全面解读DeepSeek V4.1与MCP协议DeepSeek编程Agent四路横评2026年6月AI大模型最新进展,从协议标准到实战落地,全面覆盖AI前沿动态。

📢 延伸阅读:A2A协议只是AI Agent浪潮的一部分。了解本周四大事件如何共同定义了AI Agent时代:AI Agent时代正式来临:一周四大事件揭示AI下半场走向

本文来自网络,不代表无矩AI立场,转载请注明出处:https://iaipie.com/google-a2a%e5%8d%8f%e8%ae%ae%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90%ef%bc%9aagent%e4%ba%92%e6%93%8d%e4%bd%9c%e7%9a%84%e6%8a%80%e6%9c%af%e6%a0%87%e5%87%86%ef%bc%8cai%e5%9f%ba%e7%a1%80%e8%ae%be%e6%96%bd/

作者: ncomer

🤖 阿里云 · 大模型 AI 套餐

通义千问 + HappyHorse 视频生成 + 百炼平台一站式部署

🎁 通过本链接额外 15% 优惠 🎬 HappyHorse 视频模型 | 💬 通义千问 | ☁️ 百炼平台

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

0890-88881680

在线咨询: QQ交谈

邮箱: 23935379@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部