What is A2A?
开发复杂的 AI 解决方案通常涉及多个专门的智能体。然而,如何让这些智能体(可能使用不同的框架构建,或由不同的供应商提供)进行有效沟通和协作,是一个重大的技术难题。Agent2Agent (A2A) 协议正是为了解决这个问题而生,它为智能体间的通信提供了一个开放标准。
A2A 提供了一个明确的结构和通用语言,使不同的智能体应用能够发现彼此的功能,协商交互方式,并安全地交换信息,从而共同完成复杂的任务。这项由 Google 发起并向社区开放的倡议,旨在培育一个更加互联和强大的 AI 生态系统。
A2A 协议的关键特性
📄 通过 Agent Card 发现智能体: 发布和使用标准化的
agent.json元数据文件。这使得智能体能够以编程方式找到其他智能体,并了解它们的功能、支持的技能、端点 URL 以及在发起联系之前所需的身份验证方法。🔄 结构化的任务管理: 使用清晰的任务生命周期(已提交、工作中、需要输入、已完成等)定义和跟踪工作单元。客户端使用唯一的 ID 发起任务,从而能够对交互进行强大的管理,即使是长时间运行的进程也不例外。
💬 标准化的消息和数据交换: 为通信回合 (
Message) 采用一致的格式,该格式由基本内容单元 (Part) 组成。这支持文本 (TextPart)、文件 (通过 URI 或内联字节的FilePart) 和结构化的 JSON 数据 (DataPart),确保数据交换的清晰性和可预测性。📊 工件处理: 将智能体在任务期间生成的输出(如报告、数据集或最终结构化结果)作为不同的
Artifacts进行管理。这些Artifacts也包含Parts,从而支持超越简单文本响应的复杂数据输出。⚡ 实时和异步更新: 为长时间运行的任务实现
tasks/sendSubscribe。支持流式传输的服务器可以通过服务器发送事件 (SSE) 将实时状态和工件更新推送到客户端,从而增强响应能力。或者,配置推送通知到客户端 Webhook,以便在无法进行直接流式传输时进行异步更新。🌐 开放规范和工具: 利用为所有协议结构明确定义的 JSON 规范。受益于提供的示例客户端/服务器(Python、JS)、示例集成(CrewAI、LangGraph、Genkit)和命令行工具,以加速开发和采用。
实际用例
企业工作流编排: 设想一个需要数据检索、分析和报告生成的内部流程。一个使用特定数据分析库(如 Python 中的 Pandas)构建的智能体可以通过 A2A 从中央工作流智能体接收任务。分析完成后,它可以将结构化结果(作为
DataPart或FilePartArtifact)通过 A2A 传递回另一个负责格式化并发送面向客户的摘要的智能体。集成专业的供应商智能体: 您的公司可能使用供应商提供的智能体进行客户支持工单分析,并使用另一个内部智能体将复杂问题上报给特定的工程团队。使用 A2A,支持智能体可以识别需要上报的问题,通过其 Agent Card 发现合适的内部智能体,并通过 A2A 发起任务,安全地传递相关的工单详细信息和上下文。
构建模块化智能体系统: 您正在开发一个研究助手应用程序。您可以构建一个“主管”智能体,该智能体接受用户的复杂查询。该主管使用 A2A 来委派子任务:一个委派给专门搜索学术论文的智能体(使用其特定的 API),另一个委派给擅长总结文本的智能体(可能使用不同的 LLM),可能还有第三个委派给数据可视化智能体。A2A 促进了这些模块之间的协调、数据传递和状态跟踪。
入门与贡献
深入了解该协议:
📚 阅读技术文档。
📝 查阅 JSON 规范。
🎬 探索示例(客户端/服务器、Web 应用程序、CLI、框架集成)。
A2A 是一个开源项目。我们鼓励社区通过贡献协议规范、示例实现或加入 GitHub 上的讨论来参与。您的反馈有助于塑造可互操作 AI 的未来。





