谷歌 A2A 协议:开启 AI 智能体协作新时代

发布时间: 更新时间: 总字数:1756 阅读时间:4m 作者: IP上海 分享 网址

谷歌发布的A2A(Agent-to-Agent)协议是一项开放标准,旨在让不同平台、不同开发者构建的 AI 智能体(Agent)能够相互发现、安全通信和协同工作。该协议的推出打破了 AI 生态中的孤岛效应,为构建功能更强大、更复杂的集成式 AI 系统铺平了道路。

介绍

A2A 的核心理念是将智能体视为独立的、具备决策能力的实体,而不仅仅是被动执行指令的工具。它专注于实现智能体之间自然的、非结构化的协作,即使它们没有共享的内存、工具或上下文。

A2A 协议工作原理

A2A 协议的运作基于客户端-服务器模式,其中一个客户端智能体向一个远程智能体发起任务请求。其关键机制包括:

  • 智能体名片(Agent Card):每个 A2A 兼容的智能体都会发布一张名片(通常是一个http://<a2a-svr>/.well-known/agent.json文件)。这张名片详细描述了该智能体的身份、能力(即它可以执行哪些任务)、API 端点、所需认证方式等。这使得其他智能体能够动态地发现并了解如何与之交互。
  • 任务对象(Task Object):当一个智能体需要另一个智能体协助时,它会创建一个任务对象。该对象封装了任务的描述、所需输入以及状态。任务的生命周期(如创建、执行、完成)由协议进行管理,支持异步通信和状态更新。

简单使用示例

想象一个场景:用户要求其个人助理智能体(客户端)预订一家评价不错的汉堡店。这个个人助理本身没有预订餐厅的功能,但它可以通过 A2A 协议与专门的餐厅预订智能体(远程)协作。

1. 发现与连接

个人助理智能体首先会通过网络发现餐厅预订智能体发布的智能体名片。名片内容(通过http://<a2a-svr>/.well-known/agent.json对外暴露)可能如下(简化版 JSON):

{
  "a2a_version": "0.1.0",
  "id": "restaurant-booker-agent",
  "name": "餐厅预订智能体",
  "description": "可以帮助您预订餐厅座位。",
  "capabilities": [
    {
      "name": "book_restaurant",
      "description": "根据餐厅名称、人数和时间进行预订。",
      "input_schema": {
        "type": "object",
        "properties": {
          "restaurant_name": { "type": "string" },
          "party_size": { "type": "number" },
          "time": { "type": "string", "format": "date-time" }
        }
      }
    }
  ],
  "endpoints": {
    "url": "https://api.example-restaurant-booker.com/a2a"
  }
}

2. 发起任务

个人助理智能体根据名片信息,向指定的url发送一个创建任务的 HTTP POST 请求:

POST /a2a/tasks HTTP/1.1
Host: api.example-restaurant-booker.com
Content-Type: application/json
Authorization: Bearer <AUTH_TOKEN>

{
  "title": "预订一个汉堡店",
  "description": "为用户预订一家高分汉堡店,两人,今晚7点。",
  "capability": "book_restaurant",
  "inputs": {
    "restaurant_name": "任意高分汉堡店",
    "party_size": 2,
    "time": "2025-06-17T19:00:00Z"
  }
}

3. 任务执行与响应

餐厅预订智能体接收到请求后,开始执行任务。它可能会在其内部数据库中查找汉堡店、检查空位并完成预订。任务完成后,它会向用户返回最终结果,例如一个包含预订确认信息的工件(Artifact)。

{
  "jsonrpc": "2.0",
  "id": "task-12345",
  "result": {
    "type": "artifact",
    "role": "agent",
    "parts": [
      {
        "type": "json",
        "json": {
          "status": "confirmed",
          "restaurant": "老王汉堡",
          "confirmation_id": "XYZ789"
        }
      }
    ]
  }
}

通过这个流程,两个原本独立的智能体成功协作,完成了单个智能体无法独立处理的复杂任务。

A2A 与 MCP 协议对比

A2A 协议经常与由 Anthropic 公司推出的 MCP(Model Context Protocol,模型上下文协议)相提并论。虽然两者都旨在增强 AI 系统的能力,但它们的焦点和应用场景有本质区别。简而言之,A2A 是关于智能体之间的协作网络,而 MCP 是关于智能体与外部工具和数据的连接

下表详细对比了两种协议的主要区别:

特性 A2A (Agent-to-Agent) 协议 MCP (Model Context Protocol) 协议
核心目标 实现不同 AI 智能体之间的通信和协作 标准化 AI 模型与外部数据源和工具的连接。
交互模式 智能体 ↔️ 智能体 (Agent-to-Agent) 智能体 ↔️ 工具/数据 (Agent-to-Tool/Data)
发起方 谷歌 (Google) Anthropic (Claude 的母公司)
设计哲学 将智能体视为可以协商和合作的自主实体 将外部资源视为可供 AI 模型调用的服务或上下文
主要功能 - 智能体发现 (Agent Discovery) <br> - 任务分配与委托 <br> - 异步通信与状态跟踪 - 实时数据接入 <br> - 减少模型幻觉 (通过事实数据) <br> - 简化外部工具的集成开发
典型用例 - 多智能体工作流:一个招聘智能体与日历智能体、面试智能体协同工作。 <br> - 跨平台任务自动化:将在 Salesforce 中的任务委托给能操作 Atlassian 的智能体。 - 实时问答:AI 模型连接到天气 API,提供最新的天气预报。 <br> - 代码分析:AI 连接到 GitHub 仓库,分析最新的代码提交。
关系 互补关系。A2A 负责智能体之间的任务编排和流程控制,而参与协作的每个智能体内部可以使用 MCP 来连接其完成任务所需的具体工具和数据。 互补关系。MCP 为单个智能体提供执行具体操作的能力,而 A2tA 则让多个具备不同能力的(由 MCP 增强的)智能体能够协同完成更宏大的目标。

参考

  1. https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/
  2. https://google-a2a.github.io/A2A/specification/
  3. https://github.com/google-a2a
  4. https://github.com/google-a2a/A2A
  5. https://github.com/google-a2a/a2a-samples
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数