🚀 全新发布

Agent to Agent 协议 (A2A)

Google 推出的一个开放协议,实现不透明 Agent 智能体应用程序之间的通信和互操作性,支持跨多种企业平台工作,与 Claude MCP 协议可以协同工作

为什么选择 A2A?

A2A 为 Agent 智能体提供了一种标准化的协作方式,无论其底层框架或供应商是什么

通过这个统一协议,AI Agent 智能体可以安全地交换信息、协调行动,并跨多种企业平台工作

多 Agent 智能体支持
任务管理
跨平台协作
能力发现

核心组件

  • 协议规范
  • Agent 智能体卡片
  • 任务管理

A2A ❤️ MCP

Agent 智能体应用程序需要同时使用 A2A 和 MCP

我们推荐使用 MCP 处理工具,使用 A2A 处理 Agent 智能体

为什么需要标准协议?

标准协议对实现 Agent 智能体互操作性至关重要,特别是在将 Agent 智能体连接到外部系统时。这在两个相互关联的创新领域至关重要:工具和 Agent 智能体。

A2A 和 MCP 的关系

Agent 智能体 1
A2A 协议
Agent 智能体 2
两种协议协同工作
MCP 协议
工具(数据库、API等)

工具

工具是 Agent 智能体用于与环境交互的接口,例如访问数据库、调用 API 或执行特定任务。

Agent 智能体

Agent 智能体是执行复杂任务的自主实体,它们需要相互通信以协作完成任务。

协议互补性

A2A 和 MCP 协议相互补充,共同构建完整的 Agent 智能体应用生态系统。

职责划分清晰

两个协议有明确的职责范围,共同工作但不重叠。

A2A: 负责 Agent 智能体之间的通信、协作和能力发现
MCP: 负责 Agent 智能体与工具的交互、资源管理和上下文共享

具体应用场景示例

下面是一个 A2A 和 MCP 协同工作的实际场景:

场景:销售数据分析与报告生成

用户请求生成一份销售报告

用户向「SalesGPT」分析智能体请求生成一份包含图表的季度销售数据分析报告

A2A: Agent 智能体间通信

「SalesGPT」分析智能体通过 A2A 协议发现并联系「DataVizPro」可视化智能体,通过任务请求共享销售数据和图表需求

MCP: 工具调用

「SalesGPT」通过 MCP 协议调用数据库查询工具获取原始销售数据,「DataVizPro」则使用 MCP 调用图表生成工具绘制趋势图和对比图

任务完成并返回结果

「SalesGPT」和「DataVizPro」协作完成报告,「DataVizPro」通过 A2A 将生成的图表发送给「SalesGPT」,最终合并为完整的销售分析报告交付给用户

关键点

在这个例子中,A2A 使「SalesGPT」和「DataVizPro」这两个专业智能体能够相互发现和协作,而 MCP 使每个智能体能够访问和使用所需的专业工具。这种组合提供了完整的解决方案。

A2A 协议设计

基于现有标准(HTTP、SSE、JSON-RPC)构建的强大协议,实现企业系统间真正的多 Agent 智能体协作

Agent 智能体卡片

Agent 智能体卡片声明其能力和技能的标准格式

任务管理

定义、跟踪和完成 Agent 智能体间任务的结构化方法

消息交换

支持丰富内容类型和 UI 能力的标准化消息格式

核心特性

1

开放标准

基于 HTTP、SSE 和 JSON-RPC 等现有标准构建

2

企业就绪

支持企业级身份验证和授权

3

默认安全

将安全作为基本原则进行设计

企业级就绪

A2A 协议为企业环境提供了强大的安全特性和灵活性

TLS 安全传输

通过 TLS 加密保障所有 Agent 智能体之间通信的安全性

服务器身份

A2A 服务器通过由知名证书颁发机构签署的数字证书展示其身份

强身份验证

支持标准的开放 API 身份验证格式,如 API 密钥、OAuth 和 OIDC

追踪和可观察性

利用企业标准工具进行请求追踪和监控,支持日志和事件队列

Agent 智能体发现

A2A 协议提供标准的 AgentCard 格式用于智能体发现,同时支持多种发现方式

Agent 智能体卡片标准格式

A2A 的 AgentCard 标准化了发现过程中共享的数据格式

{
  "name": "Recipe Agent",
  "description": "Agent that helps users with recipes and cooking",
  "url": "https://example.com/agent",
  "provider": {
    "organization": "Culinary AI Inc.",
    "url": "https://culinary-ai.example.com"
  },
  "version": "1.0.0",
  "documentationUrl": "https://example.com/agent/docs",
  "capabilities": {
    "streaming": true,
    "pushNotifications": true,
    "stateTransitionHistory": false
  },
  "authentication": {
    "schemes": ["Bearer"],
    "credentials": "..."
  },
  "defaultInputModes": ["text/plain"],
  "defaultOutputModes": ["text/plain", "image/jpeg"],
  "skills": [
    {
      "id": "generateRecipe",
      "name": "Generate Recipe",
      "description": "Creates recipes based on ingredients and preferences",
      "tags": ["cooking", "food", "recipes"],
      "examples": ["Create a recipe with chicken and pasta", "What can I make with potatoes?"]
    }
  ]
}

开放式发现

通过公开路径发现 Agent 智能体卡片,无需认证即可访问

https://domain/.well-known/agent.json

精选发现(基于注册表)

由企业应用通过目录界面提供的精选 Agent 智能体注册表

私有发现(基于API)

通过自定义 API 在私有环境中交换 Agent 卡片

推送通知

A2A 协议支持断连场景下的推送通知,让 Agent 智能体间通信更加灵活

长时间运行任务

支持需要长时间执行的任务,无需保持持续连接

安全通知

加密的推送通知确保即使在断连状态下也能保持安全通信

连接模式

Agent 智能体保持活跃连接时的实时通信

断连模式

当 Agent 智能体不在线时,通过推送通知进行异步通信

实例说明

配置

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tasks/send",
  "params": {
    "id": "de38c76d-d54c-436c-8b9f-4c2703648d64",    
    "message": {
      "role": "user",
      "parts": [{
        "type": "text",
        "text": "tell me a joke"
      }]   
    },
    "pushNotification": {
      "url": "https://example.com/callback",
      "authentication": {
        "schemes": ["bearer"]
      }
    },
    "metadata": {}
  }
}

通知

通知已接收
{
  "id": "de38c76d-d54c-436c-8b9f-4c2703648d64",
  "sessionId": "c295ea44-7543-4f78-b524-7a38915ad6e4",
  "status": {
    "state": "completed"
  },
  "artifacts": [{
    "parts": [{
      "type": "text",
      "text": "Why did the chicken cross the road? To get to the other side!"
    }]
  }],
  "metadata": {}
}

全球支持

A2A 由 Google 和超过 50 个技术合作伙伴支持,成为 Agent 智能体互操作性的真正全球标准