A2A 生态调研:寻找 mq9 的价值点
调研背景
A2A(Agent2Agent)协议自 Google 牵头发布、Linux Foundation 接管后,已经成为 Agent 通信领域当前最活跃的开放协议。围绕 A2A 形成的生态项目有几十个。这次调研以 awesome-a2a(github.com/ai-boost/awesome-a2a,529 stars,9 种语言文档)作为入口,把整个 A2A 生态当前在做什么扫一遍,然后回答一个具体问题:mq9 应该在这张生态地图上占哪个位置。
一、A2A 生态项目全景
把 awesome-a2a 收录的所有项目按功能归类,分七大类。每类的代表项目和当前状态如下。
官方和社区 SDK
A2A 官方 SDK 已经覆盖主流语言,社区还在补地道实现。
| 语言 | 官方 SDK | 主要社区实现 |
|---|---|---|
| Python | a2a-sdk v1.0 (reference) | a2a_min、python-a2a、A2AServer、adk-modular-architecture |
| JavaScript | @a2a-js/sdk v1.0 | nestjs-a2a、Artinet SDK |
| Go | a2a-go v1.0 | trpc-a2a-go、a2aserver/a2a-go、yeeaiclub/a2a-go |
| Java | a2a-java(Maven)v1.0 | a2ajava(Spring Boot)、a2a4j |
| .NET | A2A(NuGet)v1.0 | a2adotnet、a2a-net |
| Rust | (无官方) | a2a-rs(hexagonal arch)、rust-agentic |
框架原生集成
主流 Agent 框架都已经支持 A2A:LangGraph、CrewAI、Google ADK、Semantic Kernel、AG2 (AutoGen)、LlamaIndex、Marvin、MindsDB、Genkit。其中 AG2 的 A2aAgentServer + A2aRemoteAgent 是相对完整的双向实现。
专门为 A2A 设计的框架
| 项目 | 定位 | 特点 |
|---|---|---|
| AgentUp | developer-first A2A 框架 | 配置驱动,内置 OAuth2/JWT/API Key |
| AgentScope Runtime | 生产级 A2A 运行时 | secure sandbox + Agent as API |
平台 / Runtime 层
把 A2A 包装成"全家桶"运行时的项目。
| 项目 | 包含的能力 |
|---|---|
| Aira | A2A 网络 + 注册发现 + 平台框架 |
| Bindu | A2A wrap + DID 身份 + OAuth2 + X402 支付 + observability + retry + scheduling |
| Inai | P2P 发现 + DID + libp2p + ANR + ERC-8004 链上 |
| Elkar | task-management layer,发送/追踪/编排 |
| Cognisphere | 基于 Google ADK 的开发框架 |
| OpenAgents | 多 agent 平台 + MCP + WebSocket + gRPC + HTTP |
注册中心和发现
A2A spec 明确把注册中心留给生态,目前几个尝试。
| 项目 | 路线 | 局限 |
|---|---|---|
| AWS A2A Registry | 基于 Bedrock + S3 Vectors 做语义检索 | 绑定云厂商 |
| A2A Registry by prassanna-ravishankar | 开源 directory,REST API + Python client | 还在早期 |
| Hashgraph Online | 链上注册(HCS-14 UAID),跨协议桥接 | 涉及加密货币 |
| Aira | 注册发现作为平台一部分 | 不独立可用 |
商业化层
把 A2A 和支付、链上身份结合,属于另一条赛道。代表项目是 WorkProtocol(USDC escrow on Base,agent job 市场)、Lucid Agents Commerce SDK(x402/ERC8004/AP2 支付协议)等。
验证和调试工具
a2a-inspector(官方 compliance check)、A2A Validation Tool by llmx-de(跨平台桌面应用)、Lingua Universale(形式化验证 DSL)。这块工具相对完整。
二、生态地图:拥挤区 vs 真空区
把上面 7 类项目按"格局成熟度 + mq9 是否应该进入"重新归纳,得到这张关键表。
| 区域 | 项目数量 | 格局状态 | mq9 应该进入? |
|---|---|---|---|
| 官方 SDK | 5 种语言完整覆盖 | 极度拥挤 | 不进入,通过包装接入 |
| 社区 SDK | 每语言 2-4 个 | 拥挤 | 不进入 |
| 框架集成 | 主流框架已支持 | 拥挤 | 不进入 |
| 专门 A2A 框架 | 2 个先行者 | 早期 | 不进入 |
| 平台/Runtime(全家桶) | 5-6 个并行 | 拥挤但都散 | 不进入(保持聚焦) |
| Agent Discovery | 几个尝试都不完整 | 真空 | 进入 |
| 可靠异步传输 | 完全无人做 | 真空 | 进入(核心) |
| Monitoring/Tracing | 完全无人做 | 真空 | 进入(顺手) |
| 协议中立基础设施 | 完全无人做 | 真空 | 进入(差异化) |
| 商业化/支付/链上 | 边缘探索 | 另一条赛道 | 不进入 |
四个真空区集中在一起,构成 mq9 的天然位置。下面具体看每个空白的状态。
三、四个空白的具体状态
awesome-a2a 的 README 在 "Tools & Utilities" 章节明确写了 "Community contributions welcome",主动招募几个方向。结合生态调研,把 mq9 能进入的四个空白详细列一下。
空白一:Agent Discovery / Registry
A2A 协议明确不做注册中心,留给生态。目前几个项目的尝试都有明显局限:
| 现有项目 | 局限 |
|---|---|
| AWS A2A Registry | 云厂商锁定,依赖 Bedrock + S3 Vectors |
| Hashgraph universal registry | 链上方案,涉及加密货币 |
| Aira registry | 绑定其平台框架,不独立 |
| prassanna-ravishankar/A2A Registry | 早期开源 directory,无语义检索 |
mq9 内置的 AGENT.REGISTER + AGENT.DISCOVER,支持文本检索 + 语义检索 + tag 过滤,自部署、轻量、协议无关。这是当前唯一能满足"轻量 + 自部署 + 协议中立 + 语义检索"四项的方案。
空白二:可靠异步传输
A2A 默认 transport 是 HTTP + JSON-RPC + SSE,三种方式都有具体局限:
| 当前 transport | 局限 |
|---|---|
| HTTP request-response | 双方必须同时在线 |
| SSE 流式响应 | 断线就丢,要靠 tasks/resubscribe 重放 |
| Webhook push notification | fire-and-forget,无可靠投递保证 |
| Long polling | 实时性差,连接开销大 |
整个 awesome-a2a 列表里没有任何项目以"Agent 可靠传输基础设施"为定位。最接近的 Inai 走 P2P 路线,工程复杂度高、性能不可控,定位是"网络实现"而非"传输管道"。
mq9 的 mailbox 模型本质就是为这个空白设计的:消息持久化、双方可离线、N-to-N 拓扑、消息级 TTL 和优先级。
空白三:Monitoring / Tracing
awesome-a2a 明确写:
Community contributions welcome: Adapters or libraries for integrating A2A task flow data into mainstream monitoring platforms like OpenTelemetry, Prometheus, Grafana, etc.
目前这个方向完全真空。A2A 任务有完整状态机(submitted → working → completed),但没有标准化的可观测性方案。
mq9 broker 上的消息天然可以承载 OpenTelemetry trace context(之前 Kafka message trace 方案讨论过同样的机制)。在 mq9 上跑 A2A 自然就有 task 流转的完整轨迹。mq9 在这块顺手能做。
空白四:协议无关的通信管道
所有 A2A 生态项目都绑死 A2A 协议。没有一个项目让用户既能用 A2A、又能用自定义协议跑在同一套基础设施上。
mq9 的两层 SDK 设计天然支持这个空白:
| 接入路径 | 适用场景 |
|---|---|
| 走 mq9.a2a facade | 协议合规接入,需要和 A2A 生态互操作 |
| 直接用 mq9 原生 API | 团队内部 Agent 通信,灵活定义 schema |
底层走同一个 broker,上层协议封装可选。这种"协议中立的基础设施 + 任意协议的封装"目前是个明显的空位。
四、mq9 在生态中的位置
把 mq9 放到 A2A 协议栈里,它的位置是清晰的,不和现有项目正面竞争。
| 层 | 谁在做 | mq9 是否参与 |
|---|---|---|
| 业务应用层 | 业务方自己写 | 不参与 |
| Agent 编排层 | LangGraph、CrewAI、AG2 | 不参与 |
| A2A 协议层 | a2a-sdk(5 种官方语言) | 不参与 |
| mq9 SDK 封装层 | mq9.a2a 等协议 wrapper | mq9 提供 |
| Transport 层 | HTTP/SSE(默认)/ gRPC | mq9 提供另一选项 |
| 消息传输 / mailbox | 通用 MQ(Kafka 等) | mq9 broker 专为 Agent 设计 |
| Agent 注册中心 | Aira、AWS Registry 等局部尝试 | mq9 内置 |
| Agent 身份/支付/链上 | Bindu、Inai 等 | 不参与 |
mq9 在三个层面提供能力:SDK 封装层(轻量门面)、Transport 层(mq9 broker 作为 a2a-sdk 的 transport 选项)、Agent 注册中心(broker 内置)。其他层尊重现有生态。
五、mq9 的四个价值点
基于真空区识别,mq9 有四个真实价值点。每一个都对应一个明确的生态空白。
| 价值点 | 对应空白 | 差异化对比 |
|---|---|---|
| Agent 通信的可靠传输 | 整个生态没有项目以此为定位 | 不和 HTTP/SSE 竞争,是替代选项 |
| 内置 Agent 注册中心 | A2A spec 留给生态,目前方案都不完整 | 轻量、自部署、协议中立、内置语义检索 |
| 协议无关通信管道 | 所有项目都押注 A2A,没人做协议无关 | 同一套基础设施支持 A2A 和自定义协议 |
| 最少代码完成 Agent 接入 | a2a-sdk 完整但不便利,60 行变 15 行 | facade pattern,对象类型不变保持互操作 |
这四个价值点不是叠加出来的"营销话术",是产品结构上就具备的:同一个 broker、同一套 SDK 同时提供四种能力,互相耦合、互相强化。
六、mq9 的产品定义
基于以上调研结论,mq9 的产品定义是:
mq9 是 Agent 通信的基础组件,由两部分组成:
mq9 broker:协议无关的可靠消息管道,提供持久化 mailbox、注册中心、N-to-N 拓扑能力。
mq9 SDK:协议轻量级封装层,支持 A2A 等主流 Agent 协议,也支持用户自定义协议。
围绕这个定义,mq9 有三个核心价值标准(轻、稳、开)和两条接入路径(A2A 标准接入 + 原生 API 自定义接入)。
| 维度 | mq9 的承诺 |
|---|---|
| 轻 | 用最少的代码完成接入。一个 A2A Agent 60 行变 15 行 |
| 稳 | 基础组件不能在出问题时拖业务下水 |
| 开 | 和 a2a-sdk 标准 100% 兼容,不绑定任何特定协议 |
明确不做的事情:
| 不做的事 | 谁在做 |
|---|---|
| 协议本身 | A2A 工作组、MCP 协议组 |
| Agent 编排 | LangGraph、CrewAI、AutoGen |
| Agent 框架 | AG2、AgentUp |
| LLM 集成 | 应用层 |
| Agent 身份/支付/链上 | Bindu、Inai、WorkProtocol |
| 大而全的 Agent 平台 | Aira、Cognisphere |
这种克制不是被动选择,是 mq9 价值定位的主动结果。
七、调研结论
把整个调研归纳成几个关键判断。
A2A 生态当前的格局:协议层(SDK)和应用层(框架)已经拥挤,再切入没有空间。平台层都在做"全家桶",野心大但定位散。传输基础设施层是真空,没有项目以此为定位。
A2A 协议本身的态度:协议归协议、传输归生态。spec 明确把发现机制、可靠异步、长任务恢复留给社区,并在 1.0 版本提供了 transport 扩展点(ClientFactory.register、AgentCard.supportedInterfaces、a2a-* 参数前缀)。mq9 作为 A2A 的一种 transport 是协议层"祝福"的事,不是 hack。
mq9 的最终价值在 SDK 和 broker 共同作用
mq9 的真正价值不在 SDK 一侧,也不在 broker 一侧,而是两者协同。单独看任何一侧,价值都是不完整的。
| 只看 SDK | 只看 broker | SDK + broker 共同 |
|---|---|---|
| 任何人都能在 a2a-sdk 之上写一个 facade | 通用 MQ,没有 Agent 专用语义 | 完整的 Agent 通信解决方案 |
| 没有可靠传输保证 | 没有便利的接入方式 | 接入轻、传输稳、协议开 |
| 用户体验好但底层不可靠 | 底层可靠但接入门槛高 | 业务方写 15 行代码就有可靠 Agent 通信 |
| 容易被复制 | 通用 MQ 已经太多 | 工程深度和产品体验互相支撑 |
SDK 在上层给用户"轻"的接入体验,broker 在下层给用户"稳"的传输保证。两者缺一价值都不完整:
- 没有 broker,SDK 就只是另一个 a2a-sdk 包装层,和市面上的其他 wrapper 没有差别
- 没有 SDK,broker 就只是又一个 MQ,用户要自己写一堆胶水代码才能用起来
- 两者合在一起,才能形成"15 行代码完成可靠 Agent 通信"这种端到端体验
这种端到端体验对应的是 Agent 通信的完整场景:
| 场景 | mq9 提供的能力 |
|---|---|
| 跨 Agent 调用 | SDK 自动发现 + broker 持久化 mailbox |
| 长任务异步处理 | SDK 包装 push notification + broker 保存中间状态 |
| 双方不在线通信 | SDK 自动重试 + broker 消息持久化等待 |
| 多 Agent 协作 | SDK 隐藏拓扑细节 + broker N-to-N 原生支持 |
| 团队内部自定义协议 | SDK 原生 API + broker 不解析消息内容 |
| A2A 标准接入 | mq9.a2a facade + broker 作为 transport |
每一个场景都需要 SDK 和 broker 同时发力。mq9 的护城河不是某一部分,是两部分的耦合。SDK 决定上限(用户体验有多好),broker 决定下限(出问题时多稳)。
最终判断:mq9 的方向是 A2A 生态真实需要、但当前无人填补的方向。生态里没有第二个项目同时具备"轻量 facade + 可靠 broker"这两层能力。大家要么只做 SDK(轻但没传输保证),要么只做 broker 或 runtime(重但接入门槛高),要么做全家桶(什么都做但什么都不深)。mq9 的位置是结构性正确:既是别人没做的、也是 A2A 生态本身明确招募的、还是协议留好扩展空间的。剩下的事情是把 SDK 和 broker 都做扎实,让两者的协同价值充分兑现。
