2026 年 4 月 23 日,Anthropic 在官方部落格上把 Claude Code 這兩個月來的「變笨」事件(社群常稱為「降智」)寫成一份 post-mortem 公開。過去幾週在 X、Reddit、GitHub 上幾乎天天都有人抱怨:同樣的指令以前 Claude Code 一次就能做好,現在常常漏讀檔案、忘記剛才做過什麼、或直接把額度噴光。Anthropic 一開始的態度是「API 與模型本身沒動過」,但最後還是承認——確實是 Claude Code 這一層出了問題,而且不是一個 bug,是三個獨立 bug 疊加。

這篇文章整理三個 bug 各是什麼、Anthropic 為什麼從否認轉向承認、公開同日發下去的補償方式,以及他們承諾後續要做的改善措施。這次事件跟 4 月初的 Claude Code 原始碼意外洩漏 事件時間上很接近,但是兩回事——洩漏事件揭露的是 autocompact bug,這次 post-mortem 處理的是另外三個不同 bug。

三個 Bug 各是什麼

Anthropic 把整個事件的關鍵時間點整理出來,看得出來是三個獨立調整先後疊在一起,不是一次性的錯誤:

Claude Code 變笨事件時間軸:Bug 1 reasoning 降級從 3/4 持續到 4/7,Bug 2 caching 優化從 3/26 持續到 4/10,Bug 3 verbosity 從 4/16 持續到 4/20,中間 4/2 AMD 公開遙測促成 Anthropic 從否認轉向承認,4/23 post-mortem 搭配額度重置收尾
圖 1:三個 bug 疊加的時間軸。最糟的時段是 3/26 至 4/7(Bug 1 與 Bug 2 同時存在),AMD 在 4/2 公開遙測是分水嶺。
日期事件結果
2026-03-04Claude Code 預設 reasoning effort 從 high 調為 mediumBug 1 開始影響
2026-03-26引進一個 caching 優化Bug 2 開始影響
2026-04-02AMD AI 總監 Stella Laurenzo 在 GitHub 上公開附帶遙測資料的 issue輿論壓力升高
2026-04-07reasoning effort 回復 highBug 1 修復
2026-04-10caching 優化修掉 (v2.1.101)Bug 2 修復
2026-04-16新增 verbosity system prompt(限制字數)Bug 3 開始影響
2026-04-20verbosity prompt 移除 (v2.1.116)Bug 3 修復
2026-04-23公布 post-mortem、重置所有訂閱者額度事件收尾

Bug 1:reasoning effort 被降級

3 月 4 日 Anthropic 把 Claude Code 的預設 reasoning effort 從 high 調降為 medium。背後的動機是降低「尾端延遲」——複雜任務偶爾會讓 Opus 思考一分鐘以上,UI 看起來像凍結了,團隊希望把這種感受降下來。內部評估當時認為這樣「只會稍微降低智能」,但實際跑出來使用者感受落差非常大。Anthropic 在 post-mortem 裡直接承認這是「錯誤的取捨」,4 月 7 日已經復原。

順便把新的預設寫清楚:Opus 4.7 現在預設是 xhigh、其他模型預設是 high。換句話說就算這次沒踩到坑的使用者,現在也等於吃到預設強度的升級,推理任務會比事件前更願意多花時間深思。

Bug 2:caching 優化清掉了 thinking 記憶

這個 bug 大概是三個裡面最難察覺、也最傷的。Claude Code 有一個叫 clear_thinking_20251015 的 header,搭配 keep:1 參數,原本的設計是「如果對話閒置超過 1 小時才是 stale session,觸發一次清理就好」,用來節省長期閒置 session 的快取空間。但實作出問題,條件判斷沒有「只在 stale 時執行」,變成 session 開始之後每一輪 turn 都清一次。

清掉的是模型的 thinking blocks(思考區塊)——那是 reasoning model 在生成最終回覆前的推理步驟。當 thinking 每一輪都被清掉,Claude 仍然會繼續呼叫工具、繼續回應,但「為什麼上一步要這樣做」的脈絡逐漸消失。使用者體感就是:AI 該讀的檔案沒讀、該檢查的東西沒檢查、同一件事問它兩次得到不一致的答案。4 月 10 日發布的 v2.1.101 把這個 bug 修掉。

Bug 3:verbosity 系統提示詞把 coding 分數壓低 3%

4 月 16 日 Anthropic 想解決另一個問題:Opus 4.7 在 Claude Code 裡容易囉嗦,動不動就寫一大段「我現在要做 X」的解釋,token 也因此變貴。他們加了一段系統提示詞:

Length limits: keep text between tool calls to ≤25 words.
Keep final responses to ≤100 words unless the task requires more detail.

看起來是合理的節流指令,但實測跑內部 coding benchmark 時,Opus 4.6 跟 4.7 都掉了大約 3%。Anthropic 的解讀是:字數限制壓抑了模型寫出中間推理、列出 assumption 的空間,而這些看似冗餘的文字其實在 coding 任務裡幫助模型保持一致性。題外話,這個現象跟我們在 Google AI Studio 免費跑 Gemma 4 那篇觀察到的 Gemma preamble 效應有點像——模型的「想出聲」不是噪音,是它維持思緒的手段,硬壓下去就會付出代價。4 月 20 日 v2.1.116 把這段 prompt 拿掉。

Anthropic 為什麼這次願意承認

Anthropic 過去對「模型變笨」這類抱怨長期是否認態度,給的標準回應是「我們從來沒有故意降級模型,而且 API 跟推理層面都沒有被更動過」。這次會轉向,最大的推力不是一般使用者的抱怨,而是 AMD AI 總監 Stella Laurenzo 在 4 月 2 日公開的一份遙測分析。

Laurenzo 分析了 6,852 個 session 檔案、共 234,760 次 tool call、17,871 個 thinking block,抓出兩個很難反駁的數字:

  • 編輯檔案前先讀過的次數從平均 6.6 降到 2.0(Claude 變懶、假設代替查證)
  • 可見的 thinking 長度中位數從大約 2,200 字元塌到 600 字元(模型在想的越來越少)
AMD Stella Laurenzo 於 2026-04-02 公開的 Claude Code 遙測分析:左側顯示編輯檔案前先讀過的次數從 6.6 下跌到 2.0(約 70% 下跌),右側顯示可見 thinking 長度中位數從 2,200 字元下跌到 600 字元(約 73% 下跌),兩者都是基於 6,852 個 session 的分析
圖 2:Laurenzo 的兩個數字。讀檔頻率掉 70%、thinking 長度掉 73%,這種有基準線的量化證據是讓 Anthropic 難再用「模型沒動」擋掉的關鍵。

這兩個數字是工程師最熟悉的那種「數據擺在你面前」的證據,不是感受也不是樣本偏差,Anthropic 很難繼續只用「API 沒動」一句話擋掉。Claude Code 負責人 Boris Cherny 在 post-mortem 裡的原話是:

this has probably been the most complex investigation we’ve had … the root causes were not obvious, and there were many confounders.

這句話其實也是在幫自己緩頰——三個 bug 的時間分散、影響方式各不相同,單獨看任何一個都很難歸因。但是反過來說,一家做 frontier model 的公司在生產環境疊三個調整都沒跑完整的 regression test 就推出去,這件事本身就值得反省。

補償方式:全訂閱者額度重置

4 月 23 日與 post-mortem 同時生效的補償只有一個動作:所有 Claude 付費訂閱者當下的額度計數直接歸零。也就是說這個月原本已經用掉的額度不算,大家都從零開始跑到下一個帳單週期。簡單粗暴,但可能是最誠實的方案——因為 bug 期間誰消耗多誰消耗少很難追溯,直接清零對所有訂閱者都有好處。

補償沒有包含的東西也整理一下,避免讀者誤會:

  • 沒有現金退款,也沒有延長訂閱期
  • 沒有追加下個月的額度(只是「重置」,不是「加碼」)
  • API 帳單沒有調整——這次事件只影響 Claude Code CLI 這一層,走 API 直接呼叫模型的開發者不在影響範圍內,自然也沒有退款

有一個插曲值得一提:4 月 21 日也就是事件收尾前兩天,Anthropic 做了一個小規模 A/B 測試,把 Claude Code 從 $20 Pro 方案裡拿掉,只有 Max 方案才能用。測試涵蓋大約 2% 的新註冊者,在社群炸鍋後不到一天就回滾了。這個時機選在使用者正在抱怨品質的當口,觀感非常糟,雖然只是測試但加深了外界對 Anthropic 溝通能力的負評。

個人經驗:時機沒對上,補償沒享受到

講一下自己的經驗。我的 weekly limit 原本就排在 4 月 24 日重置,Anthropic 4 月 23 日那次全體重置我幾乎沒感覺——因為隔一天我自己的週期也會歸零,收到的禮物其實只提早了大概一天。根據每個人訂閱的起算日不同,這次重置的實際價值落差很大,越接近原本重置日的人拿到的越少。

