开关要映射到模型调用才算生效

**前端开了"深度思考"、请求参数也透传成功,都不代表模型真的开了思考。判据只有一条:真正发给 provider 的那次 generation 请求里有没有对应的推理参数。没有 → 观测里的 reasoning tokens 为 0 不是统计错,是链路最后一跳缺失。**

一次实例

  • 顶层 trace 的输入里确实有 "thinking": true —— 按钮和请求透传都成功。
  • 但真正发给 DeepSeek 的 3 次 generation 请求里,没有 reasoning_effort / thinking 或任何推理参数,modelParameters 是空对象。
  • 于是 reasoningTokens = 0。观测没有错,是运行时根本没把开关映射到模型调用。

判断顺序

  1. UI 状态是否变了(最不可靠,只证明按钮能点)
  2. 应用层请求参数里有没有这个开关(证明透传成功)
  3. 实际 provider 调用的 request 里有没有对应字段(唯一能证明生效的)
  4. 观测指标(token 计数)用来交叉验证,不是根因

同类情形见 控件参数要在下游被消费:值传到了,消费方没读,表现是"调了没反应且不报错"。

相关

  • 控件参数要在下游被消费 —— 同一形状:生效点在消费方,不在传递方
  • 能力链路打通不等于默认开启 —— 相邻问题:链路通了但默认关着
  • 请求别名不等于实际模型ID —— 同一会话:观测只能证明"到了哪一层"
  • 中间进展与最终回答要按phase区分 —— 同一族:事件要有语义类型才算被正确消费