Files
Genarrative/server-rs/crates
lhk229 445559bfea
Project CI / Repository checks (pull_request) Failing after 1m26s
Project CI / Frontend tests (pull_request) Successful in 2m27s
Project CI / Backend tests (pull_request) Successful in 4m40s
Project CI / Native shell tests (pull_request) Failing after 7m34s
流式工具调用要求协议收尾信号
字节流干净结束不等于协议收尾:代理超时、网关掐断和 HTTP/2 提前
END_STREAM 都表现为干净 EOF。此前只要工具参数恰好是合法 JSON 就会
返回并执行该调用,且并行槽位在断流后会被静默丢弃。

新增 ParsedStreamEvent::is_completion 与 StreamAccumulation::
completion_observed,按协议判定收尾:Chat 用非空 finish_reason 或
[DONE],Responses 用 response.completed,Anthropic 用带 stop_reason
的 message_delta 或 message_stop。不能统一用 [DONE],MiniMax 兼容层
不发该标记。message_stop 改为产生只带 is_completion 的事件,保持不
伪造 finish_reason 覆盖真实 end_turn 的既有约束。

聚合出过工具 slot 但未观察到收尾信号时返回 Deserialize;判定使用未
固化槽位,使参数恰好闭合的截断仍按截断归因。StreamUnavailable 语义
不变,仍只表示事件形状不受支持。本轮只收严工具路径,纯文本缺收尾信
号仍返回成功并打 warn。

真实端点验证:MiniMax Anthropic 兼容层 stop_reason=tool_use、
MiniMax OpenAI 兼容层 finish_reason=tool_calls,均通过门禁。
2026-07-27 05:36:32 +00:00
..
2026-07-16 18:33:06 +08:00
2026-06-11 23:06:41 +08:00
2026-07-21 19:40:38 +08:00
2026-07-21 19:40:38 +08:00
2026-07-18 21:17:35 +08:00
1
2026-05-10 13:18:46 +08:00
2026-07-21 19:40:38 +08:00
2026-07-16 18:33:06 +08:00
2026-07-18 12:22:58 +08:00
2026-07-21 19:40:38 +08:00