最近在翻 Claude Code 的官方文件時,看到一句話讓我停了下來:
CLAUDE.md: target under 200 lines per file.
200 行。就這樣?
一個要承載整個專案的 build 指令、程式碼編寫標準、架構決策、命名規範的檔案,Anthropic 跟你說「最好不要超過 200 行」。
我一開始跟大多數人的反應一樣——「那不夠啊」。但後來仔細想想,如果 200 行就夠了,那 Anthropic 幹嘛還要另外做 Auto Memory?幹嘛還要有 Skills?直接把 CLAUDE.md 的上限拉高不就好了?
這個問題一旦問出來,後面的東西就有意思了。
表面上都是「記東西」,骨子裡完全不同
Claude Code 的記憶系統有三套機制:CLAUDE.md、Auto Memory(MEMORY.md)、Skills。網路上已經有很多文章在教「怎麼寫 CLAUDE.md」「怎麼開啟 Auto Memory」,這些操作面的東西我就不重複了。
我想聊的是——它們對 context window 的行為差異。
這三套機制,載入 context 的方式完全不同:
| 機制 | 載入方式 | Compaction 後 |
|---|---|---|
| CLAUDE.md | 全文常駐,每一輪推論都在 | 從磁碟重新讀取,完整重生 |
| MEMORY.md 索引 | 前 200 行常駐 | 作為 startup content 重新載入 |
| Memory topic files (主題詳述檔) | 不載入,需要時 Claude 自己去翻 | 隨對話歷史被摘要壓縮 |
| Skill 簡要描述 | 所有 skill 的名稱+描述,共享 1% context 預算 | 不重載(唯一的例外) |
| Skill 完整內容 | 被觸發時才注入,之後持續留在 context | 有 25K tokens 的專屬保護預算 |
同樣叫做「記憶」,但它們在 context 裡的生命週期完全不同。
如果你不知道這些差異,你可能會把所有重要的東西都往 CLAUDE.md 裡塞,然後納悶為什麼 Claude 越來越不聽話——因為你的 300 行 CLAUDE.md 正在稀釋每一條規則被注意到的機率。
200 行不是限制,是設計壓力
換個角度看:200 行的天花板,其實在逼你回答一個根本問題——
什麼知識,值得每一輪推論都佔用 Claude 的 注意力?
答案是:只有核心原則值得。「用兩個空白縮排」「commit 訊息用英文」「API handler 放在 src/api/handlers/」——這些是不管今天做什麼任務都需要遵守的規則。它們值得常駐。
但「上次 debug 發現 連線池 的 逾時時間 跟 auth token 更新時間 有衝突」——這條很重要,但它不需要在你改 CSS 的時候佔用注意力。它需要的是:在你碰到相關問題的時候被想起來。
這就是 Auto Memory 的設計初衷。它不是 CLAUDE.md 的備份,也不是「裝不下的東西放這裡」的垃圾桶。它是一個 按需展開(expand-on-demand) 的記憶架構——MEMORY.md 索引常駐在 context 裡(讓 Claude 知道「我有筆記可以查」),但詳細的主題檔案(topic files)只在 Claude 判斷需要的時候才載入。
用電腦架構來比喻的話:
- CLAUDE.md 是 ROM(韌體)——寫死的、啟動就載入、容量有限但執行保證最高
- MEMORY.md 索引是 RAM 裡的索引表——常駐、告訴系統「什麼資料在哪裡」
- Memory topic files 是外部儲存——容量大、需要時才讀進來
根據個人經驗,我覺得 AI 的這套記憶系統跟我們幾十年前在搞的記憶體階層架構,本質上是同一件事…
四層認知架構
如果把 CLAUDE.md 拆成 User 層和 Project 層(它們本來就是兩個檔案),加上 Auto Memory 和 Skills,其實構成了一個四層的認知模型:
| 層級 | 機制 | 你在定義什麼 |
|---|---|---|
| 個人信念 | ~/.claude/CLAUDE.md | 你是什麼樣的開發者(跨專案通用) |
| 專案原則 | ./CLAUDE.md | 這個專案的遊戲規則(團隊共享) |
| 累積經驗 | Auto Memory | 在這個專案裡學到了什麼(Claude 的筆記) |
| 執行方法 | Skills | 遇到特定任務怎麼做(方法論) |
這四層從上到下,越來越具體、越來越接近「動手做事」。
上面兩層定義「我們是誰、怎麼做事」,第三層累積「我們知道什麼」,第四層處理「遇到特定任務怎麼執行」。

