Claude Code 中的 Auto Compact 是什麼?

CometAPI
AnnaMar 31, 2026
Claude Code 中的 Auto Compact 是什麼?

Claude Code 是 Anthropic 的 agentic 程式設計助理,能閱讀整個程式碼庫、編輯檔案、執行指令,並在終端機、IDE、桌面應用與瀏覽器工作流程中整合各種工具。由於它在共享的內容視窗中運作,長時間的工作階段最終會被聊天記錄、檔案輸出與工具訊息填滿。Claude Code 會在接近限制時自動壓縮(compact)對話歷史,但如果早期指令僅存在於聊天記錄中,就可能被遺失。

在 2026 年這更為重要,因為 Anthropic 正持續推動 Claude Code 走向更長、更自主的工作模式。2026 年 3 月 25 日,Anthropic 發佈「Claude Code auto mode: a safer way to skip permissions」,指出使用者對 93% 的權限提示都予以批准,並將 auto mode 描述為在手動批准與不安全的權限略過之間、以分類器為基礎的折衷方案。2026 年 2 月 5 日,Anthropic 也推出了 Claude Opus 4.6,強調更強的程式設計能力、更好的除錯,以及更長的 agentic 工作階段。這些更新與 auto compact 不同,但清楚顯示了產品方向:更少中斷、更長工作階段以及更可靠的延續性。

CometAPI 目前以低於官方 API 的價格提供對 Claude API 的存取,例如 Claude Sonnet 4.6 Claude Opus 4.6,以及 Claude 5。

Claude Code 中的 auto-compact 究竟是什麼

Auto Compact 是內建於 Claude Code(Anthropic 的 CLI/桌面工具)與更廣泛 Claude API 生態系的內容最佳化機制。當你的對話接近模型的內容視窗上限時,它會自動介入——旗艦模型如 Claude Opus 4 或 Sonnet 4 的上限通常約 200,000 tokens。hooks 文件明確指出:PreCompact 在壓縮操作前觸發,而 auto 的 matcher 表示「當內容視窗已滿時自動壓縮」。相對應的 PostCompact hook 則在壓縮完成後觸發,並接收生成的 compact_summary

這點很重要,因為壓縮與「記憶」不是同一件事。Auto memory 是 Claude 自己的筆記系統,而壓縮則是一種會話管理機制,用來壓縮即時的對話狀態。記憶文件清楚說明 CLAUDE.md 是持久化的,auto memory 由 Claude 撰寫,而壓縮則是在工作階段中將對話歷史縮減,以便模型能持續工作。

Auto Compact 不是強迫開啟新聊天(並遺失歷史),也不是讓模型「忘記」關鍵細節;相反,它會:

  1. 分析完整歷史——找出值得保留的核心要素。
  2. 生成精簡摘要——涵蓋決策、程式架構、已解決的錯誤、檔案狀態與下一步。
  3. 以摘要取代舊訊息——在 API 用語中是一個「壓縮區塊(compaction block)」。
  4. 無縫繼續——保留必要的脈絡後繼續工作。

關鍵資料點(2026):

  • 觸發門檻:預設約在 95% 容量(或剩餘約 25%)時觸發。有使用者報告內部會為壓縮流程保留 20–45k tokens(約占內容視窗的 22.5%)作為緩衝。
  • 效能改善:自 Claude Code v2.0.64 起,壓縮變為「即時」,不再需要數分鐘。
  • 節省 tokens 範例(來自 Claude Agent SDK 基準):一個 5 工單的工作流程從 204k 降至 82k 輸入 tokens(減少 58.6%),期間發生兩次壓縮事件。

Auto Compact 並不等同於 /clear(清除所有內容)或簡單截斷。它能智慧地保留重要事項——最新的程式差異、架構選擇、命名慣例——同時精簡已解決的除錯循環與探索性枝節。

為什麼在 Claude Code 使用 Auto Compact?

長時間的程式設計工作是常態。一個功能的實作可能跨 50+ 次來回:規劃、除錯、重構、測試。沒有壓縮時,token 使用量線性成長、回應品質下降、成本飆升。

