news 2026/7/14 4:20:52

A2A协议与Agent互操作-Task生命周期

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
A2A协议与Agent互操作-Task生命周期

A2A 协议与 Agent 互操作 · Task 生命周期

🏠 返回 07-README | ⬅️ 13-跨语言混合栈 | ➡️ 15-MCP生产宿主

定位Agent↔Agent 任务委托的 Staff 专章——Task 生命周期、JSON-RPC/SSE、与 MCP/gRPC 分工。机制散见 04 §8、05 §A2A。


§0 面试前 30 分钟 Checklist

时间动作
5 min三协议分工:A2A / MCP / gRPC
5 minTask 状态机submitted→working→completed/failed
5 min口述Artifact vs Tool 结果
5 minrelease_id与 11 Registry
5 min准备§11 STAR超时雪崩
5 min§12 Runbook+Q1–Q10

开场金句(90s)

A2A解决Agent 之间派活:有状态 Task、可流式进度、可取消;MCP解决调工具——单步、无状态。我们 Java Supervisor 对内用gRPC Task(13),对外联盟伙伴用A2A;无论哪种,都绑release_id,Worker 不信对方传来的订单金额。」


L1 · 是什么

1.1 一句话

A2A(Agent2Agent)= 开放Agent 互操作协议:用标准Task抽象把「请另一个 Agent 完成目标」变成可审计、可版本化、可跨厂商的 API——编排层,不替代 MCP。

1.2 三协议对照(必背)

协议抽象状态典型传输本库章节
MCPTool / Resource无状态单步stdio / SSE15
A2ATask / Message / Artifact有状态多步HTTP JSON-RPC + SSE本篇
gRPC Task内部 Protobuf有状态gRPC13

A2A Task

gRPC

MCP tools/call

Supervisor Agent

Partner Agent

Python Worker

Order MCP Server

1.3 何时用 A2A

用 A2A不用 A2A
跨团队 / 跨云Agent 能力外包同进程 Multi-Agent(内存总线)
需要任务进度流式推送单次查库存(MCP)
联盟生态互认强同步低延迟内网(gRPC)

1.4 与 Multi-Agent 拓扑的关系

拓扑A2A 角色
Supervisor–WorkerSupervisor 对外发 A2A Task
对等协商双向 Task,需冲突解决
流水线上游 Artifact 作下游 Task context

对照:05-Multi-Agent、demo multi-agent-supervisor-springai。


L2 · Task 生命周期(深展)

2.1 状态机

worker accepts

artifact ready

error

cancel RPC

policy deny

submitted

working

completed

failed

cancelled

rejected

状态含义Supervisor 动作
submitted已创建未执行可取消
working执行中订阅 SSE / 轮询 get
completed终态成功取 Artifact
failed终态失败降级 / 转人工
cancelled用户或上游取消清理副作用
rejected策略拒绝记录 audit,不 retry send

2.2 核心对象

对象字段(示意)说明
Taskid,goal,context,metadata.release_id委托请求
Messagerole,parts[]对话片段
Artifactparts[],structured_output交付物(非 Tool 日志)

与 [13] gRPC 对齐AgentTask/AgentArtifact是内部实现;对外 A2A 用 JSON 字段名遵循开放规范。

2.3 JSON-RPC 方法矩阵

方法幂等用途
tasks/send(同 task_id)创建并可选立即执行
tasks/get轮询状态
tasks/cancel取消 working
tasks/subscribe只读流SSE 进度

Staffsend必须客户端生成全局唯一 task_id;服务端以 task_id 去重。

2.4 SSE 事件类型

event含义客户端处理
status-updateworking 进度更新 UI
artifact-update部分交付增量展示
error可恢复错误退避重连
done流结束get确认终态

2.5 非法迁移 Golden

case期望
completed → workingreject
cancel 后 MCP 写无写
重复 send 同 id返回同一 Task

L3 · 生产落地

3.1 安全与信任

规则原因
Task 只带case_id / 槽位防 PII、防篡改金额
Worker重查权威服务不信 Supervisor 转述
mTLS +tenant_id联盟多租户
release_id在 metadata对齐 11

3.2 超时与背压

策略
Client总 deadline(如 120s)
Server队列深度上限 →rejected
重试get幂等;盲重发send

3.3 与 Registry / Eval

绑定说明
metadata.release_id全链归因
Golden测非法状态迁移、cancel 后无写
Gatetask_failed_rate阈值;非 Tool 层指标

3.4 Java 实现要点

组件建议
入口Spring MVC/a2a+SseEmitter
鉴权Gateway OAuth2 + scopea2a:invoke
执行线程池隔离;Worker 池 bulkhead
审计每个 Task 写trace_id