用個更直覺的比喻——這就像一個人加入新團隊的過程:
CLAUDE.md(User)是你自己帶來的專業素養和習慣。CLAUDE.md(Project)是第一天到職時拿到的 內部工作指南。Auto Memory 是你工作一兩個月後自然累積的經驗——「這個模組的 API 有個文件未紀錄的特例」「跑 migration 前要先清 cache」。Skills 則是桌上那幾本 SOP 手冊——需要的時候翻開照著做。
戰略和戰術的分野
Auto Memory 和 Skills 都是「需要時才載入」,但它們的本質完全不同。
我後來想到一個切入方式:Auto Memory 是戰略情報,Skills 是戰術手冊。
用 code review 來舉例:
Auto Memory 記的是:「這個專案的 reviewer 很在意 error handling」「上次 PR 被退回是因為缺少 edge case 測試」「這個團隊不喜歡 超過三層的巢狀結構」。這些是關於這個戰場的情報。
Skills 定義的是:「做 code review 時,第一步檢查 error handling,第二步看測試覆蓋率,第三步確認命名規範,最後用這個格式輸出」。這是作戰程序。
Skill 提供骨架,Auto Memory 填入血肉。
一個好的 code review 不是機械地跑完 checklist。是帶著對這個專案的了解去跑那個 checklist——知道哪些項目在這裡特別容易出問題,知道哪些模式是團隊踩過的坑。
缺了經驗的方法論是僵化的 SOP。缺了方法論的經驗是散亂的直覺。兩者要合在一起,才構成真正的專業能力。
而 Anthropic 在 compaction 的存活設計上,也體現了這個區分——Skill 在 compaction 後有 25K tokens 的專屬保護預算,會被主動重新附加到摘要之後。Auto Memory 的 topic file 查閱內容則隨對話歷史一起被壓縮。
乍看反直覺——戰略情報不是比戰術重要嗎?但想想其實合理:compaction 通常發生在一個任務進行到一半的時候。那個當下,「我正在按照什麼流程做事」(戰術)比「我上個月學到什麼」(戰略細節)更緊急。而且戰略情報的索引(MEMORY.md)還是會重新載入的,Claude 不會忘記「我有筆記本可以查」,只是細節需要再翻一次。
反過來,Skill 列表(還沒被觸發的 skill 清單)是 compaction 後唯一不重載的 啟動內容。但這也說得通——工具忘了可以再找,但記憶不能每次都靠提醒。你可以問 Claude「你有沒有什麼 skill 可以處理這個?」它就會去翻。但你不能每次都提醒它「你是不是忘了什麼?去查一下你的筆記」——如果需要這樣做,Auto Memory 就沒有存在的意義了。

這件事為什麼值得在意
我搜了一圈網路上的討論,發現幾乎沒有人從「context 生命週期」的角度來看這三套機制。大家都在教「怎麼用」,但沒有人在問「為什麼這樣設計」。
目前三大模型廠商的 coding agent——Claude Code、OpenAI Codex、Google Antigravity——都有類似的 rules file 和 skills 機制。Codex 最近也在開發 Memories 功能。但就目前公開的資訊來看,Claude Code 是唯一對「不同性質的知識應該有不同的 context 保護等級」做出明確設計的系統。
其他家有類似的功能拼圖,但還沒有拼出這個認知模型。
而這個認知模型,其實改變了你「經營」這三層的方式:
CLAUDE.md 的 200 行不是「寫到滿」,是一個品味的考驗——什麼值得成為 Claude 在這個專案中的核心信念?你放進去的每一行,都在消耗每一輪推論的注意力預算。
Auto Memory 不是放著讓它自動跑就好。它是 純 markdown 文件,你隨時可以編輯、可以策展。你甚至可以在專案初期就手動寫入一些「種子記憶」,引導 Claude 從一開始就帶著特定的經驗背景工作。
Skills 不是巨集。它是長 session 中最可靠的行為錨點——因為 compaction 後有專屬保護,你的 /deploy 或 /code-review skill 不會在關鍵時刻被遺忘。
寫在最後
大部分人把 CLAUDE.md 當設定檔在管理,把 Auto Memory 當自動備忘錄在用,把 Skills 當快捷鍵在按。
但如果你退一步看,這三者合在一起,其實是在定義 Claude 在這個專案中的專業人格——它的信念、它的經驗、它的方法論。
200 行的限制不是 Anthropic 的偷懶。它是一個設計壓力,迫使整個系統回答一個根本問題:
不同性質的知識,需要不同的 attention 配額和 compaction 保護等級。
或者換句更白話的說法——AI 的記憶管理,跟人類的專業能力結構,本質上是同一件事。核心原則要隨時能調用,累積經驗要在相關情境時浮現,執行方法要在任務進行時不被遺忘。
以前我們設計的是軟體架構。現在也許,我們開始在設計 AI 的認知架構了。
(搞了半天,記憶體階層架構繞了幾十年,又繞回來了…XD)
本文的研究過程中,小思(Claude)全程參與了文件分析、網路搜尋和框架推導。這篇文章本身就是「人類提出直覺 + AI 驗證推演」的協作產物。
參考資料:
- Anthropic, How Claude remembers your project
- Anthropic, Explore the context window
- Anthropic, Extend Claude with skills
- OpenAI, Codex – Agent Skills
- OpenAI, Codex – Memories