如何精通 Claude Code 中的上下文工程:Anthropic 工程師使用的 5 種模式與 13 個步驟

@zodchiii
英語1 個月前 · 2026年6月06日
104K
202
20
15
443

TL;DR

學習如何透過分層的 CLAUDE.md 檔案、精確的檔案參照以及 Agent 隔離技術來優化 Claude Code 工作階段,最高可減少 70% 的上下文用量。

每次冗長的 Claude Code 工作階段都以同樣的方式結束:你失去數小時的進度,然後從頭開始。

解決辦法不是更聰明的模型,而是 Claude Code 團隊內部使用但從未寫過指南的系統。

大多數開發者沒有它,也不知道它的存在。

以下是完整系統 👇

🧠在深入之前,我每天在 Telegram 頻道分享 AI 與 vibe coding 的筆記:https://t.me/zodchixquant

darkzodchi - inline image

上下文工程的真正意義

Claude 每次工作階段都會讀取數千行程式碼。其中大部分是雜訊,而真正重要的 5% 在第二小時就被淹沒了。

這時 Claude 開始發明函數並修復你從未寫過的錯誤。解決辦法不是更大的模型,而是控制進入工作階段的內容。

以下是 Claude Code 團隊在自己的單一儲存庫中使用的 6 種模式。

darkzodchi - inline image

模式 1:分層 CLAUDE.md(步驟 1–3)

一個 CLAUDE.md 不夠。Claude Code 團隊運行三個層級,每個層級針對不同的關注點。

步驟 1:根目錄 CLAUDE.md 包含專案全域規則

在專案根目錄放置一個 CLAUDE.md,保持在 100 行以內。它應該回答 Claude 每次提問時會問的四個問題:

markdown
1# 專案:[名稱]
2
3## 技術棧
4- 執行環境:Node 22、TypeScript 5.5
5- 框架:Next.js 15、React 19
6- 資料庫:Postgres 16、Drizzle ORM
7- 測試:Vitest、Playwright
8
9## 慣例
10- 匯入:僅使用來自 `@/` 的絕對路徑
11- 元件:kebab-case 檔案、PascalCase 匯出
12- 測試:與檔案同目錄,命名為 `[file].test.ts`
13- 提交:採用 Conventional Commits,不加上 co-author 頁尾
14
15## 不要觸碰
16- `infra/terraform/`(由維運團隊管理)
17- `migrations/`(自動產生,絕不手動編輯)
18- `vendor/`(已提交的依賴套件)
19
20## 預設行為
21- 在宣告任務完成前執行 `npm test`
22- 每次編輯後用 `tsc --noEmit` 進行型別檢查
23- 儲存時用 Prettier 格式化

步驟 2:子目錄 CLAUDE.md 包含模組專屬上下文

在規則會改變的任何資料夾中新增 CLAUDE.md。當 Claude 在該資料夾工作時,它會讀取最接近的那個檔案,再加上根目錄的規則。

範例:src/auth/CLAUDE.md:

markdown
1# 驗證模組
2
3此模組負責工作階段管理與 OAuth 流程。
4
5## 規則
6- 絕不記錄令牌,即使經過截斷
7- 所有工作階段讀取都透過 `getSession()`,絕不直接操作原始 Cookie
8- 新增供應商需要先進行安全審查才能合併
9
10## 優先閱讀的檔案
11- `session.ts`:了解合約
12- `providers/index.ts`:了解註冊模式

步驟 3:個人 CLAUDE.md 在 ~/.claude/CLAUDE.md

這是你的全域偏好層。存在於任何儲存庫之外,適用於所有地方。

markdown
1## 我的偏好
2- 在進行多檔案編輯前,先解釋你要做什麼
3- 如果你的請求看起來會造成破壞,請提出異議
4- 偏好組合勝過繼承
5- 我在 macOS 上使用 zsh 工作

這三層會疊加:全域偏好 + 專案規則 + 模組規則。Claude 會在每次提問時讀取所有三層,無需透過你的上下文重新上傳。

模式 2:精準檔案參考(步驟 4–5)

預設的「讓 Claude 自己找出哪些檔案重要」是最慢、最笨的上下文使用方式。

步驟 4: @file 參考搭配自動補全

當你在提示中輸入 @ 時,Claude 會開啟一個模糊檔案選擇器。用它來取代用文字描述檔案。

不好:「看看使用者驗證程式碼和工作階段輔助工具」

好:「看看

@src/auth /session.ts 和

@src/auth /providers/google.ts,修正令牌重新整理」

精準參考只會載入那些檔案。文字描述會迫使 Claude 搜尋、讀取 4–5 個候選檔案,然後有一半時間選錯。

步驟 5:用 /focus 限定整個工作流程的範圍

對於較長的任務,將 Claude 的整個工作階段範圍限定到特定資料夾:

text
1/focus src/auth src/api/auth-routes

現在所有搜尋、grep 和讀取操作都只在這兩個資料夾內進行。

在聚焦任務上減少 60–80% 的上下文使用量,而且 Claude 不會再「好心」地讀取它不需要的無關檔案。

執行 /focus clear 來重設。

模式 3:壓縮並繼續(步驟 6–8)