對開發者而言,收穫是減少重啟疲勞。你不必手動將摘要複製到新會話,而是讓 Claude 壓縮當前工作階段並持續前進。這在修 bug、多檔案重構、測試驅動變更、與審查密集的工作流程中特別有用,因為對話可能非常冗長。Claude Code 的工作階段以全新內容視窗開始,因此壓縮是讓長期工作可行的關鍵機制之一。

核心優勢

  • 無限制的工作階段長度:無需重新開始即可持續進行。
  • 成本與效能效率:大幅減少輸入 tokens。實務報告顯示多階段工作流程可節省 50–60%。
  • 更好的聚焦與穩定性:避免「內容過載」,導致模型臆測或遺忘早期約束。
  • 保留組織知識:即使經過數百則訊息,關鍵決策仍留在脈絡中。
  • 對 agentic 工作流程無縫:在使用工具、MCP 伺服器或多代理設定的 Claude Code 中至關重要。

何時應依賴 auto compact?

當任務本質上是長期進行:多檔案重構、跨越日誌與原始碼的除錯工作、伴隨反覆驗證的功能實作,或需要大量工具呼叫的研究。Anthropic 的文件明確指出,在長時間的工作階段中,內容視窗會被不相關的對話、檔案內容與指令填滿,而 auto compaction 能保留關鍵程式與決策,同時釋放空間。

當任務短小、獨立,或需要精準且永久保留的指令時,則較不適用。早期的指令可能在壓縮後遺失,因此專案規則應放在 CLAUDE.md,而不是可能被壓縮掉的臨時提示。

何時使用(或啟用)它:

  • 多數使用者預設「始終開啟」——日常程式設計、大型重構或探索性專案的理想選擇。
  • 長期任務——處理佇列、資料管線或多檔案程式碼庫。
  • 團隊/企業環境——需要跨工作階段的脈絡延續性。
  • 高風險專案——遺失某個架構決策可能造成數小時損失。

何時考慮停用(透過 /config):

  • 你想要每一個 token 的脈絡,以達到極致精準控制。
  • 你偏好完全手動管理(進階使用者會透過檔案保存/還原計畫)。

最新動態(2025–2026):2025 年 3 月,Anthropic 改進了 Auto Compact 的保留邏輯,讓摘要更能「在降低 token 使用量的同時保留重要資訊」。到 2025 年底,觸發時機也被微調(有時提早在 64–75% 使用量以避免失敗的壓縮)。2026 年初,網頁/桌面介面曾出現暫時性問題(1 月中標記為修復,但仍有零星回報),而 CLI 保持穩定。2.0.64 版(2026 年 2 月)讓壓縮即時完成,是開發體驗上的重大提升。

如何在 Claude Code 使用 Auto Compact:逐步指南

Claude Code 的設計使每個工作階段都以全新的內容視窗開始。這很有用,因為每個新任務都能乾淨起步,也更容易察覺工作階段何時變得嘈雜。建議在不相關的任務間使用 /clear,避免陳舊脈絡持續占用空間。

步驟 1:檢查目前的內容狀態

使用 /context 來視覺化目前的內容載荷。Claude Code 的內建指令清單說明 /context 會顯示彩色方格,並標示記憶膨脹、最佳化建議與容量警告。這是判斷何時接近 Auto Compact 觸發點的最快方法。

在你的 Claude Code 工作階段輸入:

/context

這會顯示「距離 auto-compact 還有多少內容:XX%」——你的即時進度條。

步驟 2:設定 Auto-Compact(選用)

當內容視窗變滿時,Claude Code 會自動壓縮對話。hooks 參考將此事件標記為 auto,並在內容視窗已滿時觸發。實務上,你不需要「打開」 Auto Compact,只需在需要時讓 Claude Code 執行即可。

/config

進入「Auto-compact enabled」並切換為 true/false。預設為啟用。你也可以調整相關設定,如先行停用不必要的 MCP 伺服器,以主動釋放 tokens。

步驟 3:讓 Auto-Compact 自動執行

