Claude Code 教學/第 3 篇・共 8 篇

讓它記得你——CLAUDE.md

Claude Code 每開一個新對話就失憶?這篇先讓你親眼看一次它「忘記」的樣子,再帶你建立自己的 CLAUDE.md 備忘錄,最後用兩個方法驗證:它真的記得你了。

上一篇我們裝好了 Claude Code,也講了第一句話。用著用著,你很快會撞到一件事:它會失憶。昨天才交代過的偏好,今天開新對話又得重講一遍。這一篇就是來解決這件事的——而且做完之後,你可以親眼驗證它記得你。

一、先看它怎麼「忘記」

台灣的 PAPAYA 電腦教室在教學影片裡做了一個我很喜歡的實驗。他用 Claude Code 寫一篇冒險故事,專案裡有兩個檔案:「角色.md」寫人物設定,「故事.md」寫正文。角色設定裡白紙黑字寫著:小花性格內向、不喜歡與陌生人說話。

然後他請 Claude 續寫 100 字——結果小花被寫成了「開朗活潑」的女孩。人設跑掉了。

為什麼?影片點出了 Claude Code 的兩個關鍵特性:

  1. 記憶不跨對話:「Claude 在『前一次』對話中的記憶,並不會自動延續到新的對話內。」每個新對話都是一張白紙。
  2. 選擇性讀檔:同一個對話有上下文容量上限,為了節省空間,它「並不會在執行任務時每一次都讀取專案中的『所有』檔案」,而是自己判斷哪些檔案相關,再選擇性地讀。這次它判斷不需要角色.md,就沒讀。

「上下文(context)」是 AI 在一次對話裡「當下記得住的東西」的總量,像一張大小固定的工作桌。桌面有限,所以它不會把你電腦裡的東西全搬上桌。

這不是中文影片獨有的觀察。英文圈觀看數最高的完整教學(Tech With Tim)也做過同樣的實測:關掉 Claude Code 再打開,問它「你上次做了什麼」,它一無所知。所以問題不是你用錯了,是它天生如此——而官方也給了解法。

二、CLAUDE.md:寫給 AI 的備忘錄

解法簡單得有點好笑。PAPAYA 直接把「角色.md」改名成「CLAUDE.md」,送出同一個提示詞重寫——這次 Claude 的思考過程先參考了人設,小花變回了內向的女孩。

CLAUDE.md 是一個特殊檔名的文字檔。Claude Code 的作者 Boris Cherny 在官方演講裡的說法是:放在專案根目錄的 CLAUDE.md,每次對話開始時自動讀入,等同於包含在你的第一句話裡。PAPAYA 的比喻則是「我們寫給 AI 最重要的備忘錄」——任何「每次都應該遵守」的事,寫進去,之後就不用重複提醒。

它其實不只一個位置。官方演講的投影片列了一個階層(由廣到窄):

檔案位置 作用範圍
~/.claude/CLAUDE.md 你電腦上所有專案都套用(個人全域)
專案資料夾/CLAUDE.md 只在這個專案生效,可以交給版本控制跟團隊共享
專案資料夾/CLAUDE.local.md 只在這個專案、而且只屬於你,不進版本控制

(企業環境還有一層全公司共用的政策檔,個人使用者不用管它。)

新手記一個原則就好:跟「你這個人」有關的寫全域,跟「這個專案」有關的寫專案裡

那內容該寫什麼?與 Anthropic 合作的講者 Kevin Stratvert 引用了一個很好記的三層結構:

  • What(有什麼):這個專案裡有哪些東西、用了什麼工具。
  • Why(為什麼):每個部分是做什麼用的、為什麼存在。
  • How(怎麼合作):你要它怎麼跟你工作——例如「每次改動後都要跑測試並驗證成功」,或非工程師版本的「動手前先給我看計畫」。

三、動手做:讓它自己來問你

最棒的是,你不用自己憑空寫。中文圈觀看數最高的教學裡,雷蒙示範的做法只有一句話:

幫我建立一個 CLAUDE.md 檔案,記住我的偏好

Claude Code 收到後會反過來問你五個問題:語言偏好、主要使用的語言或框架、回應風格(簡潔直接還是詳細解釋)、程式碼風格、其他想讓它記住的事。你照著回答,它就動手寫檔——影片裡它寫了 24 行,並且自己總結:「CLAUDE.md(專案根目錄)——每次對話都會自動載入。」

