TL;DR
- 本文解決:為什麼 Claude Code 用起來「還是像個聊天機器人」,每次都要重新交代背景
- 推薦給:已經裝好 Claude Code、用過幾天但覺得「也就那樣」的工程師
- 讀完你會知道:怎麼用CLAUDE.md讓它記住你的角色與規矩、Auto memory 跟 CLAUDE.md 怎麼分工、怎麼派 Agent 出去做事不污染主對話、/compact與--resume的實際用法
這篇是我「初階班 第二堂:馴服 Claude Code」的文字版整理。第一堂講「裝起來」,第二堂講的是怎麼讓它越用越懂你——也就是把它從「每天從零認識你的新進同事」,馴服成你的開發夥伴。
---
📌 目錄
---
🤔 為什麼 Claude Code 像個失憶的天才
你可能也遇過這種狀況:
- 昨天跟 Claude Code 講你的專案技術棧用 Spring Boot + MySQL,今天打開又要重講一次
- 同一段需求每次都要附上「請用繁體中文」「不要說太棒了」這些前置
- 它建議的程式風格跟你公司的 coding style 完全對不上
第二堂課要解決的就是這件事:有什麼方法可以讓 Claude「持續記住你」。
答案有四個層級,由淺到深:
/compact、--resume:單一對話的延續CLAUDE.md:角色與規矩的長期記憶接下來逐個拆。
---
⚡ Statusline 與 Compact:看懂對話的健康度
打開 Claude Code 之後,你應該會看到畫面下方有一條狀態列,長得像這樣:
[Sonnet 4.6] context: 6% / cost: $0.12 / cwd: ~/workspace/myproject
這條叫做 statusline。它告訴你三件最重要的事:
- 目前用什麼模型(Sonnet / Haiku / Opus)
- 上下文用掉了多少%(context: 6% 表示 token 還很空)
- 目前的工作目錄(cwd)
/statusline 就會跳出設定流程。它本質上就是一個儀表板——你可以把任何提示詞或環境資訊塞進去,每次按 enter 都會看到。
為什麼要看 context 百分比
當對話越聊越久,context 會從 6% 慢慢漲到 60%、70%——到 100% 的時候 Claude 就會開始「忘記」前面講過的東西。
這時候有兩條路:
路線 A:壓縮對話
/compact
它會把前面的對話濃縮成一段摘要,從 70% 壓回 15-20%,繼續聊還能用。
路線 B:開新對話 + 帶記憶過去
如果話題已經換了,乾脆直接開新對話,但用 --resume 把舊的搬過來(下一段講)。
隨手提示功能
你有沒有發現問完一個問題後,畫面右下角會跳出「那 Apple 呢?」之類的提示?這是 Claude 內建的「下一個問題建議」——按右鍵就直接送出。寫程式或做 PM 規畫時這個特別好用,因為有邏輯的問題它能一路接著你問下去。
---
🔄 Session 三件套:claude / -c / --resume
「為什麼每次打開 Claude Code 都不記得我們上次聊什麼?」
因為每一次離開(按 Ctrl+C 或 /exit),就建立了一個新的 session。session 是綁在你當下的工作目錄上的。在 ~/workspace/projectA 開的對話,跟在 ~/workspace/projectB 開的對話,是兩個獨立的記憶空間。
進入 Claude Code 有三種方式,對應不同需求:
| 指令 | 用途 | 什麼時候用 |
|---|---|---|
claude | 開全新對話 | 換新任務 / 不想被舊對話污染 |
claude -c | 接續上一次對話 | 昨天聊到一半,今天回來繼續 |
claude --resume | 列出歷史 sessions 挑一個 | 想找三天前那次聊的某個東西 |
一個關鍵的小常識
對話實際上存在你的電腦裡,不是純雲端:
~/.claude/projects/<encoded-path>/<session-id>.jsonl
每個資料夾路徑會被編碼成一個目錄名稱,裡面每一個 .jsonl 檔就是一段對話。
這代表兩件事:
grep 直接搜檔案內容claude,所有對話都會混在一起。強烈建議:先 cd 到專案資料夾再開,未來找對話會輕鬆很多---
📁 .claude 資料夾與 Linux 三件套
要學會 Claude Code 進階用法,至少要會三個 Linux 指令:
pwd # 我現在在哪裡?(Print Working Directory)
ls # 這個資料夾裡有什麼?(List)
cd # 切換到別的資料夾(Change Directory)
退一層:cd ..
回家:cd ~
為什麼非學不可? 因為 Claude Code 的記憶是綁資料夾的,你必須要會切換目錄,才能讓不同專案的對話分開。
.claude/ 資料夾長什麼樣
打開 ~/.claude/,你會看到大概這幾個東西:
~/.claude/
├── CLAUDE.md ← 全域的「我是誰」設定(重點!)
├── agents/ ← 你自己寫的 agent
├── projects/ ← 所有對話歷史(按資料夾分)
├── memory/ ← Auto memory 自動寫入的記憶
└── settings.json ← 個人設定(statusline、allowedTools)
今天的回家作業就是寫 CLAUDE.md,下面詳細講。
---
🧠 核心招式:CLAUDE.md 十大定義
這是第二堂課最重要的一段。
CLAUDE.md 是一份你寫給 Claude 看的長期備忘錄,每次它啟動都會讀一次。等於你雇了一個新員工,但這個員工每天上班的第一件事是看你的「員工手冊」——你寫得越具體,他越像你的人。
寫在哪裡?分層機制
CLAUDE.md 有三層,由上往下疊加讀取(不是覆蓋):
| 層級 | 位置 | 用途 |
|---|---|---|
| 全域 | ~/.claude/CLAUDE.md | 你這個人的偏好(語氣、技術棧、不要奉承) |
| 專案 | | 這個專案特有的規矩(API 路徑、資料庫表名) |
| Local | | 不想 commit 的私人筆記(已被 gitignore) |
十大定義(建議的內容結構)
不知道從哪裡開始寫?把下面這十項當 checklist,每一項一段,就是一份完整的 CLAUDE.md:
| # | 定義 | 範例 |
|---|---|---|
| 1 | 角色定義 | 我是資深後端工程師,希望 Claude 是我的開發夥伴 |
| 2 | 上下文引導 | 工作場景、固定技術棧(Spring Boot、React、MySQL) |
| 3 | 語氣 | 繁體中文、簡潔、不要說「太棒了」 |
| 4 | 任務描述 | 我會問什麼類型的問題(debug、設計、寫測試) |
| 5 | 給予範例 | 我喜歡的 commit message 格式、程式碼風格 |
| 6 | 需要處理的數據 | 預期輸入長怎樣(JSON schema、表結構) |
| 7 | 即時任務回覆預期 | 30 秒內給結論、動手前先確認 |
| 8 | 處理問題的步驟 | 先寫測試、再寫實作、最後 review |
| 9 | 輸出格式 | 用 markdown、code block 標語言 |
| 10 | 補充說明 | 不要主動 commit、不要過度設計 |
---
👻 Auto memory:他在幕後默默觀察你
CLAUDE.md 是你主動寫給 Claude 的設定。Auto memory 是他自動觀察你並寫下來的記憶。
兩者搭配的邏輯:
- CLAUDE.md = 履歷上明文寫的「我是誰、我要什麼」
- Auto memory = 同事相處久了發現「噢這人喜歡這樣那樣」
~/.claude/projects//memory/ 底下。下一次你問問題時,他會把相關記憶自動撈出來當 context。
為什麼這個很有感
第一堂課之後,我在課程的兩週之間天天用 Claude Code,第二堂上課時打開 ~/.claude/projects/.../memory/MEMORY.md,已經自動寫了七八條:
feedback_file_paths.md— 提到檔案要給絕對路徑feedback_pdf_export.md— headless Chrome 不能指定 A3,要用 puppeteeruser_teaching_style.md— 上課風格:分享會式口語、demo 4 件套
怎麼關掉(如果你不想要)
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=1
預設是開的。但說實話我從來沒關過——這是 Claude Code 跟其他 AI 工具最不同的地方之一。
---
🤖 Agent:你派出去的分身
這是第二堂課的另一個重頭戲。
為什麼需要 Agent
想像你是一個專案經理:你不會自己一個人寫前端、寫後端、做 UI 設計、做資安檢查——你會派不同的人去做不同的事。
Claude Code 的 agent 就是同樣的概念。每個 agent 是一個帶有專業 prompt 的子代理人,有自己的 context、不會污染主對話。
實際好處:
- 主對話保持乾淨:派 agent 去看 100 個檔案做 code review,主對話只會收到「結論」這一段
- 專業知識封裝:iOS 開發的 agent 帶著 iOS 相關的所有 best practice prompt
- 可以平行派多個:UIUX agent + SA agent 可以同時討論一個需求,再把結論回傳
手把手 demo:建一個「會修投影機的人」
打開斜線指令 /agents,選 User scope(全域可用):
完成後 Claude 會幫你自動生出完整的 prompt 框架,存在 ~/.claude/agents/projector-fixer.md,你再去微調內容就好。
下次如果你說「幫我看一下投影機問題」,Claude 會自動偵測到、跳出來說「我有一個專家可以處理這個」。
派多個 agent 互相討論
進階玩法:你可以叫主對話派兩個 agent 去開會:
請我的 UIUX agent 跟 SA agent 先互相討論這個需求,
討論完之後再給我結論。
主畫面會看到兩個顏色的 agent 互相發言、辯論,最後吐出一個共識結論——很像真的看兩個專家在 review。
我自己的踩坑經驗
不太推薦從零自己寫 agent——很花時間,而且品質不如現成的。
更快的方式:到網路上找別人寫好的,貼網址給 Claude,叫他幫你裝。
這個 agent 我覺得寫得不錯:
https://github.com/wshobson/agents/blob/main/agents/security-reviewer.md
請幫我加進來
它會自己去 fetch、解析、寫進 ~/.claude/agents/ 裡面。
反模式:建太多重複的 agent。如果你有五個「工程師」agent,每次跑會隨機挑一個,結果品質根本沒保證。保持精簡,每個職責只留一個。
---
🔌 MCP 是什麼,為什麼現在沒那麼紅了
MCP = Model Context Protocol(模型上下文協議)。
它的概念很單純:任何人都可以寫一個外部工具,只要符合協議,Claude Code 就可以接進來用。像是電源插座的標準,符合規格的東西都能插。
為什麼一開始很紅、現在比較冷
MCP 剛出來的時候,因為 Claude Code 本體還缺很多功能,所以社群馬上做出一堆 MCP server 來補:
- 連資料庫的 MCP
- 操作瀏覽器的 MCP
- 跨 session 記憶的 MCP
Bash 工具、WebFetch ⋯⋯ 一個一個被內建吃掉,導致需要 MCP 的場景越來越少。
現在還用 MCP 的場景
我自己還在用的:
- Playwright MCP — 控制瀏覽器,比官方那個穩定很多
- 記憶宮殿類 MCP — 上個月才出的,跨 session 記憶用 RAG 撈
---
🚀 Ultrathink:馬力歐火力全開模式
收尾講一個我最近超愛用的關鍵字:ultrathink。
平常 Claude Code 跑 task 會考量 token 成本、控制思考時間。但你只要在 prompt 裡加上 ultrathink:
這個架構設計幫我想清楚,ultrathink。
它會直接進入「不算 token、用盡全力思考」模式。模型發揮 4.7 版的最大功力,可能跑很久(30 秒到幾分鐘),但回覆品質非常驚人。
什麼時候用:
- ✅ 架構決策、設計取捨
- ✅ 棘手 bug 找根因
- ✅ 寫長文、複雜重構規畫
- ❌ 改個 typo
- ❌ 跑
npm install - ❌ 一般日常任務(會超殺雞用牛刀)
---
❓ 常見問題
CLAUDE.md 跟 Auto memory 的差別是什麼?
CLAUDE.md 是你主動寫的角色與規矩,每次 Claude 啟動都會讀。Auto memory 是 Claude 自動觀察你之後存下來的偏好筆記,存在 ~/.claude/projects/。前者是設定,後者是記憶——兩個一起用效果最好。
對話會永遠存著嗎?儲存在哪裡?
存在你的電腦本機:~/.claude/projects/,不是純雲端。所以你可以用 grep 搜舊對話內容。理論上沒上限,但建議偶爾整理(移除超過半年沒用的 session)。
Agent 跟主對話會吃同一個 context 嗎?
不會。Agent 是獨立的子對話,主對話派任務出去之後,agent 自己跑、自己用自己的 context,最後把結論回傳給主對話。這就是為什麼派 agent 可以保持主對話乾淨。
我每天都用 Claude Code,要選哪個 plan?
我自己一開始用 \$20 Pro,兩天就把 token 用完了直接升到 \$200 Max。如果你只是偶爾用,Pro 夠;如果你每天 8 小時開著它寫 code、派 agent,Max 比較划算(額度大概是 Pro 的 20 倍)。先用 Pro 一週看 token 消耗再決定。
Ultrathink 真的會花更多錢嗎?
會。它會「不限制思考 token」,所以一個 ultrathink prompt 的成本可能是普通 prompt 的 5-10 倍。建議只用在真的需要深度思考的地方——架構設計、棘手 debug——不要拿來跑日常任務。
我可以同時用 Claude Code 跟 Cursor 嗎?
可以,兩個是不衝突的。差別在於:Cursor 是 GUI 為主、適合在 IDE 裡寫 code;Claude Code 是 CLI 為主、可以跑 agent / 排程任務 / 接 cron。我自己兩個都用,Cursor 寫 code、Claude Code 做工作流。
---
🔗 延伸資源
- Claude Code 官方文件
- Anthropic Claude Code GitHub repo
- Awesome Claude Code agents(社群整理)
- 本站第一堂課:Claude Code 從 0 開始
- 我的 AI 講師主頁與課程資訊
我輩修行之人,以聖的標準要求自己,以凡的眼光理解別人。