跳轉到主要內容
Claude Code 的上下文視窗包含 Claude 對您的會話所知的一切:您的指令、它讀取的文件、它自己的回應,以及從不在您的終端中出現的內容。下面的時間線播放了從啟動到壓縮的完整會話:在您輸入任何內容之前加載的內容、每個文件讀取、規則和 hook 在 Claude 工作時添加的內容,以及子代理如何將大型讀取保持在上下文之外。請參閱書面分解以獲取相同內容的列表形式。

時間線顯示的內容

該會話演示了一個現實流程,包含代表性的令牌計數:
  • 在您輸入任何內容之前:CLAUDE.md、自動記憶、MCP 工具名稱和技能描述都加載到上下文中。您自己的設置可能會在此處添加更多內容,例如輸出樣式或來自 --append-system-prompt 的文本,兩者都以相同方式進入系統提示。
  • 當 Claude 工作時:每個文件讀取都會添加到上下文中,路徑範圍規則會自動與匹配的文件一起加載,並且PostToolUse hook在每次編輯後觸發。
  • 後續提示子代理在其自己的單獨上下文視窗中處理研究,因此大型文件讀取不會進入您的視窗。只有摘要和一個小的元數據預告片返回。
  • 最後/compact 用結構化摘要替換對話。大多數啟動內容會自動重新加載;下表顯示每個機制會發生什麼。

壓縮後的存活內容

當長會話壓縮時,Claude Code 會總結對話歷史以適應上下文視窗。您的指令會發生什麼取決於它們的加載方式:
機制壓縮後
系統提示和輸出樣式不變;不是消息歷史的一部分
項目根目錄 CLAUDE.md 和無範圍規則從磁盤重新注入
自動記憶從磁盤重新注入
帶有 paths: frontmatter 的規則丟失,直到再次讀取匹配的文件
子目錄中的嵌套 CLAUDE.md丟失,直到再次讀取該子目錄中的文件
調用的技能主體重新注入,每個技能上限為 5,000 個令牌,總計 25,000 個令牌;最舊的優先刪除
Hooks不適用;hooks 作為代碼運行,不是上下文
路徑範圍規則和嵌套 CLAUDE.md 文件在讀取其觸發文件時加載到消息歷史中,因此壓縮會將它們與其他所有內容一起總結。下次 Claude 讀取匹配的文件時,它們會重新加載。如果規則必須在壓縮過程中持續存在,請刪除 paths: frontmatter 或將其移動到項目根目錄 CLAUDE.md。 技能主體在壓縮後重新注入,但大型技能會被截斷以適應每個技能的上限,一旦超過總預算,最舊的調用技能就會被刪除。截斷保留文件的開始部分,因此請將最重要的指令放在 SKILL.md 的頂部附近。

當您的上下文填滿時

Claude Code 會在您接近限制時自動壓縮,因此完整的上下文視窗不會結束您的會話。自動傳遞的工作方式與時間線中的 /compact 步驟相同。請參閱當上下文填滿時以了解它保留的內容。 您也可以在自動傳遞運行之前採取行動:
  • 使用焦點進行壓縮:在開始長時間新任務之前,運行帶有指令的 /compact,例如 /compact focus on the auth bug fix。摘要保留您選擇的內容,而不是自動傳遞猜測的重要內容。
  • 在任務之間清除:切換到不相關的工作時運行 /clear。舊對話會擠出您接下來需要的文件,並在每條消息上花費令牌。
  • 委託大型讀取:將研究發送給子代理,以便文件內容保留在其上下文視窗中,而不是您的。
如果您需要更大的視窗而不是更小的對話,Fable 5、Sonnet 5、Opus 4.6 及更高版本以及 Sonnet 4.6 支持 100 萬令牌上下文視窗。請參閱擴展上下文以了解按計劃的可用性以及如何選擇 [1m] 模型變體。Sonnet 5 以 1M 運行,無需選擇 [1m] 變體;請參閱Sonnet 5 上下文視窗以了解其自動壓縮閾值和 LLM 閘道例外。壓縮在更大的限制下以相同方式工作。

檢查您自己的會話

該可視化使用代表性數字。要在任何時刻查看您的實際上下文使用情況,請運行 /context 以獲取按類別的實時分解和優化建議。運行 /memory 以檢查在啟動時加載了哪些 CLAUDE.md 和自動記憶文件。 有關時間線中顯示的功能的更深入覆蓋,請參閱這些頁面: