Claude Code 突然变蠢了?为什么我选的Opus结果执行的是Haiku!

原因是Anthropic 在 2-3 月悄悄上线了一个叫「自适应思考」(adaptive thinking)的功能——让模型自己决定每轮想多久。
结果它经常决定:不想了。 零 token 思考。

然后就导致:

  • • 不读文件就直接改代码
  • • 自信满满地编造不存在的包
  • • 一个任务烧掉 $100+ 的 API 费
  • • 说了别动那个文件,它偏要动


修复方法:两步搞定

第一步:退回 Claude Code 到 2.1.98 版本

新版 CLI 内部有改动,会强化被削弱的行为。退回到一个稳定的老版本是基础。

    
    
    
  npm uninstall -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code@2.1.98

原帖作者的原话:

新版 CLI 带了内部改动,会加强被 nerf 的行为。退到一个 pre-nerf 的稳定版本 + 关掉 adaptive thinking,这才是干净的组合。


第二步:加一段配置到 .claude/settings.json

打开你的 .claude/settings.json,加入以下内容:

    
    
    
  {
  "model": "claude-opus-4-6",
  "effortLevel": "high",
  "alwaysThinkingEnabled": true,
  "env": {
    "CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING": "1",
    "MAX_THINKING_TOKENS": "31999"
  }
}

每个配置项是干什么的?

"model": "claude-opus-4-6"

锁定使用 Opus 4.6 模型。防止 CLI 自动切换到其他模型。

"effortLevel": "high"

关键配置。 Anthropic 在 3 月 3 日把默认 effort 从 high 悄悄降到了 medium(85)。这意味着模型默认就在"省力模式"下工作。

设成 high,把思考预算拉回来。

"alwaysThinkingEnabled": true

强制模型在每一轮都启用扩展思考(extended thinking),不跳过。

原帖作者说这个单独用没用——"像给一个坏掉的喇叭调大音量"。但配合关掉 adaptive thinking 一起用,它确保每轮都有思考预算。

"CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING": "1"

最核心的一个。

这就是关掉「自适应思考」的开关。Anthropic 2 月 9 日上线的 adaptive thinking,让模型自己决定每轮想多久。问题是有些轮次它分配了零 token 的思考——直接不想了。

关掉它,模型回到固定思考预算模式,每轮都会认真想。

这个变量官方文档里没有,是 Anthropic 工程师在 GitHub issue #42796 的评论区里透露的。那个 issue 有 2,951 个 reaction、455 条评论。

"MAX_THINKING_TOKENS": "31999"

设置每轮最大思考 token 数。

原帖作者说这个单独用也是噪音——光给 token 不解决问题。但配合关掉 adaptive thinking 后,它给固定思考预算设了一个上限,防止思考过程被截断。


为什么要两步一起做?

原帖作者试过只改配置不退版本,没用。也试过只退版本不改配置,也不够

他的结论:

你不需要 6 个配置项。你需要搞清楚他们改坏了什么,然后精确地还原回去。

两步的逻辑:

  1. 1. 退版本:去掉新 CLI 里强化 nerf 的内部改动
  2. 2. 加配置:关掉 adaptive thinking + 恢复高 effort + 保证每轮都思考

组合起来,就是把 Anthropic 拿走的东西还回去。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