A2A

实现AI智能体在不同生态系统间的无缝通信。

2025-04-04

Agent2Agent (A2A) 协议是谷歌推出的一项开放计划,旨在解决企业采用AI时面临的最大挑战之一:不同框架和厂商构建的智能体之间的互操作性问题。A2A为AI智能体提供了一套标准化通信方式,让它们能安全地交流、协商协作,而无需考虑底层架构差异。

核心概念

  • 智能体名片(Agent Card):一个公开的元数据文件(./well-known/agent.json),描述智能体的能力、技能、服务端点URL和认证要求,用于服务发现。
  • A2A服务端:通过HTTP端点实现A2A协议方法(定义在JSON规范中)的智能体,负责接收请求并管理任务执行。
  • A2A客户端:通过向A2A服务端URL发送请求(如tasks/send)来使用服务的应用程序或其他智能体。
  • 任务(Task):核心工作单元。客户端通过发送消息(tasks/sendtasks/sendSubscribe)发起任务,任务会经历已提交处理中需输入已完成等状态。
  • 消息与部件(Message & Parts):代表客户端(role: "user")与智能体(role: "agent")的对话轮次。消息包含文本、文件或结构化JSON等"部件"。
  • 产出物(Artifact):智能体执行任务时生成的结果(如文件、结构化数据)。
  • 流式传输与推送通知:通过服务器推送事件(SSE)或主动Webhook通知实现实时更新。

运作流程

  1. 服务发现:客户端从服务端的固定URL获取智能体名片
  2. 任务发起:客户端发送带有初始消息和唯一任务ID的tasks/sendtasks/sendSubscribe请求
  3. 任务处理:服务端处理任务并通过流式传输(SSE)发送进度更新,或返回最终结果
  4. 交互(可选):如需补充输入,客户端发送后续消息
  5. 任务完成:任务进入终止状态(已完成失败已取消

参与方式

  • 文档:阅读技术文档并查看JSON规范
  • 示例代码:探索Python/JS示例客户端/服务端、多智能体Web应用和CLI工具
  • 社区:通过GitHub讨论区、问题反馈或谷歌合作伙伴计划参与贡献

未来计划

  • 协议增强:改进智能体发现、协作功能(如QuerySkill())、任务生命周期和客户端方法
  • 示例与文档:简化示例代码,增加框架集成,根据JSON Schema生成易读文档

A2A协议采用Apache许可证开源,欢迎全球开发者共同塑造多智能体通信的未来。

Artificial Intelligence Multi-Agent Systems Interoperability API Protocols Open Source