使用 Claude Code 時,你有這些困擾嗎?

・Claude Code 的對話 session 變長後,回答品質不知為何就下降了。
・指令有哪些?我搞不太清楚它們的差別。
・不知道什麼時候該用 subagent。
・上下文亂成一團。
最近,Anthropic 員工 Thariq(@trq212)一篇關於「Claude Code 的 session 管理與 100 萬 token 上下文」的文章爆紅,瀏覽量高達 54 萬 😳

所以,為了所有有這些困擾的人,我來拆解並用簡單易懂的方式說明 👇
原文在此:https://x.com/trq212/status/2044548257058328723?s=20
■ 上下文視窗的基本概念
首先,先說前提:Claude Code 的上下文視窗是 100 萬個 token。

上下文包含以下所有內容:
・系統提示詞
・過去的對話紀錄
・所有工具呼叫及其輸出
・已載入檔案的內容
換句話說,session 越長,這個上下文裡堆積的資訊就越多。
■ 什麼是上下文腐化?

這裡有個重要概念:「上下文腐化」。
隨著上下文增長,模型的注意力會分散到許多 token 上,舊的或不相關的資訊會變成雜訊,開始干擾當前任務。
根據 Thariq 的說法,在 100 萬 token 的模型中,大約在 30 萬到 40 萬 token 時就會觀察到上下文腐化。不過這不是絕對規則,因為它很大程度上取決於任務本身。
由於上下文視窗有硬性上限,當你接近極限時,就需要總結先前的工作,然後在新的上下文中繼續。這個過程稱為「壓縮」。
■ 每一次回合都是「轉折點」

Claude Code 完成一個任務後,接下來該做什麼?這其實是最重要的決策點。
Thariq 列出了五個選項:
𝟭. 繼續
在同一個 session 中發送下一條訊息。這是最自然的選擇。
𝟮. /rewind(雙擊 Esc 鍵)
回到過去的某條訊息,從那裡重新開始。後續的訊息會從上下文中刪除。
𝟯. /clear(新 Session)
自己總結重要資訊,然後開始一個全新的 session。
𝟰. /compact
讓模型總結到目前為止的對話,然後在該總結的基礎上繼續。
𝟱. Subagents
將下一部分的工作委派給一個擁有自己乾淨上下文的 agent,只將結果回傳給父 session。
■ 何時該開始新 session
拜 100 萬 token 上下文視窗之賜,像是從頭建立一個全端應用程式這類的長時間任務,現在可以更穩定地執行。
然而,即使還有上下文空間,也不代表你應該在同一個 session 中繼續。
Thariq 的經驗法則很簡單:

🔥「如果你要開始一個新任務,就應該開始一個新 session。」
當然有例外。例如,在實作某個功能後立即撰寫文件。如果開始新 session,Claude Code 必須重新讀取它剛剛實作的檔案,這既慢又耗費成本。對於像文件撰寫這類不需要「高智慧」的任務,接受一些上下文污染並直接繼續,效率更高。

■ rewind 是最被低估的功能

Thariq 將「rewind」視為良好上下文管理的最佳習慣。
在 Claude Code 中,你可以透過雙擊 Esc 鍵(或使用 /rewind 指令)回到任何過去的訊息並重新開始。該點之後的訊息會完全從上下文中移除。
考慮一個具體情境:

Claude 讀取了五個檔案,嘗試了一個方法但失敗了。
❌ 一般反應:「那個方法沒用。試試 X 吧。」
→ 失敗嘗試的完整紀錄仍然留在上下文中。
✅ 更好的方式:回退到剛讀完檔案之後,並根據你學到的教訓重新指示。
→「不要使用方法 A。foo 模組沒有暴露那個功能。直接使用 B。」
這樣做之後,失敗嘗試的 token 就會消失,讓你能在乾淨的狀態下重試。
此外,使用「從這裡開始總結」功能,可以讓 Claude 總結自己的學習成果,建立一份「從過去的自己給未來的自己的備忘錄」。
■ /compact 與 /clear 的關鍵差異

