上下文壓縮(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% 變摘要 + 後段原文]
壓縮做什麼:
- 早期 N 輪對話 → LLM 自己摘要成 1-2 段
- 保留:使用者意圖 + 已決策結論 + 重要規則
- 丟棄:探索的死路、重複討論、過時細節
三種觸發
| 模式 | 觸發 |
|---|---|
| 自動 | context > 80% 時 |
| 手動 | /compact 對話內指令 |
| PostCompact Hook | 由 Hooks 介入加工 |
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 自己決定哪些重要、哪些不重要,可能誤丟你關心的細節。
對策:
對 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。
相關概念
強連結(原文明確提及)
- Context Rot Zone — 壓縮要避開的危險帶
- Boris Cherny — 400k 前置壓縮的提出者
- Memory 記憶功能 — 跨會話另一機制
- CLAUDE.md(專案手冊) — 不被壓縮的「永久層」
- Projects 持久化空間 — 上下文錨點
- Hooks — PostCompact 介入點
- Effort 推理強度 — token 消耗的另一面
- Slash Commands —
/compact/clear/rewind
← 回到 wiki