diff --git a/docs/tasks/TASK-consult-followup-tool-contract-fix-20260917.md b/docs/tasks/TASK-consult-followup-tool-contract-fix-20260917.md index 3cf351ee..69d06d4d 100644 --- a/docs/tasks/TASK-consult-followup-tool-contract-fix-20260917.md +++ b/docs/tasks/TASK-consult-followup-tool-contract-fix-20260917.md @@ -47,6 +47,14 @@ 本机没有模型凭据,无法向 staging 使用的供应商发一次带 `tool_choice: required` + thinking 的请求;VPS 日志因为次根因也不含供应商原文。证据链是:BUG-282 的供应商原文 + `dc2f2a16` 引入的 `required` + Mastra 1.50.1 的 `error` 块路径 + 咨询流零处理 + 回执形状完全吻合。**T2 落地之后的第一次真实运行会把供应商原文写进日志,那才是最终确认**;若那时错误码不是 `thinking_tool_choice_unsupported`,按 §6 处理,不得硬套。 +### 2b. 同日晚间新增反证(2026-09-17 23:12 截图) + +同一部署 `dc2f2a16` 下,产品负责人用 `gpt-5.6-luna` 在**本命路线**发「我 15 年高考成绩如何」,事件流走到「读取分析方法 ✓ → 正在计算本命盘(第 1/2 项)」,即第 0 步的强制工具调用**被这个供应商接受了**。这说明: + +- 「供应商拒收 `required`」不能解释所有模型;上一条申报时段失败若也是 `gpt-5.6-luna`,主根因就不成立,真实错误只能靠 T2 落地后的日志看到。**T2 因此升为本单第一优先,先做 T2 再做 T1。** +- T1 仍然保留:模型目录里可以切换模型,BUG-282 实证过至少一个 thinking 供应商拒收;`activeTools` + `auto` + BUG-922 提示词在所有供应商上都成立。 +- 那次截图本身是另一个问题(计算阶段两分钟无结果、无失败态),另立单,不并进本单。 + ## 3. 决策记录 - **本单撤销 BUG-923 的 `toolChoice: "required"`,回到 BUG-282 / BUG-630 的口径:第 0 步只用 `activeTools` 收窄到排盘工具,`toolChoice` 为 `"auto"`。** BUG-923 记录里「若线上某模型拒收,另立单,不得静默改回 auto 而不改提示词」——本单就是那张单;提示词侧的 BUG-922(每轮必调、packet 不跨请求)**保留不动**,它才是 BUG-922/923 事故里模型跳过工具的真正原因。