3.5 Python Worker 要点

组件建议
框架FastAPI + Pydantic Task 模型
引擎LangGraph 子图作 Worker
取消cooperative cancel token 传 Tool
Worker AgentA2A ServerSupervisorWorker AgentA2A ServerSupervisortasks/send task_iddispatchSSE status-updateSSE forwardartifacttasks/get completed

L7 · 失败模式目录(A2A)

现象根因止血根治
重复 send 风暴把 send 当非幂等熔断+只重试 getGolden 重复 send
SSE 断连丢终态只靠 SSE断连后 get终态以 get 为准
Artifact 含 PIITool 日志直出结构化脱敏Schema 审查
跨租户 Taskmetadata 未校验rejectedGateway 强制 tenant
release 漂移未 pin WorkerRegistry 门禁双组件 release_id

L8 · 迁移路径(四阶段)

阶段动作验收
P0内网 gRPC Task 稳定[13] Golden 绿
P1只读 A2A 查询伙伴无写 Tool
P2写路径 MCP 白名单illegal_tool_rate=0
P3联盟 SSE + SLAtask_failed_rate 达标

L9 · 与 Browser / VIP 场景

场景A2A 用法
Browser外包「复杂填表」给伙伴 Agent;本库主路径 05b
VIP外包「私人造型」Agent;金额承诺仍在 Java 控制面

L10 · Runnable 对照

工件路径
Java Supervisormulti-agent-supervisor-springai
Golden 校验validate_golden.py
知识库地图AGENT-KNOWLEDGE-BASE-MAP

L11 · Staff 答辩

STAR:A2A 重试风暴

要素内容
S联盟 Worker 429,Supervisor 重试 tasks/send 放大流量
A改幂等 task_id;指数退避;熔断;只重试 get
M把 send 当非幂等导致重复副作用
P限流恢复;Golden 增重复 send 负例

STAR:SSE 断连误判失败

要素内容
S移动端 SSE 断连,Supervisor 当 failed 触发补偿写
A终态以 get 为准;补偿前再 get;写操作幂等
M补偿写重复发货
P关闭自动补偿;Runbook 强制 get 二次确认

Q1 · A2A 和 MCP?

标准答案:编排 vs Tool;Task 有状态 vs tools/call 单步。

追问:MCP 能否承载多步?→ 可以但不推荐,审计差。

Q2 · 为何不全用 A2A 替代 gRPC?

标准答案:内网延迟、Protobuf 演进、团队边界。

追问:联盟伙伴只支持 REST 怎么办?→ Gateway 翻译。

Q3 · Artifact 放什么?

标准答案:结构化结论+引用;不放全量 Tool 日志。

追问:需要中间推理链吗?→ 进 Trace,不进 Artifact。

Q4 · 如何版本化?

标准答案:metadata.release_id + capability 协商。

追问:伙伴未升级 schema?→ rejected + 降级路径。

Q5 · OpenClaw 能当 A2A Server?

标准答案:不适合生产;见 12。

追问:个人 Agent 数据驻留?→ 企业禁。

Q6 · cancel 后副作用?

标准答案:Worker cooperative cancel;MCP 写需幂等。

追问:已写一半怎么办?→ saga 补偿。

Q7 · 多 Task 并行?

标准答案:Supervisor 预算分配;每 Task 独立 task_id。

追问:共享上下文?→ context_slice 最小化。

Q8 · A2A 指标?

标准答案:task_failed_rate、P99 latency、cancel 成功率。

追问:与 Eval acc 关系?→ 正交,都过才发版。

Q9 · 谁生成 task_id?

标准答案:调用方 Supervisor,UUIDv7 推荐。

追问:服务端生成?→ 不利于幂等重试。

Q10 · 与 Temporal?

标准答案:Temporal 长流程;A2A 短委托;见 04-java/04。

追问:二选一?→ 组合。

L12 · Oncall Runbook(task_failed_rate 告警)

  1. 按 release_id 分组失败率
  2. 抽样 5 条 Task trace 看 failed 原因
  3. 若 429 → 降并发 + 退避
  4. 若 schema → 回滚 Registry tool_schema 或 Worker
  5. 恢复后跑 Golden illegal 迁移

§15 Checklist

  • 三协议分工
  • Task 六状态
  • SSE vs 轮询
  • send 幂等 task_id
  • 不信转述金额
  • release_id 透传
  • cancel 无写
  • Golden 非法迁移

§16 导航

关联路径
跨语言 gRPC13
MCP15
Multi-Agent05
完整知识库AGENT-KNOWLEDGE-BASE-MAP

L1

  • Model Context Protocol
  • Google A2A
  • Spring AI MCP

