上下文壓縮(Context Compaction)

長對話 / 長任務超出上下文窗口時,Claude 自動將早期對話「壓縮成摘要」釋出空間,讓重要部分留下。

上線時間

2026 年內隨 4.6 系列穩定推出(早期手動,現自動化)。

為什麼需要

Claude 的 context window 大但不無限

  • Opus 4.6:~200K tokens
  • Sonnet 4.6:~200K tokens
  • Haiku 4.5:~200K tokens

長任務(一整天的 Cowork 會話、跑了 50 輪的 debug)會輕易撐爆。

撐爆的後果:

  • 早期重要規則被擠掉(如 CLAUDE.md 的紅線)
  • 對話開頭使用者的真實意圖丟失
  • Claude 越來越「失憶」+「失準」

壓縮機制

對話進度        Context 狀態
0%              [全部原文保留]
50%             [全部原文保留]
75%             [警示:將觸發壓縮]
80%+            [自動壓縮:前 50% 變摘要 + 後段原文]

壓縮做什麼:

  1. 早期 N 輪對話 → LLM 自己摘要成 1-2 段
  2. 保留:使用者意圖 + 已決策結論 + 重要規則
  3. 丟棄:探索的死路、重複討論、過時細節

三種觸發

模式觸發
自動context > 80% 時
手動/compact 對話內指令
PostCompact HookHooks 介入加工

Boris 的 400k 前置壓縮

Boris Cherny 警告:預設自動觸發發生在 context window 接近滿時,那時通常已經在 Context Rot Zone——壓縮帶著的摘要本身就已失準。

Boris 的解法:啟動時就強制設定壓縮閾值:

CLAUDE_CODE_AUTO_COMPACT_WINDOW=400000 claude

→ context 達 40 萬 tokens 就自動 /compact,而不是等到接近 100 萬。長時間工作的品質穩定許多。

手動 /compact

長任務告一段落時主動觸發:

/compact
[Claude 摘要前 N 輪 → 釋出上下文 → 後續還有空間繼續討論]

比讓自動觸發更乾淨——你決定切點。

可加提示詞引導摘要方向:

/compact 重點是認證流程的修改

/compact vs /clear vs /rewind

Boris 的選擇規則:

指令適用代價
/compact(含提示詞)同任務延續,想壓縮但保留重點細節可能遺失(有損壓縮)
/clear切到全新任務自己手動寫摘要從頭開始
/rewind(或按兩次 Esc)走錯方向時跳回前一個訊息之後對話全丟

→ 走錯方向時用 /rewind 比直接糾正更省 context(因為糾正對話本身也佔空間)。Boris 的進階做法:先叫 Claude 摘要目前進度 → /rewind → 帶著摘要重新開始。

Memory 記憶功能 的差異

上下文壓縮Memory
範圍單次對話內跨會話
內容摘要近期對話提取個人重要事實
會丟資訊是(壓縮即取捨)否(按主題保留)

風險:壓縮會丟東西

文章作者強調:

壓縮是有損的——LLM 自己決定哪些重要、哪些不重要,可能誤丟你關心的細節。

對策:

  1. 重要決策 → 寫進 CLAUDE.mdProjects
  2. 走到一半發現方向錯 → 重起新對話比修補上下文更乾淨
  3. 接近 context 上限時 → 存檔當前進度到檔案 → 新對話接續

對 Vincent 工作場景

Use Case 1:PAM 大型重構長對話

跑 4 小時 → context 80% 觸發壓縮
壓縮前:你決定「等第計算用 GradingService 單一來源」
壓縮後:摘要保留此規則 → 後續 implement 不偏離

Use Case 2:長 debug 主動 compact

卡 1 小時找一個 bug → 找到了 → /compact
釋出空間 → 繼續做後續測試 + 文件 → 不必開新對話

Use Case 3:搬上下文到檔案

快滿時:
  「把目前進度摘要寫到 ~/Notes/PAM-refactor-2026-04-26.md」
重起新對話:
  「讀 ~/Notes/PAM-refactor-2026-04-26.md 繼續」

PostCompact Hook 進階

PostCompact Hook 在每次壓縮後跑:

  • 自動把摘要存檔
  • 重新貼最關鍵規則進新上下文
  • 推 Telegram 通知「壓縮已執行」

→ 適合長期任務(如 Agent Teams 跑一整天)。

觀察壓縮的徵兆

Claude 突然:

  • 忘記某個你說過的規範
  • 提問「你之前提到的 X 是什麼?」
  • 重複建議已被否決的方案

→ 很可能壓縮把該段丟了 → 你需要重新貼脈絡或檢視 CLAUDE.md

相關概念

強連結(原文明確提及)

← 回到 wiki