题目
如何设计文本片段、工具事件、节点状态和错误提示的统一流式消息格式?
答案
先定义统一事件信封,例如 `run_id`、`event_id`、`type`、`timestamp`、`schema_version` 和 `payload`。涉及具体消息、节点或工具时,再加入对应 ID。 事件类型可以包含 `text.delta`、`tool.started`、`tool.completed`、`node.updated`、`run.failed` 和 `run.completed`。前端根据类型更新界面,不靠解析自然语言判断“工具是不是已经完成”。 文本片段应带消息 ID 和序号;工具事件携带调用 ID、展示名称和脱敏结果;错误事件包含稳定错误码、可读说明及是否可恢复。 明确顺序、重复和终止规则:同一任务事件有单调序号,重复事件可去重,终态只确认一次。重连时既能补事件,也能获取状态快照;用户可见进度不应暴露密钥、原始堆栈或内部推理。