我是 Max $100 重度用戶,每天都會開好幾個小時、連假日也在跑——用途涵蓋程式規劃、實作、研究新專案的背景資料、把舊專案的架構讀一遍熟悉一下。整體用量不算輕,但這幾個月下來 session limit 跟 weekly limit 其實都沒有真的撞上過。一方面可能是運氣好剛好避開 bug 最嚴重的時段,另一方面也可能是即使沒有 bug、只要用得兇一點還是會碰到上限。後面有機會再寫一篇整理我自己控制 token 消耗的習慣跟幾個小技巧,這邊先按下不表。

不過「降智」這件事我的確感受到過。最明顯的症狀是 context 其實才用到一半,Claude Code 就開始忘記 CLAUDE.md 裡已經交代好的規則——像是事先講好的路徑慣例、特定流程要呼叫哪個指令之類的,明明還有很多上下文空間可用,但答案就是跳過了。這跟單純 context window 爆掉不一樣,是那種「規則還在視野內但模型就是沒拿出來用」的感覺。回頭看時間點也對得上,應該就是 Bug 2(caching 每輪清掉 thinking)在我 session 上的具體表現。

改善措施

Post-mortem 裡 Anthropic 承諾的後續改善主要有三項:

  • Claude Code build 前多跑 regression test:針對工具調用、上下文保留、coding 品質三個面向,每次 release 前都要跑過才能推線上
  • 系統提示詞要過 eval 才能上線:像這次 verbosity prompt 那種「看起來合理但會降品質」的微調,以後要先跑 coding benchmark 確認沒有 regression 才能部署
  • 開新的 @ClaudeDevs X 帳號:用來發產品說明、回應使用者對變化的疑問,算是對「溝通不夠透明」這個批評的回應

這三項裡面,前兩項是工程層面的護欄,寫清楚了就可以檢驗。第三項比較虛——公司多開一個 X 帳號發文不難,但 post-mortem 本身能不能成為常態(下一次出問題幾週內就公開,而不是先否認一個月再承認)才是真正要看的指標。

這件事的一些觀察

結束前想講三個比較實用的觀察:

第一,「模型」跟「模型被包裝出來的產品」要分開看。這次三個 bug 都不在 Opus 或 Sonnet 模型本身,是 Claude Code 這一層的 prompt 設計與 caching 實作。使用 API 直接打模型的開發者從頭到尾沒感覺,受影響的只有走 Claude Code CLI 的使用者。這也說明了為什麼 Anthropic 一開始可以很堅決地說「模型沒動」——那句話在技術上是正確的,只是不是使用者想問的問題。未來看到類似爭議,區分「模型本身變動」跟「harness/product layer 變動」會更精準,這個觀點在 Harness Engineering|AI Agent 從提示詞工程、上下文工程演進的新顯學 那篇有更完整的討論。

Claude Code 架構兩層圖示:上方紅色區塊是 Harness 層(Claude Code 產品程式),三個 bug 全部落在這一層,包含 reasoning 降級、caching 清掉 thinking、verbosity prompt 限字;下方綠色區塊是模型層(Opus 4.7 / Sonnet 4.6),權重沒改、推理層沒動、benchmark 相同
圖 3:把 Claude Code 拆成兩層來看。紅色的 harness 層是產品程式(prompt 組裝、caching、tool 調用),三個 bug 全在這裡;綠色的模型層沒任何改動——這解釋了為什麼 Anthropic 前期能說「模型沒動」,也解釋了為什麼使用者感受差很多。

第二,使用者遙測回報比感受回報有份量。這次能逼出 post-mortem 的不是 Reddit 上滿坑滿谷的「Claude Code 變笨了」發文,是 Laurenzo 把 session 檔案讀出來、做統計、畫圖的那份遙測分析。對第一線開發者的啟示是:遇到疑似品質下降,與其只在論壇抱怨,把自己的 session log 存下來做個時間序列比對會更有說服力,也能幫廠商更快定位問題。

第三,額度重置對本來就踩到 bug 的重度用戶是實際的好消息,但對只是輕度使用的人效果有限(本來就用不完)。如果這段時間有在 Max 方案跑批次任務、或是因為 caching bug 多噴了好幾倍 token 的重度開發者,建議打開 Claude Code 的 /cost 或儀表板看看,確認重置有生效,再順手把上次碰到上限的時間點記下來,有機會的話對照下個週期的消耗曲線,就能看出這次修正有沒有真的把 token 消耗拉回正常軌道。

參考資料: