Claude Code 離開一小時回來對話被「壓縮」了:Idle compaction 是什麼、條件、怎麼關

Claude Code 的 idle compaction 會在你離開約一小時後,把 200K token 以上的長對話先壓縮成摘要,下一條消息就不用重新處理整段歷史。本文按官方文檔講觸發條件、看到什麼提示、用 /config 或 idleCompaction 關閉、調閾值,以及恢復舊對話的用量警告。

NNathaniel bigo··原創首發·AI 輔助撰寫
10 分鐘讀完
資料核對於 2026-11-06 · 依據官方文檔與公開資料整理 Plus 帳號
本文根據 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),在意額度被長對話快速消耗的人。

結論先說

  1. Idle compaction(空閒壓縮)預設開啟:對話夠長、你離開約一小時,Claude Code 會趁提示緩存還沒過期,先把它壓縮成摘要。你回來發下一條消息時,發出去的是摘要,而不是整段歷史。
  2. 它是自動壓縮(auto-compact)的一個分支,不是新的刪除功能;你能在 /config 裏關,或在 settings.json 裏寫 "idleCompaction": false。
  3. 只有長對話才會觸發:預設閾值是 200,000 token,可以用環境變量 CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS 改,最低 100000。
  4. 版本要求:設定鍵需要 Claude Code v2.1.290 或更新;/config 裏的 Idle compaction 那一行需要 v2.1.302 或更新。

idle compaction 的觸發條件

圖:本站根據 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。

四、怎麼關閉

三種方式,效果一樣:

  1. 終端裏:運行 /config,改 Idle compaction 這一行。官方說明選擇會儲存到用戶設定並立即生效;
  2. 改 settings.json:寫入
json
{
  "idleCompaction": false
}

放在 ~/.claude/settings.json(會話運行所在的那台機器或 WSL 裏),或其他設定文件,設定文件的層級見 /guides/claude-code-settings-json;

  1. 臨時覆蓋:環境變量 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。

要不要關 idle compaction

圖:本站根據 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

Nathaniel 的更多內容

  1. 01

    Claude Personal Finance 是什麼:連銀行帳戶問花銷、怎麼開、只讀權限、誰能用、怎麼解除

    Claude 的 Personal Finance(beta)通過 Plaid 只讀連接你的銀行、信用卡、貸款和投資帳戶,在一頁裏看餘額和花銷並用自然語言提問。本文按官方幫助頁講誰能用(僅美國、Pro/Max/Ultra)、連接與解除步驟、Claude 能看什麼,以及它做不到的事。

    Claude0
  2. 02

    ChatGPT Computer History 是什麼:Mac 桌面端的活動記憶怎麼開、怎麼暫停和清除、誰能用

    Computer History 是 ChatGPT macOS 桌面應用裏預設關閉的可選功能,把你在應用和網站裏的活動整理成記憶和時間線,供 ChatGPT 與 Codex 引用。本文按官方文檔講怎麼開、記錄什麼不記錄什麼、怎麼暫停與清除、數據存哪、誰能用,以及提示注入風險。

    ChatGPTCodex0
  3. 03

    Codex 輸入框出現灰色建議:Composer predictions 是什麼、Tab 接受、怎麼關、誰能用

    Codex 桌面 App 的 Composer predictions(beta)會在 Codex 回完後,根據當前對話在輸入框裏給出下一條消息的建議,按 Tab 接受、不會自動發送。本文按官方幫助頁講誰能用、哪些線程支持、怎麼關、算不算額度,以及沒出現時怎麼查。

    ChatGPTCodex0
  4. 04

    ChatGPT 私隱中心(Privacy Center)在哪裏:私隱設定入口、三大分類和哪些套餐有

    ChatGPT 的 Privacy Center 把記憶、廣告、位置、臨時對話、鎖定對話、兩步驗證、模型改進、數據導出和刪號等入口集中到一頁。本文按官方幫助頁講怎麼打開、三大分類各有什麼、哪些套餐有,以及它不會替你改任何設定。

    ChatGPT0
  5. 05

    Claude Code 處理大倉庫:怎麼讓它只看需要的目錄(子目錄 CLAUDE.md、claudeMdExcludes、deny 規則)

    倉庫太大,Claude Code 總在讀無關文件、讀進別的包的規則?本文按官方大倉庫指南講:從哪個目錄啟動、子目錄 CLAUDE.md、claudeMdExcludes、Read 的 deny 規則、worktree.sparsePaths、additionalDirectories,以及一份合併後的配置示例。

    Claude0
  6. 06

    Claude Code 在 CI 裏跑:從本機 claude -p 到 GitHub Actions 的完整例子(自動審 PR、控成本)

    一條線走完 Claude Code 的 CI 用法:先在本機用 claude --bare -p 配 --json-schema 跑通,再寫進 GitHub Actions 用 claude-code-action@v1 自動審 PR,最後加上 --max-turns、超時、並發限制來控成本,並附上常見故障的排查順序。

    Claude0

