Skip to content

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

@liujuanjuan1984

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions