ai4j 出站调用:A2AClient 如何调外部 Agent

ai4j 出站调用:A2AClient 如何调外部 Agent 由 Archify 生成的时序图。 工具调用 {message} sendTask(agentUrl, message) GET /.well-known/agent-card.json(回退 agent.json) AgentCard:skills · capabilities · interfaces · auth POST SendMessage · JSON-RPC 2.0 · A2A-Version:1.0 · 认证头 result.task(阻塞至终态 或 returnImmediately) SendStreamingMessage / SubscribeToTask(SSE) SSE:task 快照 + statusUpdate / artifactUpdate CreateTaskPushNotificationConfig {url, token} POST 任务事件 · X-A2A-Notification-Token GetTask / ListTasks 轮询 · CancelTask 取消 response text → 回填工具结果 发现 · 发送 · 订阅 · 推送 管理与回填 宿主 Agent · ReAct · CodeAct · 时序参与者 宿主 Agent ReAct · CodeAct A2ATool · ToolExecutor 包装 · 时序参与者 A2ATool ToolExecutor 包装 A2AClient · JSON-RPC · SSE · push · 时序参与者 A2AClient JSON-RPC · SSE · push 外部 Agent · 任意 A2A 服务端 · 时序参与者 外部 Agent 任意 A2A 服务端 调用方回调 · HTTPS webhook · 时序参与者 调用方回调 HTTPS webhook 图例 请求 返回 安全 异步追踪 默认消息

双协议自适应

  • • 优先 PascalCase 标准方法:SendMessage / GetTask / CancelTask(A2AClient.java:106-128)
  • • 未声明标准接口时回退 POST /tasks/send;discover 先试 agent-card.json 再回退 agent.json(:77-94)

三条观测通道

  • • SendStreamingMessage / SubscribeToTask 开 SSE 流(:178-190)
  • • CreateTaskPushNotificationConfig 注册 webhook 回调;GetTask / ListTasks 轮询兜底(:110-150)

认证与协议版本

  • • 每个请求携带 A2A-Version: 1.0 头(:33-34)
  • • X-API-Key 或 Bearer 按对端卡片 authentication 对齐;SSE 单事件 ≤1MB(:591-628, :344-384)