同產品的其他教學

  1. 01

    Claude Code 自定義 subagent 實例:測試員、調試員、只讀調研員、只讀數據庫員怎麼寫

    四個可直接改的 subagent 實例:跑測試的 test-runner、找根因的 debugger、只讀調研員、用 PreToolUse hook 限成只讀 SQL 的 db-reader;講 tools、disallowedTools、model、maxTurns 怎麼配,怎麼點名調用。

    Claude0
  2. 02

    Claude Code 的 CLAUDE.md 模板:前端、後端、數據分析各一份,附拆分與自檢方法

    直接拿去改的三份 CLAUDE.md 模板(前端、後端、數據分析),每份都控制在官方建議的 200 行以內;再講怎麼用 .claude/rules 的 paths 拆出專屬規則、用 @ 導入長文檔,以及用 /context all 和 /doctor prompt-audit 檢查是否生效。

    Claude0
  3. 03

    Claude Code 自己寫一個插件並發布到 marketplace:plugin.json、marketplace.json、validate 到團隊安裝的完整流程

    想把自己寫的 Skill、Hook 打包給團隊用?按 Claude Code 官方 Plugins 文檔,從目錄結構、plugin.json、claude plugin validate,到寫 marketplace.json、推到 Git、讓同事一條命令安裝,再到版本更新,走完一遍完整流程。

    Claude0
  4. 04

    Claude Code 寫一個會自動觸發的 Skill:從需求到觸發,用 description、when_to_use 和 paths 控制它什麼時候出場

    寫好的 Skill 總是不觸發,或者什麼都觸發?本文按 Claude Code 官方「Extend Claude with skills」走一遍完整實例:把「改數據庫遷移前先檢查」寫成一個會自動出場的 Skill,包含 description、when_to_use、paths、附帶腳本、觸發測試和評估。

    Claude0
  5. 05

    Claude Code 配 Sentry MCP 排查線上報錯:添加命令、瀏覽器授權、貼 issue 連結修 bug 和插件子智能體

    線上報錯只能手動複製堆棧給 Claude Code?Sentry 官方提供 MCP 服務,可以讓它直接讀 issue、堆棧和 trace。本文按 Claude Code 官方 MCP 文檔和 Sentry MCP 官方說明,講添加命令、/mcp 授權、典型排查流程、插件方式和自託管注意事項。

    Claude0
  6. 06

    Claude Code 配 Context7 MCP 查最新文檔:兩種安裝方式、use context7 怎麼寫、指定庫和版本

    Claude Code 寫出來的代碼用了舊版 API?Context7 是一個把庫的最新文檔餵給編程助手的 MCP 服務。本文按 Context7 官方倉庫和文檔,講兩種安裝方式、在 Claude Code 裏的添加命令、use context7 與 library ID 的寫法,以及使用時的注意事項。

    Claude0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~