不知道怎麼回答的話,可以參考雷蒙公開的範本結構,我把它濃縮成三塊,你換成自己的內容即可:

# 身份、語言和協作方式

## 身份
你是(你的名字)的 AI 助理。我目前在做(你的工作/專案),
我不是工程師,請用白話文和比喻引導我,減少技術術語。

## 語言與排版
一律用繁體中文回覆。中文遇到英文和數字時加一個半形空格,
例如:我有 3 台 iPhone。保留專業術語的英文,例如 Notion。

## 協作方式
執行重要動作前先輸出簡要計畫,等我確認後再執行。
資訊不足時直接問我,不要自行假設。

還有一個很聰明的搬家技巧:如果你以前在 ChatGPT 或 Gemini 累積了很多「它懂你」的記憶,Google 官方有一段「將個人化記憶匯入」的提示詞,雷蒙反過來用——把它丟給你的舊 AI,開頭是:

幫我把 AI 助理的脈絡資料匯入另一個 AI 助理。你的工作是瀏覽我們過去的對話,然後總結你對我的瞭解……

舊 AI 會輸出一段關於你的總結文字,複製貼給 Claude Code、請它整理進 CLAUDE.md,多年的調教就搬過來了。

兩個順手的小工具也一併記著:對話中輸入 # 開頭的訊息,可以隨手把一件事存成記憶,它會自動整併進 CLAUDE.md;輸入 /memory 則能檢視目前載入了哪些記憶檔。另外有個 /init 指令會讓 Claude 分析專案自動生成 CLAUDE.md——對已有很多檔案的專案很方便,不過 Kevin 的經驗是它產出的內容偏「What」,「Why」和「How」還是得自己補。

四、驗證:親眼看到它記得你

寫完不算完成,要驗證。給你兩個方法,都來自影片裡的實測。

方法一:問它「我是誰」。 雷蒙的做法——開一個全新的對話(這點很重要,舊對話本來就記得你),問:「我是誰?平常做些什麼?」如果它答得出你剛剛寫進 CLAUDE.md 的身份和偏好,就成功了。

方法二:埋一條規則,看它守不守。 Kevin 的做法更嚴格:他在 CLAUDE.md 手動加了一條「做新功能或修 bug 前,要先開 git branch」,把 Claude Code 完全退出再重啟(確保是乾淨的新對話),然後丟一個毫不花俏的修 bug 任務,隻字不提規則——結果 Claude 動手前主動要求先開新分支。規則被讀進去了,而且被遵守了。

你可以埋一條自己的規則,不必跟程式有關,例如「每次回覆的第一行,先給我一句話結論」。重啟、隨便問個問題,看第一行是什麼。那一刻你會真的相信:它記得你了。

五、最重要的原則:保持簡短

最後這件事,三個來源異口同聲,所以我敢說它是鐵律:CLAUDE.md 不是寫越多越好

  • Boris Cherny(官方):太長「只會吃掉大量 context,而且通常沒那麼有用」。
  • PAPAYA 用一張圖卡演示膨脹的代價:系統提示詞加上 CLAUDE.md 佔掉開頭的空間後,可用空間只剩 68%——新對話還沒開始,桌面已經被佔掉三分之一;而且太多不相關的規則「會讓 Claude 更難以專注於眼前的目標」。
  • Kevin 講得最狠:因為每個對話都會載入,內容必須「幾乎對你所有的要求都適用」,否則 Claude 可能直接忽略它們

判斷標準就一句:這條規則是不是幾乎每次對話都用得到? 是,才留在 CLAUDE.md。不是每次都用得到的流程(例如「做簡報的完整步驟」),有更好的去處——之後講 Skills 的那一篇會展開。進階一點的做法叫 progressive disclosure(漸進揭露):CLAUDE.md 只當一份簡短的索引,指向其他 markdown 檔,需要時才讓 Claude 去讀。

到這裡,你的 Claude Code 已經從「每次見面都要自我介紹」變成「開口就知道你是誰」。下一篇我們來處理另一個日常痛點:它每做一件事都跳出來問你要不要允許——我們來搞懂模式與權限,讓它放手做事,又不會出事。


本文參考素材

回教學列表