Skip to content

Message parts 表面

消息渲染 MUST 保留 typed parts。Agent UI 客户端不应把所有 runtime events 压平成一个 Markdown 字符串。

标准 part

PartSurface默认行为
user_textConversation立即显示,并保留作者身份。
assistant_textConversation渲染为最终回答文本。
reasoning_summaryProcess默认折叠或摘要。
reasoning_detailProcess只有 policy 和用户设置允许时展示。
runtime_statusProcess 或 Task作为紧凑状态,不作为消息正文。
tool_callProcess展示紧凑步骤和输入摘要。
tool_resultProcess展示预览、摘要或详情抽屉。
action_requiredTask展示明确 CTA 和 pending state。
artifact_refArtifact展示摘要卡,并在 Artifact 工作区打开。
evidence_refEvidence展示 source、verification 或 replay entry。
errorProcess 或 Task展示可恢复诊断和下一步。

最终回答边界

最终回答 SHOULD 包含用户需要阅读或执行的内容。它 SHOULD NOT 包含原始工具日志、队列事件、未过滤推理、runtime tracing 或 evidence payloads。

允许进入最终回答:

  • 简洁解释
  • 面向用户的结论
  • 指向 artifacts 的链接或引用
  • 由 evidence facts 支撑的 citations
  • 属于回答本身的下一步

默认不允许:

  • 原始 JSON tool output
  • 重复 streamed final text
  • 隐藏 reasoning markers
  • provider debug logs
  • approval payloads
  • full evidence packs

Reconciliation

有些 runtime 同时发送 deltas 和 final content。UI MUST reconcile final content,而不是盲目追加。

推荐规则:

  1. 只把 typed assistant_text deltas 追加到回答文本。
  2. reasoningtoolstatusactionartifact 存入各自 part。
  3. final payload 到达时,与 streamed answer 比较并替换或标记 reconciliation。
  4. 不用 final payload 重复追加已渲染回答。
  5. reconciliation 必须确定且可测试。

Branch 和 retry

如果客户端支持 retry、regenerate 或 branch:

  • Branches SHOULD 保留用户消息、selected context、mode 和 artifacts。
  • 每个 assistant branch SHOULD 有自己的 process 和 evidence refs。
  • 重试失败工具 SHOULD 创建新的 process item 或 attempt record。
  • UI SHOULD 显示哪个 branch 生成了哪个 artifact。

验收场景

  1. Reasoning text 不进入最终回答,除非明确导出为回答。
  2. Tool output 可检查,但默认在最终回答外折叠。
  3. action_required 渲染为 CTA,不是普通 Markdown。
  4. artifact_ref 打开专用 Artifact 工作区。
  5. Final payload reconciliation 不重复 streamed text。

Draft runtime-first standard for agent interaction surfaces.