背景
当前分支已经修复了 #242 / #243 的核心问题,并收紧了可见文本提取边界:step-start / step-finish / snapshot 不再直接作为正文 TextPart 透传。
但这些事件仍然承载了有价值的结构化进度信息,例如阶段类型、reason、part 身份、状态字段等。现阶段这些信息要么只留在日志中,要么被内部消费后丢弃,未以稳定的 shared metadata 形式暴露给下游。
仓库里已经存在可参考的 shared metadata 设计:
metadata.shared.usage
metadata.shared.interrupt
metadata.shared.stream
因此需要将 step/snapshot 相关事件也按类似方式下沉为结构化 shared metadata,而不是恢复成可见正文输出。
复现步骤
- 启动当前分支服务并发起
message/stream 请求。
- 让上游输出
step-start / step-finish / snapshot 相关 part。
- 观察当前 A2A 输出。
期望行为
step-start / step-finish / snapshot 不应作为可见正文 artifact 输出。
- 这些事件中可稳定消费的进度信息应通过 shared metadata 暴露给下游。
- metadata 设计应与现有
usage / interrupt / stream 风格一致,避免临时私有字段。
实际行为
- 当前分支已停止将这些 part 作为正文输出,这是正确的。
- 但相关阶段信息尚未以 shared metadata 形式输出,下游无法稳定读取这些进度事件。
验收标准
- 为 streaming 输出增加结构化
metadata.shared.progress(命名可根据实现微调,但需保持 shared metadata 风格一致)。
step-start / step-finish / snapshot 至少有一部分稳定字段可被下游消费。
- 不重新引入将 snapshot/hash 透传为正文文本的问题。
- 增加回归测试,覆盖 progress metadata 的输出与正文隔离。
- 如有必要,同步更新 agent card / extension contract 暴露的字段说明。
HEAD 快照
git rev-parse HEAD: 4e22c86a619f1d24097cfdca3f3eafd2b2fbfc89
背景
当前分支已经修复了
#242/#243的核心问题,并收紧了可见文本提取边界:step-start/step-finish/snapshot不再直接作为正文TextPart透传。但这些事件仍然承载了有价值的结构化进度信息,例如阶段类型、reason、part 身份、状态字段等。现阶段这些信息要么只留在日志中,要么被内部消费后丢弃,未以稳定的 shared metadata 形式暴露给下游。
仓库里已经存在可参考的 shared metadata 设计:
metadata.shared.usagemetadata.shared.interruptmetadata.shared.stream因此需要将 step/snapshot 相关事件也按类似方式下沉为结构化 shared metadata,而不是恢复成可见正文输出。
复现步骤
message/stream请求。step-start/step-finish/snapshot相关 part。期望行为
step-start/step-finish/snapshot不应作为可见正文 artifact 输出。usage/interrupt/stream风格一致,避免临时私有字段。实际行为
验收标准
metadata.shared.progress(命名可根据实现微调,但需保持 shared metadata 风格一致)。step-start/step-finish/snapshot至少有一部分稳定字段可被下游消费。HEAD 快照
git rev-parse HEAD:4e22c86a619f1d24097cfdca3f3eafd2b2fbfc89