當你達到約 95%:

  • Claude 會顯示「正在壓縮我們的對話以便繼續聊天……」(或類似訊息)。
  • 它會在背景執行並恢復。
  • 你會在脈絡頂端看到新的摘要。

小訣竅:不要等到 0%。請更早手動壓縮以取得更佳結果(見下方最佳實務)。

步驟 4:若需要,使用 hooks 來自動化壓縮前後的處理

Claude Code 提供 PreCompactPostCompact 兩個 hooks。hook 參考顯示 PreCompact 能偵測壓縮是手動或自動,而 PostCompact 則會接收生成的 compact_summary。hooks 很適合用於記錄、稽核、壓縮後備忘錄或對外自動化。

簡單的 hook 範例如下:

{  "hooks": {    "PostCompact": [      {        "matcher": "auto",        "hooks": [          {            "type": "command",            "command": "./scripts/save-compact-summary.sh"          }        ]      }    ]  }}

相對應的 shell 腳本可以從 stdin 讀取 JSON 輸入,因為 Claude Code 的 command hooks 會透過 stdin 接收 JSON:

#!/usr/bin/env bashset -euo pipefailjq -r '.compact_summary // empty' \  | sed 's/^/[compact] /' \  >> .claude/compact-log.txt

文件確認 command hooks 會透過 stdin 接收 JSON,且 PostCompact 包含 compact_summary,因此此模式與目前的 hook 模型一致。

步驟 5:精準的手動壓縮(建議)

當你希望助理立刻壓縮當前執行緒時,使用 /compact。你可以附上想要保留的重點指示。Anthropic 的內建指令頁面列出 /compact [instructions] 為「以可選的聚焦指示壓縮對話」。

/compact keep the auth flow decisions, the current test plan, and the open TODOs

此模式在交接之前、切換分支之前、或在請求 Claude 開始新的工作階段前特別有用。

真實使用的範例:

  • 除錯結束後:/compact keep the solution we found, remove debugging steps
  • 專案里程碑:/compact focus on the new feature requirements

API 層級的壓縮(進階——Python SDK 與 Messages API)

針對自訂代理或腳本,使用官方的壓縮工具。

Claude Agent Python SDK 範例(在使用工具的工作流程中自動執行):

from anthropic import Anthropic

client = Anthropic()

runner = client.beta.messages.tool_runner(
    model="claude-opus-4-6",
    max_tokens=4096,
    tools=your_tools,
    messages=messages,
    compaction_control={
        "enabled": True,
        "context_token_threshold": 100000,  # or lower for aggressive compaction
        "model": "claude-haiku-4-5",        # cheaper summarizer
        "summary_prompt": """Create a focused summary preserving:
1. COMPLETED TASKS and key outcomes
2. CURRENT STATE and open items
3. NEXT STEPS
Wrap in <summary></summary> tags."""
    }
)

偵測壓縮事件:

if curr_msg_count < prev_msg_count:
    print(f"Compaction occurred! Messages reduced from {prev_msg_count} to {curr_msg_count}")
```<grok-card data-id="f4afb5" data-type="citation_card" data-plain-type="render_inline_citation" ></grok-card>

完整 Messages API(beta,2026)——需要標頭:
```bash
curl https://api.anthropic.com/v1/messages \
  --header "anthropic-beta: compact-2026-01-12" \
  --data '{
    "model": "claude-opus-4-6",
    "messages": [...],
    "context_management": {
      "edits": [{
        "type": "compact_20260112",
        "trigger": {"type": "input_tokens", "value": 150000},
        "pause_after_compaction": true
      }]
    }
  }'

API 會回傳一個壓縮區塊,你必須在後續呼叫中傳回該內容。自訂指示與暫停可讓你全面掌控預算(例如在跨工作階段強制總計 300 萬 tokens 上限)。

如果你使用 CometAPI 的 Claude API,將訊息標頭改為 "https://api.cometapi.com/v1/messages\\"。

Auto-Compact vs Manual Compact vs Clear:比較表

