a2a-directory
围绕 Google A2A 代理协作协议构建的开源百科,收录官方示例、多语言 SDK 与全球社区实现
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
围绕 Google A2A 代理协作协议构建的开源百科,收录官方示例、多语言 SDK 与全球社区实现
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
当一家公司同时运行着 LangGraph 编写的旅行规划代理、CrewAI 构建的图像生成代理,以及 Azure AI Foundry 托管的企业数据代理,这些来自不同框架的"孤岛"代理,如何像同一支团队一样无缝协作?A2A Directory(Agent2Agent Directory)就是为回答这个问题而生的开源项目——它是围绕 Google A2A 协议构建的最全面、最系统的开放资源库,收录了来自 Google 官方与全球社区的 AgentCards、服务器实现、客户端库、开发文档与实战示例,堪称 A2A 协议的"百科全书"。
2025年,AI Agent 领域迎来了前所未有的爆发。以 LangGraph、AutoGen、CrewAI、Microsoft Semantic Kernel 为代表的 Agent 框架百花齐放,但每个框架都有自己的工具调用接口、消息格式和生命周期管理方式。这带来了一个根本性问题:用框架 A 构建的代理,无法直接与框架 B 的代理对话。企业若要在同一业务流程中整合多框架能力,往往需要为每对框架组合编写定制桥接代码,维护成本呈指数级增长。
Google 在 2025 年 4 月正式发布 Agent2Agent(A2A)协议,正是为了解决这一互操作性困境。A2A 定义了一套基于 JSON-RPC 2.0 的标准化通信规范,让不同框架、不同语言、不同团队开发的 AI 代理,能够通过统一的方式相互发现(AgentCard)、发送任务(tasks/send)、订阅更新(tasks/sendSubscribe)和获取结果。这与 MCP(Model Context Protocol)形成互补——MCP 解决的是"AI 模型如何调用工具"的问题,而 A2A 解决的是"AI 代理如何彼此协作"的问题。
项目发起人 sing1ee(GitHub @sing1ee)敏锐地意识到,尽管 A2A 官方提供了核心规范,但分散在各处的示例代码、多语言 SDK 实现、工具链资源和社区贡献,需要一个统一的汇聚站点才能真正发挥价值。于是 A2A Directory 应运而生,并在发布后迅速获得 237 颗星,登上 Hacker News 首页,引发了社区的广泛讨论。

图1:A2A Directory 收录内容概览,包括官方示例、多语言 SDK 与社区实现
A2A Directory 采用清晰的三层结构组织内容,分别面向协议学习者、框架开发者和企业用户。
第一层:官方资源与入门路径。项目首先聚合了 Google 官方的 A2A 核心资源,包括官方文档站点(google.github.io/A2A)、JSON 规范(specification)、Agent Card 规范,以及官方仓库 google-a2a/A2A 的链接。README 中提供了循序渐进的入门路径:先阅读技术文档,再运行官方示例仓库(google-a2a/a2a-samples),最后基于官方库或示例构建自己的应用。对于刚接触 A2A 的开发者,这条路径几乎涵盖了从零到一的全部所需。
第二层:官方示例的多语言覆盖。Google 官方在 a2a-samples 仓库中提供了跨语言的丰富示例,这是 A2A Directory 最核心的内容来源。在 Python 生态中,示例覆盖了几乎所有主流 Agent 框架:Google ADK(费用报告填写代理)、AG2 + MCP(多框架组合)、Azure AI Foundry、LangGraph(货币转换代理)、CrewAI(图像生成代理)、LlamaIndex(文件解析与聊天代理)、MindsDB(数据库代理)、Semantic Kernel(旅行规划代理)、AutoGen、Marvin 等。每个示例都链接到真实代码仓库,并附有简要描述,帮助开发者快速定位适合自己技术栈的参考实现。
Go 语言和 JavaScript/TypeScript 的示例同样丰富。Go 语言方面有 google-a2a 官方的 server、client 和 shared models;JavaScript/TypeScript 侧则有电影信息搜索代理(Movie Agent,使用 TMDB API)和代码生成代理(Coder Agent),展现了 A2A 在前端和 API 场景下的应用潜力。
第三层:社区实现的生态地图。如果说官方示例是 A2A 协议的"教材",那么社区实现就是"参考答案"。A2A Directory 收录了来自全球开发者的第三方实现,涵盖 Python(a2a-python 官方 SDK、python-a2a 社区库)、JavaScript(a2a-js 官方 SDK、legion-a2a)、Java(a2a-java 官方 SDK、a2ajava Spring Boot 实现、a2a4j)、Go(a2a-go 官方 SDK、trpc-a2a-go、a2aserver/a2a-go 等多个实现)、Rust(a2a-rs 六边形架构实现)等多个语言生态。
特别值得关注的是 trpc-a2a-go(来自 tRPC 团队),它将 A2A 协议与 tRPC 框架深度融合,支持 JWT、API Key、OAuth2 等多种认证方式,以及会话管理和流式响应,是对官方 Go SDK 的重要补充。另一个亮点是 jira-a2a——它展示了如何将 A2A 协议应用于 DevOps 场景,通过独立的 Go 代理组成的 Jira 自动化工作流,让 A2A 不再只是"实验室技术",而是真正落地到生产环境的案例。

