人來過

Claude Code memory 完整教學 + 懶人包

4 招寫好 CLAUDE.md 降 token,附 5 個複製 prompt 貼 Claude Code 自動改

← 返回首頁 關於我 · 失敗清單 · GitHub · Threads

先給你答案,再讀內容

不想看完整篇?下面 5 個 prompt 直接複製貼到 Claude Code,它會自己看你的 CLAUDE.md、告訴你要改哪裡、等你 OK 再動手。底下文章再解釋每一招為什麼能省 token、原理是什麼。

一鍵全套健檢(懶人首選)
在你專案的根目錄打開 Claude Code,貼下面這整段。它會跑 4 招的所有檢查,每一步改之前先列給你看,等你說 OK 才動。
幫我健檢這個專案的 CLAUDE.md,目標是降低 context token 消耗,照下面順序做: 1. 跑 `wc -l CLAUDE.md` 告訴我現在幾行 2. 掃描檔案裡用 # 開頭的「給人看的歷史/原因/脈絡」註解 (不是規則本身,是解釋「為什麼有這條」那種) 列出來,改包成 <!-- --> 區塊註解格式 3. 找出「只跟某一種檔案類型有關」的規則 (例如只跟 API、前端元件、SQL migration 有關) 拆成獨立 .claude/rules/xxx.md,加 YAML frontmatter 的 paths 欄位綁 glob 從主 CLAUDE.md 刪掉搬出去的部分 4. 檢查有沒有很長的段落(git workflow、風格指南等)適合用 @path 搬到外部檔 5. 全部改完後再跑一次 `wc -l CLAUDE.md` 告訴我差多少行 每一步動手前先列計畫給我看,我說 OK 再改。參考 https://code.claude.com/docs/en/memory 的規則。
會得到什麼:一份改動計畫 + 改完前後的行數對比。Claude 會一步一步來,不會亂改。
花多久:看你 CLAUDE.md 多大,通常 10 - 30 分鐘一次講完。
1把歷史註解藏起來(最快 5 分鐘)
掃我的 CLAUDE.md,把裡面用 # 開頭的「人類註解」(歷史原因、某某人決定的、為什麼有這條這種給人看的脈絡,不是規則本身)全部改包成 <!-- --> 區塊註解。 改之前先列出你找到哪幾段,等我 OK 再改。改完跑 `git diff CLAUDE.md` 給我確認。
2讓規則只在改對應檔案時才載入(省最多)
我的 CLAUDE.md 裡有些規則只跟特定檔案類型有關(例如只跟 src/api/ 有關、只跟 React 元件有關、只跟 SQL migration 有關)。 幫我把這些規則拆到 .claude/rules/ 底下各自獨立檔,每個檔加上 YAML frontmatter: --- paths: - "對應的 glob" --- 從主 CLAUDE.md 刪掉搬出去的規則。先給我拆分計畫(每一組會變成哪個檔、paths 寫什麼),我說 OK 再動。 規則格式參考 https://code.claude.com/docs/en/memory
3CLAUDE.md 超過 200 行就瘦身
跑 `wc -l CLAUDE.md`。如果超過 200 行,幫我分析: 1. 列出檔案裡每一大段的行數 2. 找出哪幾段最適合搬出去: - 歷史脈絡 → 用 HTML 註解 <!-- --> 包起來 - 只跟某種檔案有關 → 搬去 .claude/rules/ - 長範例 / 完整流程 → 搬去 docs/ 用 @path 拉回來 3. 估算砍完後會剩幾行 先給我建議清單,我選做哪幾項再動手。
4把跨專案共用的長段落搬出去(@import)
找出我 CLAUDE.md 裡「很長的段落而且跨專案通用」的內容(例如 git workflow、個人 code style 偏好、commit 規範)。 幫我搬到外部檔,主檔改用 @path 拉進來: - 跨專案個人偏好:搬到 ~/.claude/xxx.md,用 @~/.claude/xxx.md - 專案內細節:搬到 docs/xxx.md,用 @docs/xxx.md 先列你要搬哪幾段、目標檔名,我說 OK 再動。
提醒:Claude Code 會遵守你的 CLAUDE.md 現有規則,所以如果你原本有寫「改檔前要先問我」這種規則,它就會先問你。如果沒寫,建議第一次執行時盯著看,確認動的地方你都同意。

Opus 4.7 的 token 行為

Anthropic 在 2026-04-16 發布 Opus 4.7,公告原文就直接寫了:
同樣的 input 會吃 1.0–1.35× token。
「The tradeoff is that the same input can map to more tokens—roughly 1.0–1.35× depending on the content type.」 來源:Anthropic 官方公告 anthropic.com/news/claude-opus-4-7

同公告也寫了:內部 coding 評測上整體 token 用量是 net favorable — 4.7 解題效率高,總 token 反而省。

