feat(ws): tool_execution.end 带可选 resultSummary(Y1,答应安卓端的那条)
- 形状:data.resultSummary(可选)。与回看面 toolCalls[].resultSummary 代码级同源:同一个常量
(500 rune)与同一个截断函数,摘要由 **loop 侧**生成(trace.RedactText + renderToolResultSummary)
再随 StreamEvent 下发,gateway 只搬运不加工(与回看面同口径)
- 缺席语义:结果真拿到才带;失败/取消/超时/未落图 ⇒ 整键缺席(绝不用空串顶位)
- 线上帧证据:真 WS + 真 JWT + 真 loop ⇒ 客户端收到 resultSummary;同源钉用真图快照反读逐字比对
- 3 个变异(空摘要也写键/去掉脱敏/失败当结果)
⚠️ 待裁:失败路径现按派工书「整键缺席」,但回看面对失败给的是 error 摘要 ⇒ 实时无结果区、事后有;
若要实时也显示失败原因,一行可改(toolEndFrameSummary 的 return "")
This commit is contained in:
1 parent
a820d9968e
commit
215eedf8e9
6 files changed
+433
-7
No files matched your search
@@ -96,6 +96,15 @@ type StreamEvent struct {
|
||||
// (ToolPhase*):start/update 时为 running,end 时为 done 或 error。
|
||||
// 其它所有种类为空。
|
||||
Phase string
|
||||
// ResultSummary 是 tool_execution_end 事件上**已脱敏**的工具结果摘要,
|
||||
// 供客户端在工具卡上渲染「这次调用拿到了什么」。它的取值与客户端**回看**
|
||||
// 同一次调用所见的 `toolCalls[].resultSummary`(图节点 props.result_summary)
|
||||
// 同源同口径 —— 同一份放行表、同一份凭据形状清洗(loop.toolFrameResultSummary)。
|
||||
//
|
||||
// 🔴 缺席语义:只有结果**真正拿到**时才非空;失败/取消/超时(Invoke 返回
|
||||
// error)一律留空 ⇒ 下行帧让该键**整键缺席**,绝不用空串顶位、也绝不把
|
||||
// 一次失败说成「拿到了结果」。其它所有种类为空。
|
||||
ResultSummary string
|
||||
// StreamID 标识某一帧所属的那一次模型流(一次 ChatStream 调用)。
|
||||
// loop 在流边界打上它,使同一条流式消息的每一帧
|
||||
// 共享它,而多步回合后续的模型调用会拿到新 id;
|
||||
|
||||
Reference in new issue
Block a user