图2:A2A 协议核心通信流程(tasks/send → tasks/sendSubscribe → taskResult)
A2A Directory 中的 docs/a2a-vs-mcp.md 文档,以一个生动的比喻清晰阐明了两大协议的核心区别:MCP 是工具车间,A2A 是会议室。
在 MCP 的视角下,AI 模型就像工厂里的工人,MCP 协议提供了各种工具的使用说明(API 规范),工人知道去哪里拿工具、工具怎么用,但工人之间如何协作不在 MCP 的职责范围内。这正是 MCP 的设计初衷——增强单体 AI 模型的工具调用能力,让它能访问文件系统、数据库、API 等外部资源。
而 A2A 则打开了一个更高的抽象层次。在 A2A 的视角下,每个 AI 代理都是一位拥有特定专业能力的"专家":旅行规划专家负责设计路线,数据查询专家负责拉取历史记录,图像生成专家负责渲染最终结果。A2A 协议让这些专家能够相互发现彼此的 AgentCard(包含能力描述、端点地址和认证要求),然后像真正的团队会议一样分配任务、共享进展、汇总结果。
从技术实现上看,A2A 协议基于 JSON-RPC 2.0,定义了四个核心方法:tasks/send(发送任务并同步等待结果)、tasks/get(查询任务状态)、tasks/pushNotification/set(配置推送通知)、tasks/sendSubscribe(发送任务并订阅实时更新)。协议支持 SSE(Server-Sent Events)实现流式响应,能够处理从简单问答到复杂多步骤规划的各种任务类型。安全性方面,A2A 支持 OpenAPI 规范中定义的认证方案,包括 Bearer Token、API Key、OAuth2 等企业级认证机制。
客观而言,A2A Directory 本身是一个文档聚合项目,而非可运行的代码库。这意味着它不包含任何服务端实现、Web UI 或容器化部署方案。用户无法通过 docker run 或 pip install 直接启动一个 A2A 服务——这与 MCP 的官方 Python SDK(mcp 库)形成对比,后者在安装后即可通过 SDK 构建可用的 MCP 服务器。
另一个值得关注的点是,A2A 协议本身仍在快速演进中。作为一个 2025 年 4 月才正式发布的年轻协议,其 API 规范、AgentCard 格式和最佳实践尚未完全稳定。社区中多个相互竞争的 Go 实现(trpc-a2a-go、a2aserver/a2a-go、a2aproject/a2a-go)并存,虽然体现了生态活力,但也给开发者选择带来了困惑。
尽管存在局限,A2A Directory 的价值在于它所代表的趋势——AI 行业正在从"模型军备竞赛"转向"协议标准化竞赛"。
2024 年,Anthropic 发布 MCP 并迅速获得广泛采用,标志着行业开始认识到:AI 系统与外部世界的连接方式,需要像 TCP/IP 之于互联网一样,形成可互操作的标准层。而 2025 年 Google 推出 A2A,则进一步将标准化推进到了代理层——不仅模型要能调用工具,代理之间也要能相互调用。
这种分层标准化的推进,意味着未来的 AI 应用开发范式可能发生根本变化:开发者不再需要为每对框架组合编写定制桥接,而是通过 A2A 协议让现成的专业代理快速组合成工作流程。AutoGen、CrewAI、LangGraph 等框架都可以成为 A2A 网络中的节点,各自发挥所长。A2A Directory 作为这个生态的百科全书,记录并推动着这一进程。
从增长数据看,项目自 2025 年 4 月创建以来持续更新(最近更新于 2026 年 7 月),收录范围从最初的官方示例逐步扩展到社区实现和多语言指南,作者 sing1ee 还维护了中文、日语、德语等多语言版本的 README,体现了良好的社区运营意识。随着 A2A 协议生态的扩张,这个目录的价值有望进一步提升。