當 session 變長時,有兩種方法可以減輕負擔。它們看起來相似,但完全不同。
【/compact】
・模型總結對話,並用該總結取代歷史紀錄。
・有損壓縮——哪些是重要的,交給 Claude 判斷。
・你不需要寫任何東西,但 Claude 可能會遺漏某些資訊。
・你可以提供指示來引導它(例如:/compact 專注於 auth 重構,移除測試除錯)。
【/clear】
・你自己寫出重要的資訊,然後開始一個全新的 session。
・像是:「目標是 auth 中介軟體,限制條件是 X,相關檔案是 A 和 B,方法 Y 已排除。」
・需要花費心力,但最終的上下文只包含你選擇的資訊。
在兩者之間做選擇,是控制性與便利性之間的取捨。
■ 為什麼 compact 會失敗

使用長時間 session 時,compact 的品質可能會變得極差。
根據 Thariq 的說法,compact 失敗的最大原因是「模型無法預測工作的方向」。
範例:
經過長時間的除錯 session 後,自動 compact 被觸發,並總結了調查過程。
→ 如果你接著說「也修掉 bar.ts 裡的那個警告」,那麼關於那個警告的資訊可能已經從以除錯為重點的總結中被遺漏了。
更麻煩的是,由於上下文腐化,模型在執行 compact 時正處於其「智慧最低的狀態」。換句話說,在最需要精確總結的時刻,卻產生了品質最低的總結。
既然現在我們有 100 萬 token 的上下文,最好的策略是:在你還有空間的時候,自己手動執行 /compact,並附上接下來要做什麼的說明。
■ 何時使用 Subagents

Subagents 也是一種上下文管理的形式。
當 Claude Code 使用 Agent 工具建立一個 subagent 時,該 subagent 擁有自己乾淨的上下文視窗。它會執行所需的工作,總結結果,然後將結果回傳給父 session。
判斷標準很簡單:
👀「我之後還會需要這個工具的輸出嗎?還是只要結論就夠了?」
如果只要結論就夠了,那就應該交給 subagent 處理。
Claude Code 會自動呼叫 subagents,但給予明確的指示也很有效:
・「啟動一個 subagent,根據這個規格檔驗證工作結果。」
・「使用 subagent 讀取並總結另一個程式碼庫中 auth 流程的實作方式。以此為參考在這裡實作。」
・「使用 subagent 根據 git diff 為這個功能撰寫文件。」
透過不將中間輸出帶入父上下文,你可以保持上下文的乾淨。
■ 總結:5 種上下文管理技巧

在 Claude 完成一個回合後,你應該在發送下一條訊息之前,總是先決定以下事項:
- 任務改變了嗎? → 使用 /clear 開始新 session
- 方法失敗了嗎? → 使用 /rewind 回到剛載入檔案之後
- session 變長了嗎? → 在還有空間時使用 /compact(並給予方向)
- 是會產生大量中間輸出的任務嗎? → 委派給 subagent
- 上下文可以用於相關任務嗎? → 直接繼續
未來,Claude 本身會協助這些決策,但現階段,由使用者做出這些判斷,可以顯著提升 Claude Code 的輸出品質。
Session 管理雖然微妙,但這項技能能從根本上改變 Claude Code 的使用體驗 🔥
覺得這篇文章有幫助的人:

𝗖𝗹𝗮𝘂𝗱𝗲 𝗖𝗼𝗱𝗲 𝗦𝘁𝘂𝗱𝗶𝗼 @ 𝗝𝗮𝗽𝗮𝗻(@ClaudeCode_love)是由三位 Claude Code 愛好者經營的帳號。
我們每天發布關於 CLI 實戰用法與自動化的內容。
目前正與一家上市公司共同開發 AI agent。
我們的日常內容 👇
・使用 Claude Code 與 Claude 的實際產品開發案例
・Claude Code 用法 / Vibe Coding / 整理開發趨勢
・來自海外的 Claude Code 最新資訊
從開發理念到設計、實作與改善,我們彙整海外與第一手資訊,幫助你釋出真正能運作的產品,而不只是「做完」。
如果你有興趣,歡迎追蹤並來看看!保證值得!





