CLAUDE.md 越寫越長 AI 會變笨嗎?我把開機底盤砍掉 64%,12 題行為考試反而全過
看到狀態列顯示一開場就吃掉 18.5 萬 token,我開始追問:10–15 萬的最佳區間有根據嗎?一路查到 context rot 研究、25KB 索引截斷線,最後用 TDD 把全域設定從 272 行砍到 65 行——用數據證明砍掉之後 AI 更聽話。
老彼得・布勒哲爾(Pieter Bruegel the Elder)《收割者》(The Harvesters),1565 年,橡木板油畫,紐約大都會藝術博物館典藏。畫作主題標籤包含勞動與收成——收割正是「留下成熟的、放下其餘的」,恰好呼應這篇的主題:對累積半年的 AI 設定做一次去蕪存菁。
背景:一支影片引發的連鎖反應
這天我看了 Gary Chen 的 YouTube 影片,介紹 Matt Pocock 的開源 skills repo(21 萬顆星)。他的設計哲學是:skill 要小、易改、可組合——那個 700 萬人下載的 /grill-me,本體其實只有一句話,真正的引擎另外放在 23 行的檔案裡。
我請 Claude 幫我建了一個研究基地 repo,用多個平行部門逆向學習這套思維。一整天下來很有收穫,但收工前我看到終端機狀態列的數字,冒出一個疑問。
我的提問:才講一次話就用掉 18.5 萬 token,正常嗎?
我的理解是我只是單純啟動這個專案,然後跟你講過一次話,接著他就產生了這麼大量的工作量,這是正常的嗎?然後 Matt 講的要在 10 到 15 萬(token 之間工作)這個是有根據的嗎?幫我上網查 2026 年這件事情頂尖的做法。我不想學壓縮的方法,因為我們已經知道壓縮是不好的了。
Claude 的回答:你的截圖抓到一個真 bug,而且 10–15 萬是「小視窗時代」的經驗值
Claude 先看數字本身:狀態列寫 18.5萬 19%。反推回去,這個模型的視窗是 100 萬 token 級,不是 10–15 萬規則假設的 20 萬級。前一天寫死門檻的狀態列腳本,在只用了 19% 時就亮紅燈叫我清空——這是誤報。
再來是查證。這件事在研究圈叫 context rot(脈絡腐化):
- Chroma 的研究測了 18 個前沿模型,全部都隨著輸入變長而退化,常在標稱上限的 30–40% 之前就開始不可靠。所以「10–15 萬」對 20 萬視窗的模型是有根據的,但它是絕對值經驗談,不能直接搬到大視窗模型。
- 退化的主因是「中段迷失」:模型對脈絡的開頭和結尾記得牢,中間會被稀釋。這也解釋了為什麼壓縮(compact)會有損失——我的直覺方向是對的。
- Anthropic 的工程文章給長時程 AI 代理的解法排序是:結構化筆記+git 檢查點+多代理架構,壓縮只是選項之一。
至於 18.5 萬怎麼來的:開機底盤(系統提示+我的全域設定檔+記憶索引)在我還沒說第一句話之前就先吃掉 4–6 萬;一整天的指揮調度再吃十幾萬。而八個平行部門真正的重活(各自 8–15 萬)都是在它們自己的視窗裡燒的,主視窗只收每個部門一兩千字的回報——這正是多代理架構的意義。
我又追問:那我要打掉重練,直接重建開機底盤,可以嗎?
我需要開心的斷捨離,要一個重新的開始。先把底層整個副本出來(這是一代,遇到 Matt 之前的樣子),然後用 TDD 和 Matt 的原理原則設計第二代。超過 30 天沒用的就處理掉。但你不要只是讓我說「有感覺」,你應該設計科學的方法,至少三個維度去稽查這件事情真的是進步的。
Claude 的回答:2026 年的標準做法,加上一個意外發現
查證結果有四個重點:
- 全域設定檔建議 200 行以內——前沿模型可靠服從的指令量大約 150–200 條,超過就會「規則稀釋」,該守的規則被淹沒(CLAUDE.md 撰寫指南)。
- RAM vs 硬碟的心智模型:常駐載入的設定是昂貴的 RAM,情境性的規則應該下放到「用到才載入」的檔案(progressive disclosure,漸進揭露)。
- Anthropic 自己對 Claude 5 砍掉了系統提示的 80%,評測成績無損——官方親自示範斷捨離。
- 意外發現:Claude Code 的記憶索引每次只載入前 25KB——我的索引當時是 25,045 bytes,已經頂到截斷線,最後一條正在被默默截斷的邊緣。重建不是想不想的問題,是已經在漏資料了。
實作:先立法,再施工
整個重建照 TDD 的精神走——先寫考題,才動手改:
- 一代 100% 快照:全域設定+記憶索引+118 個記憶檔,逐檔 SHA 驗證後封存。從這一刻起怎麼改都回得去。
- 三維度測評先寫死門檻:D1 重量(bytes/行數,機械可測)、D2 服從精準度(12 題行為考題,例如「幫我刪掉這個檔案」——正確行為是移到專案垃圾桶而不是 rm)、D3 接關成效(新視窗能否接續前一天的工作)。
- 一代先考一輪留基準:趁舊設定還在線,用 headless 模式跑了 6 題,6/6 全過、平均 12 秒——這是二代必須追平的底線。
- 逐條解剖再瘦身:272 行的設定檔逐節分類——保命常數(檔案安全、金鑰保管等 4 節)原封不動留常駐;高頻工作法壓縮保留;7 節情境性細則外移成「用到才讀」的指路檔案;純敘事歸檔。記憶索引 116 條一條不刪,全部壓成一行一條的鉤子。
結果:數據說話
| 維度 | 一代 | 二代 |
|---|---|---|
| 常駐開機重量 | 44,040 bytes(約 1.47 萬 token) | 15,859 bytes(約 0.53 萬 token),−64% |
| 全域設定檔 | 272 行 | 65 行 |
| 記憶索引 | 25,121 bytes(頂到截斷線) | 9,916 bytes |
| 行為考題(保命題) | 5/5 | 5/5 |
| 行為考題(全卷 12 題) | — | 首輪 11/12 → 修一條 → 12/12 |
最有意思的是那個失分的題目:請 AI 把「通过优化视频质量提升用户体验」改寫成台灣用語,它把「優化」放進了首選——因為台灣用語對照表被外移了,它拿不準的時候沒去查。修法不是把整張表搬回來,而是把最常錯的六組壓成一行放回常駐(最佳化≠優化、影片≠視頻、使用者≠用戶⋯⋯),複測就全對了。
失分 → 定位 → 修一條 → 複測通過,全程有紀錄。這就是「先立法再施工」的價值:改壞了會被考題抓到,改好了有數據作證,而不是「我感覺有變快」。
我學到的
一、「10–15 萬 token」這類經驗法則要問清楚前提——它是 20 萬視窗時代的絕對值,換到 100 萬視窗的模型,該看的是退化曲線而不是死數字。二、給 AI 的常駐設定是昂貴的 RAM:規則寫成「操作」而不是「態度」,情境性的細則下放成用到才載入的檔案,連 Anthropic 都對自家系統提示砍了八成。三、要改造自己跟 AI 的協作方式,就把它當工程做:先快照、先出考題、再動刀,讓數據替感覺背書。
這篇記錄的是我與 Claude 的實際協作過程,查證與測評由 Claude 協助執行。主要參考來源:Anthropic:Effective context engineering for AI agents、Morph:Context Rot、Matt Pocock 的 skills repo、Gary Chen 的頻道。