模型層能做的有限。但 context 層是你能直接下手的地方 — CLAUDE.md。每次 session 一開機就完整載入,沒寫好等於每次對話前就先燒掉一截 token。

官方給的 3 個 token 控制工具(模型層)

Anthropic 公告裡明確列出 4.7 用戶能控制 token 用量的方式:

「control token usage in various ways: by using the effort parameter, adjusting their task budgets, or prompting the model to be more concise.」 來源:Anthropic 官方公告 anthropic.com/news/claude-opus-4-7
  1. effort 參數 — 4.7 新增 xhigh(介於 high 跟 max 之間)讓你細調推理深度
  2. Task Budgets(4.7 新功能)— 設定模型最多想多久
  3. 直接 prompt 模型「簡潔回答」

這三招都是模型層的。但有一個更被忽略的層 — context 層。每次 session 一開機,CLAUDE.md 就完整 load 進 context window,沒寫好等於每次對話前就先燒掉一截 token。

4 招寫好 CLAUDE.md(每招都附 before / after + 為什麼能省)

每一條規則都來自 Anthropic 官方 Claude Code memory 文件,code.claude.com/docs/en/memory。範例都可以直接複製改你的 CLAUDE.md。

1把「給人看的脈絡」包成 <!-- --> 區塊註解
為什麼能省:區塊層級的 HTML 註解在被 inject 進 Claude context 之前會被剝掉。你寫給未來自己 / 隊友看的「為什麼這條規則」「下次誰刪要先問」 — 完全不進 token。
「Block-level HTML comments () in CLAUDE.md files are stripped before the content is injected into Claude's context.」 來源:code.claude.com/docs/en/memory

Before(爛)— 那兩段歷史每次都被載入

# Rules # 2025-08-15: 這條是因為 Sarah 反映她 PR 一直被 reject 才加的 # 不要刪,跟 Compliance team 確認過 - Always include type annotations on exported functions # Mike 覺得這條未來可能要拿掉 - Prefer `import type` over `import { type }`

After(好)— 兩段註解被剝掉,Claude 只看到規則本身

# Rules <!-- 2025-08-15: 這條是因為 Sarah 反映她 PR 一直被 reject 才加的 不要刪,跟 Compliance team 確認過 --> - Always include type annotations on exported functions <!-- Mike 覺得這條未來可能要拿掉 --> - Prefer `import type` over `import { type }`
馬上做:grep -n "^#" CLAUDE.md 找你現在用 # 開頭的人類註解,包成 <!-- -->
注意:程式碼區塊 ``` 裡的註解會保留;用 /memory 命令打開檔案時你還是看得到 — 給人看的內容沒消失,只是不進 Claude context。
2.claude/rules/ + paths 條件載入(這招省最多)
為什麼能省:放在 .claude/rules/*.md 加 YAML frontmatter 的 paths 欄位,規則只在 Claude 動到符合 glob 的檔案時才載入 context。寫前端時不會載 API 規則;改 API 時不會載前端規則。每次 session 開頭 = 0 token。

Before(爛)— 全部塞主 CLAUDE.md,每次 session 都載

# CLAUDE.md(主檔) ## API rules(50 行) - All endpoints must validate input with zod - Use standard error response from src/api/errors.ts - ... 還有 47 行 ## React rules(50 行) - Functional components only, no class components - Tailwind only, no CSS modules - ... 還有 47 行 ## DB rules(50 行) - Migrations must be reversible - ... 還有 48 行

150 行 ≈ 1500 token,每次 session 都吃。寫前端的時候,後端規則也照載。

After(好)— 拆三檔,條件載入

# .claude/rules/api.md --- paths: - "src/api/**/*.ts" --- - All endpoints must validate input with zod - Use standard error response from src/api/errors.ts
# .claude/rules/react.md --- paths: - "src/components/**/*.tsx" - "src/pages/**/*.tsx" --- - Functional components only, no class components - Tailwind only, no CSS modules
# .claude/rules/db.md --- paths: - "migrations/**/*.sql" - "src/db/**/*.ts" --- - Migrations must be reversible
省多少:session 開頭從 1500 token → 0 token。改 API 時只進 API 那 50 行,其他兩組完全不載。
馬上做:翻你的 CLAUDE.md,找「只跟某種檔案有關」的規則(API only、React only、SQL only、tests only),各自拆一個檔到 .claude/rules/,paths 寫對應 glob,再從主檔砍掉。
3每個 CLAUDE.md 控制在 200 行內
為什麼能省:CLAUDE.md 每次 session 開始完整載入 context。600 行 ≈ 6,000 token,200 行 ≈ 2,000 token,每次 session 差 4,000 token。一天開 10 次 session 就差 4 萬 token。
而且官方說超過 200 行連 Claude 遵守規則的程度都會降
「Size: target under 200 lines per CLAUDE.md file. Longer files consume more context and reduce adherence.」 來源:code.claude.com/docs/en/memory

典型超過 200 行的原因(去這幾種地方瘦)

  • 「為什麼這個專案存在 / 我們以前用 v1 怎樣怎樣」歷史脈絡 → 用招 1 包進 <!-- -->
  • 「給新隊友的 onboarding 流程」 → 搬到 docs/onboarding.md
  • 「只跟特定檔案類型有關的規則」 → 用招 2 拆到 .claude/rules/
  • 長範例 / 完整 git workflow / DB schema 解釋 → 拆到 docs/ 然後用招 4 的 @import 拉進來
馬上做:
wc -l CLAUDE.md # 看現在多長 grep -c "^#" CLAUDE.md # 看有多少 # 開頭的「人類註解」
超過 200 行 → 用上面 4 個方向去瘦,砍完再 wc -l 確認。
4@path 拆檔(搭配招 2、招 3 的結構工具)
老實講:@import 進來的內容會被 inline 進 context,所以 單純 @import 不直接省 token。它的價值是讓主檔可讀、跨專案共享、把長段內容外移到子檔(之後可以進一步搬去 .claude/rules/ 變成條件載入 — 那才是真省)。

典型寫法

# Project Rules - 2-space indent - Run `npm test` before commit - API handlers in src/api/handlers/ @~/.claude/my-personal-style.md # 跨專案共享 @docs/git-workflow.md # 細節外移

官方說 @path 最多遞迴 5 層(A 引 B、B 引 C... 到 5 層為止)。

什麼時候用:
  • 跨專案個人偏好(home 路徑 @~/...
  • 主檔結構模組化,方便日後抽出去 .claude/rules/
什麼時候別用:單純為了「主檔好看」把規則 import 進來 — token 用量沒變。要省 token 是用招 2 拆 .claude/rules/
4 招省 token 程度排序:
招 2(.claude/rules/ + paths)> 招 3(200 行)> 招 1(HTML 註解)> 招 4(@import 不直接省)
想立刻看效果:先做招 1(最簡單,5 分鐘)再做招 2(最省,30 分鐘)。

進階:Skills 比 Rules 更省 token

Anthropic 還有第三層機制:Skills。用對地方比 rules 還省。

機制何時載入 context適合內容
CLAUDE.md 每次 session 開始(完整載入) 每天都要 Claude 記住的規則
.claude/rules/ + paths Claude 讀到符合 glob 的檔案時 跟特定檔案類型綁的規則
Skills 你 invoke 或 Claude 判斷相關時 偶爾才需要的工作流(複雜任務)
「Rules load into context every session or when matching files are opened. For task-specific instructions that don't need to be in context all the time, use skills instead, which only load when you invoke them or when Claude determines they're relevant to your prompt.」 來源:Anthropic Claude Code 官方文件

判斷原則:常駐 → CLAUDE.md;條件性 → rules;on-demand → skills。寫對位階就是省 token。

範例對比:爛 CLAUDE.md vs 好 CLAUDE.md

下方為示範性對比,目的是讓你看出結構差異,不是實測壓 token 數據。

❌ 爛寫法

  • 單檔 600+ 行
  • 包含「Why this exists」這種給人看的長段落
  • 所有規則都常駐(前端規則改後端時也載入)
  • 沒有 import 拆檔
  • 「format code nicely」這種不可驗證的指令

每次 session 燒掉 6,000+ token 在 context 開頭。

✅ 好寫法

  • 主檔 80 行內,只放每天必要規則
  • 歷史脈絡用 <!-- --> 註解,不進 context
  • 前端/後端規則拆進 .claude/rules/*.md + paths
  • @docs/git-workflow.md 拉外部細節
  • 「Use 2-space indentation」這種具體可驗證

session 開頭只進約 800 token,遵守度更高。

順帶釐清:CLAUDE.md ≠ auto memory

很多人搜「Claude memory」會把這兩個搞混,官方文件其實有清楚對照表(節錄):

CLAUDE.mdAuto memory(Claude Code 近期版本內建)
誰寫Claude 自己
內容規則、工作流Claude 學到的偏好、debug 經驗
載入每次 session 完整載入每次 session 載 MEMORY.md 索引前 200 行(之後會被截斷)
適合程式風格、架構、流程build 指令、debug 心得、Claude 自己學到的偏好

兩者互補不取代。官方完整對照表

想看完整的記憶模板系統?

Claude Memory Framework 是我自己用的開源版,包含 4 種記憶分類 + auto memory 模板

看 Memory Framework →

引用來源

Introducing Claude Opus 4.7(Anthropic 官方公告)
anthropic.com/news/claude-opus-4-7
How Claude remembers your project(CLAUDE.md 官方文件)
code.claude.com/docs/en/memory

覺得有用?引用這篇分享給更多人