协议介绍

A2A (Agent2Agent) 协议是由 Google Cloud 发起的一个开放协议,旨在促进不同 AI 代理 (Agent) 之间的互操作性。其核心目标是让这些代理——无论它们由不同的供应商构建或使用不同的技术框架——都能在一个动态、多代理的生态系统中进行有效的通信和协作。

随着企业越来越多地构建和部署自主代理来扩展、自动化和增强工作流程(从订购新笔记本电脑到协助客户服务代表,再到供应链规划),代理之间的协作变得至关重要。A2A 协议使得即使是由不同供应商构建或采用不同框架的代理也能相互操作,从而提高自主性、倍增生产力收益,并降低长期成本。

A2A 协议的发布得到了超过 50 家技术合作伙伴(如 Atlassian, Box, Cohere, Langchain, MongoDB, PayPal, Salesforce, SAP, ServiceNow 等)以及领先服务提供商(如 Accenture, Deloitte, Infosys, KPMG, PwC 等)的支持和贡献。这种协作努力体现了一个共同的愿景:未来 AI 代理无论其底层技术如何,都能够无缝协作以自动化复杂的企业工作流,推动前所未有的效率和创新。

A2A 是一个开放协议,它补充了 Anthropic 的模型上下文协议 (MCP),后者为代理提供了有用的工具和上下文。借鉴 Google 在扩展代理系统方面的内部专业知识,A2A 协议旨在解决在为客户部署大规模多代理系统时遇到的挑战。

A2A 的设计原则

A2A 协议的设计遵循以下关键原则,以提升代理间的协作能力、确保灵活性、安全性及与现有系统的兼容性:

  1. 拥抱代理能力 (Embrace agentic capabilities): 允许代理在其自然的、非结构化的模式下协作,无需共享内存、工具或上下文,实现真实的多代理场景。
  2. 基于现有标准构建 (Build on existing standards): 协议建立在广泛接受的技术标准(如 HTTP, SSE, JSON-RPC)之上,便于与企业现有 IT 堆栈集成。
  3. 默认安全 (Secure by default): 设计支持企业级身份验证和授权,确保只有授权的用户和系统可以访问代理。
  4. 支持长时间运行的任务 (Support for long-running tasks): 灵活支持从快速任务到需要数小时甚至数天(当有人工介入时)的复杂研究等多种场景,并能在任务执行期间提供实时反馈、通知和状态更新。
  5. 模态无关 (Modality agnostic): 支持多种交互形式,包括文本、音频、视频流、表单 (form)、内嵌框架 (iframe) 等,增强代理的交互能力和适应性。

A2A 的参与者

A2A 协议定义了三个核心参与者:

  • 用户 (User): 使用代理系统完成任务的人类或服务。
  • 客户端 (Client): 代表用户向代理(服务、应用程序)请求操作的实体。
  • 服务端 (Server): 提供服务的不透明(黑盒)远程代理,即 A2A 服务器。

下图清晰地展示了这三个参与者的位置:

注意:与 MCP 协议相比,A2A 协议中没有明确定义 “Host” 参与者。这是设计思路上的差异,A2A 更侧重于开放实现,并通过其他方式(如 AgentCard 和标准协议)来处理安全和发现等问题。

A2A 的核心概念

A2A 协议围绕几个核心概念构建,以实现代理间的有效交互:

  • AgentCard: 一个描述 Agent 能力的 JSON 文件,通常托管在 /.well-known/agent.json 路径下,方便客户端发现和了解 Agent。
  • Task (任务): 一个有状态的实体,代表客户端与远程代理协作以达成特定结果的过程。任务包含状态、历史记录和生成的工件。
  • Artifact (工件): 代理作为任务最终结果生成的不可变输出,可以包含多个部分 (Part)。
  • Message (消息): 用于在客户端和代理之间传递非工件内容,如指令、上下文、思考过程、状态更新等。
  • Part (片段): 消息或工件中的原子内容单元,具有特定的内容类型(如文本、文件、表单等)。

这些概念共同构成了 A2A 协议的基础,使得不同代理能够以结构化、标准化的方式进行通信和协作。后续章节将更详细地介绍这些核心概念。

技术架构

核心组件

  1. Agent Card (智能体卡片)

    • JSON格式的公共元数据文件
    • 描述智能体能力和认证需求
    • 支持自动化能力发现
    • 提供标准化服务描述
  2. A2A Server (服务端)

    • 实现标准协议端点
    • 处理任务请求和执行
    • 管理任务生命周期
    • 支持实时状态更新
  3. A2A Client (客户端)

    • 提供标准化接口
    • 发送和管理任务
    • 处理异步响应
    • 支持流式数据传输

通信模型

  1. 任务管理

    • 以任务为中心的通信模式
    • 任务具有完整生命周期
    • 支持即时完成或长时间运行
  2. 能力发现

    • 通过AgentCard广播能力
    • 支持动态服务发现
    • 灵活的协商机制
  3. 用户体验协商

    • 标准化的消息格式
    • 支持多种内容类型
    • 灵活的UI能力协商

应用场景

  1. 智能客服

    • 多轮对话管理
    • 知识库集成
    • 自动工单处理
  2. 开发协作

    • 代码审查辅助
    • 文档自动化
    • 测试用例生成
  3. 数据分析

    • 数据清洗与转换
    • 可视化报表生成
    • 异常检测与告警

相关资源

💡 技术支持: