模組 1:核心 Agent 6 / 6
初階
Session 6 上下文 壓縮 記憶體管理
上下文壓縮
學習 Claude Code 如何使用 3 層壓縮策略管理上下文視窗限制 — 即使在長時間會話中也能保持高效。
2026年3月20日 · 15 分鐘閱讀
你將學到什麼
上下文視窗是有限的。即使有 200K tokens,包含許多檔案讀取和工具呼叫的長時間編程會話最終也會達到限制。當它達到時,Claude Code 不會只是停止 — 它會壓縮。
完成後,你將了解:
- 為什麼上下文限制在實踐中很重要
- 3 層壓縮策略
- 什麼資訊在壓縮後存活
- 如何組織工作以獲得更好的上下文效率
如何運作
3 層策略
┌──────────────────────────────────────────────┐
│ 上下文壓縮 │
│ │
│ 第 1 層:修剪工具輸出 │
│ ┌───────────────────────────────────────┐ │
│ │ 長工具結果 → 截斷 │ │
│ │ "檔案內容(5000 行)..." │ │
│ │ → "檔案內容(前 200 行)..." │ │
│ └───────────────────────────────────────┘ │
│ │
│ 第 2 層:摘要舊訊息 │
│ ┌───────────────────────────────────────┐ │
│ │ 早期對話輪次 → 壓縮摘要 │ │
│ │ │ │
│ │ 第 1-15 輪:"使用者要求修復 auth │ │
│ │ bug。在 middleware 中找到問題。 │ │
│ │ 修復了 JWT 驗證。測試通過。" │ │
│ └───────────────────────────────────────┘ │
│ │
│ 第 3 層:保留最近上下文 │
│ ┌───────────────────────────────────────┐ │
│ │ 最後 N 輪完整保留 │ │
│ │ 系統提示始終保留 │ │
│ │ CLAUDE.md 始終保留 │ │
│ │ 活動任務清單始終保留 │ │
│ └───────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────┘
什麼在壓縮後存活
| 始終保留 | 被壓縮 | 被移除 |
|---|---|---|
| 系統提示 | 舊對話輪次 | 冗餘工具輸出 |
| CLAUDE.md | 早期檔案讀取 | 被取代的編輯 |
| 當前任務清單 | 先前搜尋結果 | 中間探索 |
| 最近對話 | 舊錯誤訊息 | 已解決的錯誤詳情 |
關鍵洞見
壓縮不是刪除 — 它是摘要化。 AI 不會失去對先前發生事情的意識;它失去逐字細節但保留精華。
這對你的工作方式有實際影響:
- 長會話是可以的 — 壓縮保持它們高效
- 關鍵上下文應該在 CLAUDE.md 中 — 它永遠不會被壓縮
- 將大型任務分解為階段 — 每個階段可以從新的上下文開始
- 使用子代理進行研究 — 它們的上下文是獨立的,完成後被丟棄
優化上下文效率
# 低效:載入所有東西然後工作
"讀取 src/ 中的所有檔案,然後修復 auth.ts 的 bug"
→ 載入 50 個檔案,只有 1 個相關
# 高效:目標明確的探索
"bug 在認證中。先檢查 src/auth/。"
→ 載入 3-5 個檔案,上下文保持精簡
# 更好:使用子代理進行探索
"使用 Explore 代理找到認證處理的位置,
然後修復 bug。"
→ 探索上下文隔離在子代理中
前後對比
| 沒有壓縮 | 有 3 層壓縮 |
|---|---|
| 上下文填滿時會話結束 | 會話可以無限期繼續 |
| 所有歷史完整保留 | 漸進式壓縮 |
| 上下文危機突然發生 | 漸進、優雅的降級 |
| 長任務必須重新開始 | 自動管理 |
| 關鍵資訊可能丟失 | 系統提示 + CLAUDE.md 保留 |
下一堂課
這完成了模組 1:核心 Agent!你現在理解了基本構建模塊:Agent Loop、工具、規劃、子代理、知識載入和上下文管理。
在模組 2中,我們將擴展到多代理系統。第 7 堂課從任務圖與依賴關係開始 — Claude Code 如何用依賴邊協調多個任務,實現複雜工作流程。