fc53ee5c9c
Responses 的整体收尾信号有两个,此前只处理了 completed,incomplete 落入 通配分支被整个忽略。真实端点抓包确认:撞到 max_output_tokens 时上游只发 response.incomplete、不发 completed,载荷与 completed 同构,带完整 output[], item 标 status=incomplete,incomplete_details.reason 给出原因。 忽略它造成三件事:不终止读取循环,网关不主动关连接就等到调用方超时;流式 Responses 永远产生不出 incomplete 这个 finish_reason,上一轮加的截断拒绝规则 对它形同虚设;completed-only 型网关的工具调用被静默丢掉。 与 completed 合并到同一分支,只在 finish_reason 上区分。incomplete 由此自动 走 reject_incomplete_tool_calls:工具调用拒绝,正文按降级结果返回,与 Chat 的 length 口径一致。 三个用例的事件序列转录自真实抓包,退回通配分支时三条全部失败。