← [ BACK_TO_NOTES ]

A2A

A2A(Agent2Agent)是面向独立 Agent 系统互操作的开放协议:通过 Agent Card 发现能力,以 Message、Task、Artifact 等统一模型交换工作,并通过标准 bindings 暴露跨框架、跨厂商协作边界。

#ai #a2a #concept #growing

[!info] related notes

A2A

当前正式规范主线:A2A v1.0.0。协议版本会继续演进,实现时应以官方 spec 为准。

一句话定义

A2A 是让独立、可能使用不同框架和不同内部实现的 Agent 系统进行发现、任务交换与结果协作的互操作协议。

核心边界是:

双方不需要暴露自己的内部 memory、tools 或推理实现,也可以通过稳定协议合作。

A2A 解决什么问题

如果系统内所有 Agent 都属于同一个 Runtime:

Planner
→ Worker
→ Reviewer

通常直接用内部 orchestration 就够了。

A2A 更适合:

System A Agent
      ↓
standard protocol
      ↓
System B Agent

例如跨厂商、跨语言、跨 framework、跨组织安全边界或远程 Agent service。

Agent Card

远程 Agent 需要暴露可发现信息,让调用方知道:

  • 它是谁;
  • 能做什么;
  • 服务入口;
  • 支持哪些交互/协议能力;
  • 认证要求;
  • 输入输出能力。

Agent Card 更像 Agent service 的 capability/connection contract,而不是把内部 prompt、memory 或 tool implementation 公开出去。

核心数据模型

Message

一次交互中的消息,可由多个 content parts 组成。

Task

适合需要状态与生命周期的工作单元,可以持续产生状态或结果,而不只是一次 RPC 返回值。

Artifact

Task 产生的可交付结果,例如报告、文件或结构化数据。

Part

Message / Artifact 内的最小内容单元。

因此核心层次可以记成:

Agent
→ Message
→ maybe Task lifecycle
→ Artifact

Protocol Binding

A2A v1.0 将核心语义与具体 transport/binding 分层。

当前规范包含 JSON-RPC、gRPC、HTTP+JSON/REST 等 bindings。

重点不是必须使用某一种 RPC 风格,而是共享 canonical data model 与 operations,再映射到具体协议 binding。

长任务与增量更新

Agent 工作可能不是立即返回,因此协议需要表达:

  • task status;
  • streaming update;
  • artifact 增量;
  • asynchronous completion;

等生命周期语义。

Security Boundary

A2A 并不意味着“发现到 Agent 就可以调用一切”。

远程 Agent service 仍需要:

  • authentication;
  • authorization;
  • TLS;
  • tenant/data isolation;
  • input validation;
  • audit/trace;
  • capability exposure control。

协议互操作不会自动解决业务权限。

A2A vs MCP

最短区别:

MCP
Agent / Host ↔ Tools / Resources

A2A
Agent System ↔ Agent System

MCP 让一个 Agent 获得外部能力;A2A 让一个独立 Agent 与另一个独立 Agent 协作。

两者可以组合:

Agent A
├─ MCP → GitHub / DB / Search tools
└─ A2A → Remote Specialist Agent B

A2A vs Handoff

Handoff 经常发生在一个产品/Runtime 内;A2A 强调 interoperable system boundary。

一个 handoff implementation 可以使用 A2A,但 handoff 本身不等于 A2A。

A2A vs Orchestration

Orchestration 回答:谁决定下一步由谁做、何时并行、何时停止?

A2A 回答:当需要与另一个 Agent system 交互时,双方怎样用共同协议交换任务与结果?

因此 orchestration 可以选择使用 A2A 作为 remote-agent communication layer。

什么时候不需要 A2A

如果 Agent 全部在同一进程/Runtime,内部函数调用已经足够,又没有跨团队/跨厂商互操作需求,就不必为了“多 Agent”默认增加协议边界。

学习检查

不看正文回答:

  1. A2A 的核心问题为什么不是“多 Agent 怎么编排”,而是“独立 Agent system 怎么互操作”?
  2. Agent Card 解决什么发现/契约问题?
  3. Message、Task、Artifact、Part 分别是什么层级?
  4. 为什么长任务需要 Task lifecycle,而不只是一次 RPC 返回?
  5. Protocol data model 与 JSON-RPC/gRPC/REST binding 为什么要分层?
  6. A2A 与 MCP 分别位于哪个边界?
  7. Handoff 与 A2A 为什么可能组合但不等价?
  8. 给一个公司内部客服 Agent 调用外部物流 Agent 的场景,画出 discovery、auth、task、artifact 与 orchestration 边界。

官方入口

创建于 2025/9/1 更新于 2026/9/30
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本