Skip to content

[feat] 将 step/snapshot 事件下沉为 shared progress metadata #246

Description

@liujuanjuan1984

背景

当前分支已经修复了 #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,而不是恢复成可见正文输出。

复现步骤

  1. 启动当前分支服务并发起 message/stream 请求。
  2. 让上游输出 step-start / step-finish / snapshot 相关 part。
  3. 观察当前 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions