本文根據 Claude Code 官方文檔《Settings reference》《Prompt caching》和更新日誌(2.1.299、2.1.302、2.1.304、2.1.314)整理,資料核對於 2026-11-06。配圖為本站整理的示意圖,不是介面截圖。本站(bigolab.com)不是 Anthropic 官方網站。
適用於誰
- 開着一個很長的 Claude Code 對話去吃飯、開會,回來發現出現了一行「Compacted ...」提示的人;
- 擔心「被自動壓縮會不會丟上下文」,或者想知道怎麼關掉的人;
- 用訂閱套餐(Pro / Max),在意額度被長對話快速消耗的人。
結論先說
- Idle compaction(空閒壓縮)預設開啟:對話夠長、你離開約一小時,Claude Code 會趁提示緩存還沒過期,先把它壓縮成摘要。你回來發下一條消息時,發出去的是摘要,而不是整段歷史。
- 它是自動壓縮(auto-compact)的一個分支,不是新的刪除功能;你能在
/config裏關,或在settings.json裏寫"idleCompaction": false。 - 只有長對話才會觸發:預設閾值是 200,000 token,可以用環境變量
CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS改,最低 100000。 - 版本要求:設定鍵需要 Claude Code v2.1.290 或更新;
/config裏的 Idle compaction 那一行需要 v2.1.302 或更新。

圖:本站根據 Claude Code 官方《Settings reference》 整理的示意圖
一、它為什麼存在
先要知道一個背景:Claude Code 用「提示緩存」(prompt caching)讓重複發送的前綴更省時間和用量,緩存有存活時間(TTL)。官方文檔說,緩存過期後,你再發消息就要把整段輸入重新算一遍,所以離開一陣再回來的第一輪會明顯更慢;更詳細的機制見 /guides/claude-prompt-caching。
Idle compaction 做的事是:在緩存還熱的時候就把對話壓成摘要。官方在更新日誌裏的說法是,離開約 54 分鐘的 200K+ token 對話會在一小時緩存過期前被壓縮,這樣下一條消息就不用把整段歷史重新處理。
二、什麼時候會觸發
官方 Settings reference 列出,下面這些條件同時滿足時預設觸發:
- 會話類型:交互式終端會話、VS Code 擴展的聊天面板,或桌面應用 Code 標籤頁裏在你本機或通過 SSH 運行的會話;
- 自動壓縮已開啟:
autoCompactEnabled為開。官方還寫明,如果你把自動壓縮關了,空閒壓縮也一起關; - 提示緩存是一小時 TTL:官方說明,不另外設定時,只有在 Claude 訂閱套餐包含的用量額度內,Claude Code 才會請求一小時的緩存;超過套餐額度開始使用額外用量(usage credits)後,主對話會降到五分鐘 TTL。API Key 或雲廠商用戶可用
promptCacheTtl自己選一小時; - 長度:上下文達到閾值,預設 200,000 token;
- 空閒時間:距離上一次請求約一小時,並且這期間你的電腦一直沒休眠。
時間線上:終端版 2.1.299 加入,隨後 2.1.302 增加了 /config 開關,VS Code 與桌面版在 2.1.314 加入,之後還擴展到關了遙測的訂閱用戶,以及 Bedrock、Vertex、Foundry 和 LLM 網關在啟用一小時緩存的情形。
三、壓縮之後你會看到什麼
不同位置的提示不一樣:
- 終端:一行以
Compacted while idle, before the prompt cache expired開頭的提示; - VS Code 聊天面板:包含
a summary written while you were away的提示; - 桌面應用:同樣的提示,放在標有
Claude Code notice的行裏;看不到這一行時,官方建議切到 Verbose 視圖模式。
VS Code 和桌面版的完整提示類似「Compacted using a summary written while you were away」,後面跟着如何關閉的說明。官方說你不需要做任何事。
壓縮本身的細節、摘要裏保留什麼,見 /guides/claude-code-context-compact。
四、怎麼關閉
三種方式,效果一樣:
- 終端裏:運行
/config,改 Idle compaction 這一行。官方說明選擇會儲存到用戶設定並立即生效; - 改 settings.json:寫入
json
{
"idleCompaction": false
}
放在 ~/.claude/settings.json(會話運行所在的那台機器或 WSL 裏),或其他設定文件,設定文件的層級見 /guides/claude-code-settings-json;
- 臨時覆蓋:環境變量
DISABLE_AUTO_COMPACT會把自動壓縮和空閒壓縮一起關掉。
如果 /config 裏看不到那一行,官方列的原因有兩個:託管設定、--settings 參數或項目 / 本地設定文件裏已經設定了這個鍵,會覆蓋你的用戶設定,要去那個來源改;或者在 v2.1.314 之前,如果 Claude Code 取不到 Anthropic 的功能開關(feature flags),空閒壓縮根本不會運行,也就沒什麼可關。早於 v2.1.290 的版本不認這個鍵,需要關掉 autoCompactEnabled 才能停止它。
五、調整閾值
預設 200,000 token。如果你想讓更短的對話也被壓縮,在設定裏加:
json
{
"env": {
"CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS": "150000"
}
}
官方說低於 100000 的值會被抬到 100000。官方的舉例是:在 200K 上下文窗口的對話裏,自動壓縮會在接近 200,000 之前發生,所以把閾值降到 150,000 後這些對話才算夠條件。
六、關於額度與恢復舊對話的警告
- 官方的費用文檔提醒:會話回顧(session recap)和空閒壓縮在你離開時也可能消耗 token;
- 訂閱用戶還有一個相關的新提示:從 2.1.304 起,在 Pro 和 Max 套餐上,恢復一個已不活躍的對話如果會用掉你 5 小時用量限額中可觀的一部分,會給出警告,讓你選擇仍然恢復,或開啟新對話,並在你提到之前的對話時讓 Claude 去查。恢復舊會話的基本做法見 /guides/claude-code-resume-history。

圖:本站根據 Claude Code 官方《Settings reference》 整理的示意圖
七、該不該關
官方沒有給「應該關」的建議,只說預設開啟。可以這樣判斷:
- 經常離開又回來、對話很長,並且不想回來第一輪就把整段歷史重新算一遍——保持預設;
- 希望對話裏的每個細節都原樣保留、不想被摘要替代——可以關,同時手動在任務間隙用
/compact選擇壓縮的時機; - 用量緊張時,選套餐可以參考 /guides/claude-code-pro-max-or-api,訂閱入口見 /chongzhi/claude-code,價格以官方頁面當前顯示為準。
常見問題
Q:對話沒滿 200K,為什麼沒壓縮?
預設閾值是 200,000 token,另外還要滿足離開約一小時、緩存是一小時 TTL 等條件。
Q:壓縮後能撤銷嗎?
官方文檔沒有給出撤銷空閒壓縮的操作;想回到更早的節點,可以看 /guides/claude-code-rewind-checkpoints-undo 裏的回退方式是否適用。
Q:VS Code 裏也有嗎?
有,從 2.1.314 起,VS Code 的聊天面板和桌面應用 Code 標籤頁都支持,見 /guides/claude-code-vscode。
參考資料
- Claude Code 文檔:Settings reference(idleCompaction)— https://code.claude.com/docs/en/settings-reference
- Claude Code 文檔:Prompt caching — https://code.claude.com/docs/en/prompt-caching
- Claude Code 文檔:Changelog — https://code.claude.com/docs/en/changelog
0 條評論
還沒有評論,來搶沙發~