功能Auto-CompactManual /compact/clear
觸發自動(約 95% 內容)使用者啟動使用者啟動
控制低(由系統決定)高(可自訂指示)無(完全重置)
脈絡保留佳(近期+關鍵項目)優(你精準引導)
Token 節省高(基準測試顯示 58%+)高且可預期最大(但遺失歷史)
工作流程中斷若即時則極小;可能稍有突兀無(你選擇時機)完全重置
最適用免管理的長工作階段里程碑與進階使用者啟動全新專案
風險偶有細微資訊流失(早期 bug)先前工作完全遺失
2026 成熟度穩定且即時(v2.0.64+)社群高度推薦隨時可用

Claude Code Auto Compact 最佳實務(開發者進階技巧)

主動壓縮

第三條規則是把壓縮當作重置,而不是拐杖。如果執行緒充滿死胡同,請要求 Claude 以清楚的指示進行壓縮,說明哪些內容重要:當前目標、既定方法、失敗的測試、尚未解決的問題。實務上,這會讓摘要比系統盲目壓縮更有用,不必碰運氣。

保持耐久指示精簡

Anthropic 表示超過 200 行的檔案可能降低遵循度,因此大型政策檔通常不如簡潔、範圍明確的規則。使用 .claude/rules/ 來放置針對檔案型別或路徑的行為,並在需要更豐富的支援細節時使用 @path 匯入,而不膨脹主要指示檔。
先釋放 tokens——在壓縮前使用 /mcp 或 @server-name disable 停用未使用的 MCP 伺服器。

與 CLAUDE.md 結合

CLAUDE.md 視為希望在長工作階段中被保留的一切的事實來源CLAUDE.md 會在 /compact 後重新讀取,因此它是放置建置指令、程式設計慣例,以及你不希望遺失的持久規則的正確位置。Auto memory 也很有用,但它是不同目的的系統。

其他提示

監控 /context——盡量維持在 70–80% 以下。

對 API 使用者——設定較低的門檻(例如 50k–100k),並使用較便宜的摘要模型如 Haiku。

僅在必要時停用——自 2025 年改進後,多數開發者建議保持 Auto-Compact 開啟。

在非關鍵工作階段測試壓縮——先了解你的特定工作流程如何被摘要。

實際影響:開發者回報生產性工作階段延長 2–3 倍,且更少出現「Claude 忘了我們在做什麼」的情況。

常見問題與疑難排解(2026 版)

  • Auto-compact 未觸發:檢查網頁/桌面與 CLI;2026 年 1 月的部分問題已修復,但請確認版本。
  • 壓縮後遺失脈絡:下次使用手動 /compact 並附上明確指示。
  • 無限迴圈或 102% 使用量:罕見;重啟工作階段或最後手段使用 /clear
  • 壓縮變慢:v2.0.64 之前的問題——請更新 Claude Code。
  • API 壓縮區塊錯誤:在後續呼叫中務必附上完整的壓縮內容區塊。

結論

Auto compact 是 Claude Code 中最重要的隱性機制之一,因為它讓在內容視窗填滿時仍能維持可用的長工作階段,而不必每次都重啟。實務準則很簡單:讓 auto compact 處理溢出,當你想要掌控時使用 /compact,將耐久性的指引放進 CLAUDE.md,而在工作階段結構變更時使用 /clear/rewind。這樣的組合在長時間的 Claude Code 工作流程中提供了最佳的延續性、控制與速度。

Claude Code 的 Auto Compact 代表了實用的 AI 協助開發的一大躍進。透過智慧管理 200k-token 的內容視窗,它消除了長篇程式設計中最大的阻力:記憶不足。隨著(2026 年的)即時效能、豐富的設定選項與強大的 API 擴充,它如今已是成熟、經實戰驗證的功能,為數千位開發者每日所用。

行動步驟(今天):

  1. 開啟 Claude Code 並執行 /config ——確認 Auto-Compact 已啟用。
  2. 在你的現有專案中試一次具指示的手動 /compact
  3. CometAPI. 探索 Python SDK 或 Messages API,用於自動化代理。

以低成本 存取頂級模型

閱讀更多