Skip to content

智能体间通信(A2A)

让不同框架的AI智能体无缝协作

🎯 核心概念

来源:Agentic Design Patterns - Inter-Agent Communication

什么是A2A?

定义

Agent2Agent (A2A) 是Google推出的开放标准协议,使基于不同框架(LangGraph、CrewAI、ADK等)构建的AI智能体能够无缝协调、任务委派和信息交换。

为什么需要A2A?

问题A2A解决方案
不同框架智能体无法通信提供通用协议
集成成本高、耗时标准化接口
智能体孤立运行支持协作和任务委派

行业支持

Atlassian、Box、LangChain、MongoDB、Salesforce、SAP、ServiceNow、Microsoft等均支持A2A协议。


🔄 核心参与者

用户 → A2A客户端(Client Agent) → A2A服务器(Remote Agent)
       代表用户请求                处理请求返回结果
角色说明
用户发起智能体协助请求
A2A客户端代表用户请求操作或信息
A2A服务器处理请求的远程智能体(不透明系统)

🪪 智能体卡片(Agent Card)

智能体的数字身份文件(JSON格式):

内容说明
身份信息名称、描述、版本
端点URL通信地址
功能声明流式传输、推送通知等
技能列表智能体能做什么
认证要求apiKey、OAuth等

示例

json
{
  "name": "WeatherBot",
  "description": "提供天气预报",
  "url": "http://weather.example.com/a2a",
  "capabilities": { "streaming": true },
  "skills": [
    { "id": "get_weather", "name": "获取天气" }
  ]
}

🔍 智能体发现

策略说明适用场景
Well-Known URI标准路径/.well-known/agent.json公共服务
托管注册中心集中目录查询企业环境
直接配置私下嵌入共享私有系统

📨 通信与任务

任务(Task)

属性说明
唯一ID任务标识符
状态submitted → working → completed
contextId关联多次交互

消息(Message)

组成说明
attributes元数据(优先级、时间等)
parts实际内容(文本、文件、JSON)

通信协议

  • 传输:HTTP(S)
  • 格式:JSON-RPC 2.0

⚙️ 四种交互机制

机制方法适用场景
同步请求/响应sendTask快速即时操作
异步轮询返回taskId定期查询长时间任务
流式更新(SSE)sendTaskSubscribe实时增量结果
推送通知(Webhooks)注册URL推送超长运行任务

🔐 安全性

机制说明
双向TLS加密认证连接
审计日志记录所有通信
卡片声明明确认证要求
凭证处理OAuth/API密钥通过HTTP标头

🔀 A2A vs MCP

协议侧重点作用
A2A智能体之间协调、任务委派、协作
MCP智能体与外部资源构建上下文、工具交互

A2A和MCP是互补的:MCP连接外部工具,A2A让智能体协作。


📋 应用场景

场景说明
多框架协作ADK、LangGraph、CrewAI等智能体协作
工作流编排数据收集 → 分析 → 报告生成
动态信息检索主智能体调用数据获取智能体

💡 核心要点

使用场景

  • 协调两个或多个AI智能体
  • 智能体使用不同框架构建
  • 构建复杂模块化应用
  • 需要动态发现其他智能体能力

一句话总结

A2A协议通过标准化通信方式,使不同框架的AI智能体能够无缝协调、任务委派和信息共享,为构建复杂多智能体系统提供模块化和可扩展的生态。


🔗 相关阅读

参考文献

基于 VitePress 构建