← 返回藏书阁

a2a-query:把 A2A task lifecycle 变成应用可消费的 reactive harness

wiki/ai/sources/a2a-query-task-handle-approval-broker.md
分类:ai / sources · 更新:2026-09-07 09:14

a2a-query:把 A2A task lifecycle 变成应用可消费的 reactive harness

一句话结论

a2a-query 是 A2A client 之上的应用状态层:它把多 agent registry/router、Agent Card cache、TaskHandle、poll/stream/resubscribe、approval broker、artifact accessors、mock agent testing 与 devtools wire tap 组合起来,让非 agentic 应用也能消费 A2A 的长任务生命周期。它的价值在于把 A2A 从“协议能通信”推进到“产品 UI / dashboard / approval inbox 可以可靠承载 task state”。

命中的知识点轴

  • A2A / Agent Card / Agent Discovery:一个 A2AQuery 管多个 agents,card 被解析、缓存并用于 skill codegen。
  • harness-runtime:TaskHandle、broker、poll/stream/resubscribe、artifact accessor 构成可嵌入 runtime harness。
  • context management:Agent Card、task snapshot、artifact chunks、pending input、audit log 都被变成可订阅 cache entry。
  • benchmark-evaluation:in-process mock agent 与 no-network examples 让 A2A lifecycle 可以被可重复测试。
  • sandbox-security / control surface:approval broker 把 INPUT_REQUIRED / AUTH_REQUIRED 变成一等 human-in-the-loop gate,但 README 未显示完整 credential/sandbox enforcement,安全置信度保持 medium。

为什么对用户重要

A2A-Agent2Agent-Protocol 页面已说明 A2A 是 agent-to-agent delegation 协议,但真实产品难点往往不在 JSON-RPC 传输,而在长任务状态如何进入 UI、如何重连、如何把暂停任务交给人审批、如何把 artifact 与审计轨迹展示给用户。a2a-query 正好补这个缺口:它像 “TanStack Query for A2A”,把 agent task 变成应用可缓存、可订阅、可恢复、可测试的状态对象。

对 Hermes 来说,未来若存在研究 agent、代码 agent、发布 agent、wiki agent 之间的 A2A 委托,上游不能只发一个请求然后相信自然语言总结;需要 TaskHandle、状态快照、artifact accessor、approval inbox、wire/event timeline 与最终 verifier。对 llm-wiki 来说,这也提示“每日雷达”可被视为长任务:discovery、fetch、score、raw、write、index、reindex、publish 都应有可查询状态,而不是只在最后给一段总结。

机制 / 一阶原理

第一机制是 A2A task handle as state machinesendMessage() 不只是返回最终文本,而是返回 poll-driven TaskHandletask()subscribe()result() 将 task snapshots 写入 reactive cache。这样 UI 可以观察任务状态,而不是自己手写轮询循环。

第二机制是 pause/resume through InteractionBroker。A2A 的 INPUT_REQUIRED / AUTH_REQUIRED 被升级为 human-in-the-loop resume point:broker 维护 pending queue、policy allow/deny/ask、audit trail,并用 approved decision 的 message 恢复任务。这比在 prompt 中告诉模型“需要时问用户”更可审计。

第三机制是 resilience and receipts。Streaming 通过 SSE,断线后 degraded → resubscribe → poll fallback,并在每次 reattach 后用 getTask reconcile;devtools wire tap 记录 JSON-RPC method、ids、sizes、status 但不记录 bodies,既给调试/审计足够元数据,又降低敏感内容泄露。

第四机制是 mock-first A2A testing。in-process mock agent 使用官方 SDK server stack,通过 injected fetch 测真实 wire、无 sockets;examples 覆盖 hello、status、approval、manual resume、multi-agent、policy autopilot、flaky network。这对 Agent-Benchmarks 很关键:A2A runtime 的可靠性可以先在本地模拟 lifecycle,而不是等生产才发现状态机问题。

和已有 wiki 概念的关系

- 相比 [[a2a-samples-agent-card-discovery-interoperabilityA2A Samples]],a2a-query 更偏应用状态层与 UI/human gate,而不是多框架 remote agents 示例。
- 相比 [[a2apex-agent-card-certification-directoryA2Apex]],本页不做外部 certification,而是处理已经选定 agent 后的 task lifecycle、pause/resume、artifact 与 devtools receipt。
- 相比 [[agentmesh-runtime-gateway-task-envelope-sandboxclaimAgentMesh Runtime Gateway]],AgentMesh 决定任务可否执行和 runtime placement;a2a-query 负责任务执行中的状态消费、重连、审批和 artifact 读取。
  • Harness-Engineering 来说,它把协议事件转成产品级 harness primitives:cache、broker、audit、devtools、mock。

对 Hermes / llm-wiki 的可执行启发

  1. A2A 委托必须返回 handle,不只返回文本。 Hermes 若调用远端 agent,应保存 task_id、agent_id、card_hash、status、artifact refs、cost、approval state 和 trace refs。
  2. 把 human gate 做成 broker。 INPUT_REQUIREDAUTH_REQUIRED、高风险 action approval 应进入统一 pending queue,而不是散落在对话文本里。
  3. 为长任务实现 reconcile。 streaming/push 断线后必须用 canonical getTask 或等价状态读取校准,避免 UI/报告展示过期状态。
  4. 用 mock agent 回归测试 A2A workflow。 在真实接入之前,用 no-network mock 覆盖 paused task、deny、resubscribe、artifact extraction、wire metadata 与审计输出。
  5. devtools receipt 要避免保存敏感 body。 记录 method/id/status/size/timing 足够做许多运行时诊断,敏感内容可通过受控 artifact store 查询。

失败模式 / 边界条件

  • README 主要来自项目自述与文档;本轮未安装 npm 包或运行 demo/examples,因此标为 confidence: medium
  • Approval broker 处理 human-in-the-loop 状态,不等于完成企业级授权、credential boundary 或 sandbox placement;高风险动作仍需 MCP-Gateway-Runtime / policy gateway / runtime planner。
  • Agent Card codegen 可能放大 registry poisoning 风险:如果 card 中 skill 描述恶意或过时,typed module 会把错误能力固化进应用。
  • Streaming/push 可靠性取决于服务端 getTask 一致性;如果远端 agent 的 task store 不可靠,client 侧 cache 再好也只能暴露问题,不能修复事实。

候选评分

维度分数理由
relevance5/5高度命中 A2A、harness-runtime、context management、benchmark-evaluation。
novelty4/5wiki 已有 A2A 概念和 samples,但缺少 task-state/application harness 层。
durability4/5长任务 handle、approval broker、reconcile、artifact accessor 是 A2A 产品化长期问题。
actionability5/5可直接迁移为 Hermes A2A 调用 receipt、pending queue 和 mock tests。
source-quality3/5GitHub README/docs 可读,未本地运行;raw 使用本轮已读取片段归档。
depth-potential5/5能深化 A2A task lifecycle、human gate、artifact receipt 与 UI runtime。

写入记录

  • 2026-09-07 09:00 CST:基于 a2a-query README 新建 source 页,提炼 TaskHandle、approval broker、reactive cache、stream/reconcile、mock A2A testing 与 Hermes A2A 委托 receipt 设计启发。