Claude Code /effort 怎么按模型分开存
2.1.251 起推理强度按模型分别记住默认档,切到 Sonnet 不会带走 Opus 的最高档。思考关闭且档位过高时,客户端会把实际发送降成高档。

claude code /effort 按模型怎么存:2.1.251 让 /effort 把默认档按模型分开记。切到另一个模型时,各用各的设置,不再共用一个全局 effort。以前给 Opus 设 max,切到 Sonnet 仍带着 max,要么浪费、要么直接报不支持。
现在存在哪
Changelog 只说 save your default effort level per model。具体是用户 settings 还是本机一份映射表,发行说明没展开。现象是:在模型 A 设好,切到 B,再切回 A,A 应回到你上次给它的档。
/model 和 /fast 切模型不会改你给「目标模型」存的档;它们只换模型,再读该模型自己的默认。托管 settings 若锁死 effort,本机 /effort 可能写了也不生效,/status 看 Skipped sources。
和 thinking 关着打架时
Opus 5 在 thinking 关闭、effort 却是 xhigh 或 max 时,旧请求会失败:effort is not supported when thinking is disabled。2.1.251 把这种请求的 effort 改成 high 再发送。你在 /effort 里看到的可能仍是 max,实际发出去的是 high。账单和延迟按实际发出的档,不要只看 UI 标签。
需要真的 max 时,先开 thinking,再设 xhigh/max。关 thinking 做短任务,用 high 或更低,少碰被降档的那对组合。
怎么检查已经分开存
- 升到 2.1.251+。
- 在 Opus 设一档(例如 high),切到 Sonnet 设另一档(例如 medium)。
- 来回切两次,看
/effort展示是否跟模型走。 - 新开一轮会话再切一次,确认不是只记在当前 TUI 内存里。
子代理不会自动继承你在主会话 /effort 里按模型存的值。子代理用自己的定义或 CLAUDE_CODE_SUBAGENT_MODEL 默认,effort 另说。主会话省钱习惯见 会话成本。
企业席位同版本把默认模型改成 Opus 5。新会话若突然变贵,先看默认模型,再看这个模型上存的 effort 是不是还停在你给旧默认模型设的 max。
和换模型 hook 的关系
2.1.251 的 PreModelSwitch 可以在 /model 时拦截。effort 映射是切换成功之后按「新模型」读取的。hook 拦了切换,effort 不会改到目标模型那一档。企业若既锁模型又锁 effort,应在托管 settings 写死,不要指望每人记一套 /effort。