xiaoping`S学习笔记

七脉的笔记
日常学习的笔记稿与记录稿
  1. 首页
  2. 随笔记录
  3. 正文

A2A (Agent-to-Agent) 协议详解

2026年7月3日 4点热度 0人点赞

A2A (Agent-to-Agent) 协议详解

A2A 是一个开放协议,让不同框架、不同厂商、不同服务器上运行的 AI Agent 能够互相通信和协作。当前版本 v1.0.0。

一、原始内容概述

1.1 什么是 A2A

A2A(Agent-to-Agent,代理间通信协议)是一个开放协议,由 Google 贡献给 Linux Foundation 作为开源项目,Apache 2.0 许可。当前版本为 v1.0.0(正式发布版)。

它的核心使命是:让不同框架、不同厂商、不同服务器上运行的 AI Agent 能够像 Agent 一样互相通信和协作——而不是作为对方的"工具"。

1.2 核心问题

A2A 解决的核心问题是:异构 AI Agent 系统之间如何实现互操作?

  • Agent 可能用不同框架构建(ADK、LangGraph、BeeAI 等)
  • Agent 可能由不同公司运营(跨企业协作)
  • Agent 运行在不同服务器上(跨信任边界)
  • Agent 不能暴露内部状态、记忆或工具

A2A 的答案:定义一套通用语言,让 Agent 发现彼此、协商交互、安全协作,同时保持各自的不透明性。

1.3 核心设计原则

  1. 简单:复用成熟标准(HTTP、JSON-RPC 2.0、SSE)
  2. 企业就绪:认证、授权、审计、追踪
  3. 异步优先:长耗时任务和 HITL
  4. 模态无关:文本、文件、结构化数据、音视频
  5. 透明执行:不共享内部状态

1.4 三层架构

L1 — 数据模型层:Task、Message、Part、Artifact、AgentCard、Extension

L2 — 操作层:Send Message、Send Streaming Message、Get Task、List Tasks、Cancel Task、Get Agent Card

L3 — 协议绑定层:JSON-RPC over HTTP(S)、gRPC、HTTP+JSON/REST

1.5 Agent 卡片(Agent Card)

Agent Card 是 JSON 格式的"名片",包含身份信息、能力、技能、端点 URL、认证要求、租户标识。

1.6 任务生命周期

SUBMITTED → WORKING → COMPLETED / FAILED / CANCELED / REJECTED

1.7 三种交互模式

① 同步请求/响应:立即返回 Task 或 Message

② 流式交互:SSE 连接,实时推送中间结果

③ 异步推送通知:webhook URL,服务器主动 POST

1.8 官方 SDK

  • Python:pip install a2a-sdk
  • JavaScript:npm install @a2a-js/sdk
  • Go:go get github.com/a2aproject/a2a-go
  • Java、.NET、Rust 均有 SDK

二、使用场景举例

场景 1:跨 Agent 任务委派

主 Agent 通过 Agent Card 发现 Travel Agent 和 Hotel Agent,分别委派机票和酒店任务,子 Agent 各自处理返回结果。

场景 2:人机协同审批

Agent A 提交报销审批 Task(状态 WORKING),等待主管审批(HITL),完成后 Task 变 COMPLETED。

场景 3:流式数据分析报告

分析 Agent 流式返回中间结果,最终输出完整报告 Artifact,客户端实时看到分析进度。

场景 4:跨企业 Agent 协作

企业 A 的供应链 Agent 查询企业 B 的库存 Agent——跨信任边界的协作典范。

场景 5:多框架异构 Agent 协同

ADK + LangGraph + BeeAI 的 Agent 通过 A2A 在同一工作流中协作。


三、最佳实践

Agent 卡片设计

  • 精确描述能力,不夸大
  • 明确认证要求
  • 版本管理

Task 管理

  • 合理使用 historyLength
  • 游标分页而非 offset
  • contextId 关联对话

错误处理

  • 区分可重试和不可重试错误
  • 流式中断后 Get Task 恢复
  • 考虑幂等性

安全

  • 始终验证 Agent Card
  • 能力最小化
  • 数据最小化
  • 全程 HTTPS

四、避坑指南

  1. 混淆 Send/Streaming Message
  2. 忽视流式中断恢复
  3. 不使用 contextId
  4. Push notification URL 不可达
  5. 向终态 Task 发消息:返回 UnsupportedOperationError
  6. 长轮询代替流式/推送
  7. 忽略 historyLength 限制
  8. 信任非 HTTPS 端点
  9. Agent Card 未经验证
  10. 缺少数据访问隔离

五、集成方需要做的工作

A2A Server(暴露 Agent)

  • 选择 SDK,实现核心操作
  • 定义并暴露 Agent Card
  • 配置认证与授权
  • 实现 Task 生命周期
  • 支持 Streaming 和 Push Notification

A2A Client(调用 Agent)

  • 发现 Agent,解析 Agent Card
  • 调用 sendMessage,处理返回的 Task
  • 处理错误和重试

基础设施集成

  • Agent 注册中心(可选)
  • 监控与追踪
  • 安全网关和 API 网关
  • 长任务管理

官方资源

  • 规范官网:https://a2a-protocol.org
  • GitHub:https://github.com/a2aproject/A2A
  • 最新规范:https://a2a-protocol.org/latest/specification/
  • 示例项目:https://github.com/a2aproject/a2a-samples
  • 在线课程:https://goo.gle/dlai-a2a
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2026年7月3日

七脉神剑

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2026 75live.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang