A2A Agent 协议

A2A Agent 协议

Agent2Agent (A2A) 接口、agent card、注册、基于任务的证书操作、MCP 和 webhooks。

Agent Trust 实现 Agent2Agent (A2A) v1.0.0 协议,Agent 可注册身份并通过任务模型请求 PKI 证书签发、续期和撤销。

Agent card#

每个部署都发布机器可读的 agent card:

GET /.well-known/agent-card.json

它公布 A2A endpoints、认证方式(bearerAuth 和/或 mtlsAuth)及 Agent 可用 skills。客户端应在启动时读取,这是部署的权威信息。

认证

方式方法
Bearer / JWTAuthorization: Bearer [jwt],使用配置的签名 secret 验证;sub claim 成为 Agent 身份。
mTLS在 mTLS listener 使用客户端证书;SPIFFE URI、subject key identifier 或 common name 映射到 Agent 身份。
Kerberos加入域的服务账户通过 Authorization: Negotiate 认证。

Auth mode 可设为 off(匿名、基于 IP 的身份,向后兼容)、jwt 或 oidc(浏览器 session 或 mTLS 证书)。

注册 Agent#

POST /a2a/v1/register
字段说明
agentId唯一 Agent 身份,首次注册时绑定调用方。
displayName / agentCardJson可读名称和能力信息。
publicKeyPem / certThumbprint策略要求时提供身份凭证;由客户端设置,管理员不可编辑。
tags[]路由规则和 Agent 组使用的自由标签。
webhookUrl可选 HTTPS outbound 通知 webhook,需要认证调用方。

agentId 绑定到注册调用方身份,其他调用方无法接管。每个 Agent 使用唯一 ID;同一 IP 下没有 agentId 的 Agent 会合并为一个身份。

Chain of Command#

基于 consent 的 swarm、delegated skills、签名 command vouchers 和执行报告,参阅 Chain of Command 指南。

Tasks#

证书操作是异步、可轮询的任务:

方法和路径用途
POST /a2a/v1/tasks/send创建带 user message 的任务,例如包含 CSR 文件。
GET /a2a/v1/tasks/查询状态和结果 artifacts。
POST /a2a/v1/tasks//cancel取消运行中的任务。
POST /a2a/v1/tasks//subscribe通过 SSE 接收任务更新。

以 file part 发送 CSR,轮询到 completed,再获取证书链 artifact。完整请求/响应见Agent 自助注册教程。

Streams 与幂等#

  • message:stream 和 subscribe 支持 SSE。
  • X-Idempotency-Key 可使相同 key 的重试不创建重复任务。

Webhooks#

Agent 可注册 outbound HTTPS webhook(公网 host、认证调用方)来接收通知并替代轮询。投递可验证;失败会记录在 Agent 记录和审计日志中。

MCP Compliance 工具#

启用 MCP 的 Agent 可直接调用 gateway Compliance 工具,例如在将 prompt 发送给模型前检查,并根据 allow、deny、flag 或 mask 判定采取操作。参阅 Claude Code、Cursor 与 MCP 教程。

任务状态

状态含义
submitted已创建,等待处理。
working正在处理。
input-required需要 Agent 补充输入。
completed已完成,结果 artifacts 可用。
canceledAgent 或管理员取消。
failed / rejected失败或被拒绝,例如身份被阻止。
auth-required继续前需要 Agent 认证。

后续阅读

后续阅读