A2A 协议通过 Agent Card 实现去中心化的智能体发现。每个智能体在其服务域名的 /.well-known/agent.json 路径下发布一个 JSON 格式的元数据文档,描述其身份、能力、认证方案和技能列表。客户端智能体通过获取并解析远程智能体的 Agent Card,了解对方能执行哪些任务、如何构造请求以及如何安全通信,从而实现对外部智能体能力的可编程发现,无需中心化注册表。
A2A 协议的设计理念是:客户端智能体不需要了解远程智能体的内部工作方式、记忆状态或工具调用细节。远程智能体对于客户端而言是一个"不透明"的系统。客户端只需通过 Agent Card 了解远程智能体能提供哪些能力,然后通过标准协议发送任务请求,远程智能体自主决定如何完成任务。这种不透明执行模型保护了各组织的知识产权和系统集成细节,同时实现了跨组织的智能体协作。
A2A 协议为跨组织任务提供了明确的状态生命周期管理。任务从提交(SUBMITTED)开始,经过执行中(WORKING)、等待输入(INPUT_REQUIRED)、等待认证(AUTH_REQUIRED)等中间状态,最终达到完成(COMPLETED)、失败(FAILED)、取消(CANCELED)或拒绝(REJECTED)等终态。跨组织协作中的各参与方智能体通过跟踪任务状态,了解任务的执行进展和结果,实现可靠的跨组织工作流编排。
A2A 协议在协议层面定义了完善的安全机制,保障跨组织通信的安全性。Agent Card 中的 securitySchemes 字段声明智能体支持的认证方案(API Key、HTTP Bearer Token、OAuth 2.0、OpenID Connect、Mutual TLS 等)。客户端必须使用与服务端匹配的认证方案获取访问凭证,并在每次请求中通过 HTTP 头传递该凭证。此外,A2A v1.0 引入了 Signed Agent Cards 特性,允许智能体对其 Agent Card 进行加密签名,防止在开放网络中智能体冒充攻击。
A2A v1.0 引入了企业级多租户支持,使同一智能体服务能够安全地同时为多个租户(组织)提供隔离的服务。多租户架构确保每个租户的数据和任务状态相互隔离,防止跨租户数据泄露。这对于SaaS形态的智能体服务尤其重要,使智能体服务提供者能够在保障安全隔离的前提下,利用 A2A 协议向多个企业客户提供智能体协作能力。