長時間的工作階段會達到上下文限制而崩潰。訣竅不是避免長時間工作階段,而是透過受控的壓縮來管理它們。

步驟 6:用 /stats 監控上下文使用量

定期執行 /stats

當上下文使用量超過 70% 時,你就進入了危險區域。超過 85% 時,Claude 會開始悄悄丟棄早期訊息而不告訴你。

步驟 7:/compact 搭配保留指令

/compact 單獨使用會摘要對話。加上指令,你可以告訴 Claude 哪些內容要逐字保留:

text
1/compact 保留:目前任務計劃、所有關於驗證重構的決定、步驟 3 中失敗的測試輸出

步驟 8:/resume 用於跨越多天的工作階段

如果任務跨越多天,請在每個工作階段結束時執行 /compact 保留:...,並在開始下一個工作階段時執行:

markdown
1claude --resume [工作階段 ID]

或者直接使用 claude --continue 來恢復最近的工作階段。它會從你離開的地方繼續,並保留壓縮後的狀態。

模式 4:先計劃再閱讀(步驟 9–10)

最大的上下文洩漏是 Claude 在理解檔案之前就開始編輯。計劃模式強迫它先閱讀,再寫入。

步驟 9:對每個有風險的任務切換計劃模式

在觸及多個檔案的任務之前,按下 Shift+Tab 進入計劃模式。

在計劃模式下,Claude 只能閱讀。它會解釋它將做什麼,列出所有計劃觸及的檔案,並顯示建議的變更。在你批准之前什麼都不會執行。

節省效果顯著:一次閱讀、一次編輯,而不是閱讀 8 個、編輯錯 3 個、還原、重新閱讀、再次編輯。

步驟 10:透過鉤子為敏感路徑鎖定計劃模式

讓危險區域強制啟用計劃模式。在 .claude/settings.json 中:

json
1{
2 "hooks": {
3 "PreToolUse": [
4 {
5 "matcher": "Edit(src/auth/**)|Edit(migrations/**)",
6 "hooks": [
7 {
8 "type": "command",
9 "command": "claude-require-plan-mode"
10 }
11 ]
12 }
13 ]
14 }
15}

任何對 src/auth/*\migrations/\\* 的編輯嘗試都會觸發計劃模式要求。Claude 無法繞過它。

模式 5:子代理上下文隔離(步驟 11–13)

子代理是保持主上下文最小化的最乾淨方式。每個子代理都在自己的視窗中運行,因此父工作階段永遠不會看到雜訊。

步驟 11:設計子代理時使用最小工具面

將工具限制為工作所需。一個 code-reviewer 不需要 Write 或 Edit。一個 doc-updater 不需要 Bash。工具面越小,浪費在無關文件與工具描述上的上下文就越少。

yaml
1---
2name: code-reviewer
3description: 審查程式碼變更以找出錯誤與安全問題
4tools: Read, Grep, Glob
5model: sonnet
6---

步驟 12:只傳遞代理所需的檔案參考

不要說「審查最近的變更」。要說「審查 @src/auth/session.ts@src/auth/providers/google.ts」。

子代理只會讀取那些檔案,而不是它對「最近」的最佳猜測。

步驟 13:對子代理使用較便宜的模型

根據任務設定每個代理的模型。Sonnet 用於審查和測試任務,Haiku 用於文件更新和 lint,Opus 只用於需要深度推理的架構或安全審查。

如有需要可全域設定:

text
1export CLAUDE_CODE_SUBAGENT_MODEL="claude-sonnet-4-6"

較便宜的子代理 = 每美元更多子代理呼叫 = 更多隔離 = 更小的主上下文。

30 分鐘的上下文工程入門

10 分鐘: 撰寫一個精簡的根目錄 CLAUDE.md,包含技術棧、慣例、勿觸清單和預設行為。

5 分鐘: 在你最常編輯的 2–3 個模組中新增子目錄 CLAUDE.md。

5 分鐘: 在 ~/.claude/CLAUDE.md 中建立個人 CLAUDE.md,包含你的偏好。

5 分鐘: 在 .claude/skills/ 中為你最常執行的工作流程建立一個技能。

5 分鐘: 將 Shift+Tab 變成肌肉記憶,並以計劃模式開始每個多檔案任務。

完成了!

你的下一次工作階段將為相同的工作量減少 50–70% 的上下文使用。到第五次工作階段時,這些模式會變成反射動作,你將完全不再遇到限制。

上下文不是 Claude 為你管理的東西。而是你設計的東西。

現在你有了這個系統。

感謝閱讀!

我每天在 Telegram 頻道分享 AI、財務與 vibe coding 的筆記:https://t.me/zodchixquant

darkzodchi - inline image
一鍵儲存

使用 YouMind AI 深度閱讀爆款文章

保存原文、追問細節、總結觀點,並在一個 AI 工作空間裡把爆款文章沉澱成可複用筆記。

了解 YouMind
寫給創作者

把你的 Markdown 變成乾淨的 𝕏 文章

圖片上傳、表格、程式碼區塊,往 𝕏 上手動重排太痛苦。YouMind 把整篇 Markdown 一鍵轉成乾淨、可直接發佈的 𝕏 文章草稿。

試試 Markdown 轉 𝕏

更多可拆解樣本

近期爆款文章

探索更多爆款文章