核心架构概述
A2A(Agent2Agent) 是代理间互操作开放协议;@a2a-js/sdk 提供 TypeScript 客户端、服务端与 JSON-RPC / REST / gRPC / SSE 传输实现。
协议概念见 A2A 系列。
1. 协议解决什么
| 问题 | A2A 做法 |
|---|---|
| 异构框架无法互通 | 标准 HTTP + JSON-RPC + 共用 Task/Message 模型 |
| 代理当黑盒协作 | 只交换任务与消息,不暴露内部 memory/tools |
| 长任务 | 异步 Task 状态机 + 流式事件 |
2. SDK 定位
| 侧 | 职责 |
|---|---|
| Client | 解析 Agent Card、发消息、跟任务、收 SSE |
| Server | 处理 RPC、驱动 Executor、写 TaskStore |
| Transport | 协议绑定与序列化(含 ProtoJSON) |
3. 分层
text
应用
ClientFactory / A2AExpressApp
Transport (jsonrpc | rest | grpc)
HTTP / gRPC 线协议4. 核心概念
| 概念 | 说明 |
|---|---|
| Agent Card | /.well-known/agent.json 能力、URL、认证 |
| Task | 有状态工作单元(submitted → working → terminal) |
| Message | 对话轮次(role、parts) |
| Event | 状态变更、artifact、流式块 |
5. 设计原则(SDK)
- 传输可插拔:同一业务 API 多绑定。
- 事件驱动服务端:Executor 发事件,由框架聚合成 Task 更新。
- 非阻塞:长任务不占满 HTTP worker。
- ProtoJSON:REST 与 proto 定义对齐。
6. 阅读顺序
04 传输 → 02 客户端 → 03 服务端 → 05 事件与任务 → 06 决策。
总结
SDK = 把 A2A 协议跑在 Node/浏览器 上的参考实现;改行为先确认是协议语义还是传输层差异。