L2

  • gRPC Deadlines

L4 · 参数与容量(深展)

2.6 生产参数卡 #1

参数推荐值说明
task_timeout_sec65单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks21Worker 背压
retry_get_max3仅 get 重试

2.7 生产参数卡 #2

参数推荐值说明
task_timeout_sec70单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks22Worker 背压
retry_get_max3仅 get 重试

2.8 生产参数卡 #3

参数推荐值说明
task_timeout_sec75单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks23Worker 背压
retry_get_max3仅 get 重试

2.9 生产参数卡 #4

参数推荐值说明
task_timeout_sec80单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks24Worker 背压
retry_get_max3仅 get 重试

2.10 生产参数卡 #5

参数推荐值说明
task_timeout_sec85单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks25Worker 背压
retry_get_max3仅 get 重试

2.11 生产参数卡 #6

参数推荐值说明
task_timeout_sec90单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks26Worker 背压
retry_get_max3仅 get 重试

2.12 生产参数卡 #7

参数推荐值说明
task_timeout_sec95单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks27Worker 背压
retry_get_max3仅 get 重试

2.13 生产参数卡 #8

参数推荐值说明
task_timeout_sec100单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks28Worker 背压
retry_get_max3仅 get 重试

2.14 生产参数卡 #9

参数推荐值说明
task_timeout_sec105单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks29Worker 背压
retry_get_max3仅 get 重试

2.15 生产参数卡 #10

参数推荐值说明
task_timeout_sec110单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks30Worker 背压
retry_get_max3仅 get 重试

2.16 生产参数卡 #11

参数推荐值说明
task_timeout_sec115单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks31Worker 背压
retry_get_max3仅 get 重试

2.17 生产参数卡 #12

参数推荐值说明
task_timeout_sec120单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks32Worker 背压
retry_get_max3仅 get 重试

2.18 生产参数卡 #13

参数推荐值说明
task_timeout_sec125单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks33Worker 背压
retry_get_max3仅 get 重试

2.19 生产参数卡 #14

参数推荐值说明
task_timeout_sec130单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks34Worker 背压
retry_get_max3仅 get 重试

2.20 生产参数卡 #15

参数推荐值说明
task_timeout_sec135单 Task 上限
sse_heartbeat_sec15保活
max_concurrent_tasks35Worker 背压
retry_get_max3仅 get 重试
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 4:20:21

抖音批量下载神器:5步轻松构建你的个人素材库

抖音批量下载神器:5步轻松构建你的个人素材库 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音…

作者头像 李华
网站建设 2026/7/14 4:19:18

从Blender到Carla:自定义车辆模型导入与集成全流程指南

1. 项目概述:为什么需要自定义车辆模型?在自动驾驶仿真领域,Carla已经成为了一个绕不开的名字。它是一个基于虚幻引擎(Unreal Engine, 简称UE)构建的开源模拟器,专门为自动驾驶系统的开发、训练…

作者头像 李华
网站建设 2026/7/14 4:18:20

Unity游戏性能优化全流程建设:从规范到监控的实战指南

1. 项目概述:为什么Unity性能优化需要“全流程”?做Unity游戏开发,尤其是中大型项目,性能问题从来都不是一个“后期修修补补”就能搞定的事情。我见过太多团队,项目上线前三个月才开始疯狂优化,美术返工、代…

作者头像 李华
网站建设 2026/7/14 4:14:33

ROS2 turtlesim+rqt:机器人仿真开发的第一公里

1. 项目概述:用 turtlesim、ROS2 和 rqt 打通机器人仿真开发的“第一公里”刚接触 ROS2 的人,常被一堆术语绕晕:节点、话题、服务、动作、参数服务器……到底哪个先动?消息怎么传?可视化工具又该怎么配?我带…

作者头像 李华
网站建设 2026/7/14 4:13:20

学术之镜的五重障校正原则如何识别并规避AI伦理讨论中的认知偏执?

当前博文未提及该问题,以下是基于C知道的知识内容为您回答 “学术之镜”中的五重障校正原则,作为一套识别和规避认知偏执的方法论框架,可以非常有效地应用于AI伦理这一充满争议和多元立场的讨论领域。该原则旨在系统性地揭示并校正学术讨论中…

作者头像 李华
网站建设 2026/7/14 4:13:18

CI/CD 2025:从自动化执行到协作契约的技术演进

1. 这不是工具选型题,是团队协作方式的分水岭“流水线即代码”这句话在2025年早已不是口号,而是每天早上十点你打开终端时第一行报错的真实现场。我带过六支不同规模的交付团队,从五人初创到三百人产研中心,亲手拆过 Jenkins 的插…

作者头像 李华