# 策展 · X (Twitter) 🔥

> 📖 本站完整內容索引（documentation index）：[llms.txt](/llms.txt)

> 作者：Thariq (@trq212) · 平台：X (Twitter) · 日期：2026-04-16

> 原始來源：https://x.com/trq212/status/2044548257058328723

## 中文摘要

# 使用 Claude Code：Session 管理與 1M Context

今天我們針對 `/usage` 推出了全新的更新，旨在幫助您了解自己在 Claude Code 上的使用情況；這項更新是基於我們與客戶進行的多場對談後所做出的調整。

在這些對談中，我們不斷聽到一個問題：使用者在管理 Session 的方式上存在很大的差異，特別是在我們為 Claude Code 更新了 100 萬 token 的 context 之後。

您是只使用一個 Session，還是會在終端機中同時開啟兩個 Session？您是否會在每次 Prompt 時都開啟一個新的 Session？您何時會使用 compact、rewind 或 subagents？是什麼原因導致了糟糕的 compact 結果？

這裡面有許多令人驚訝的細節，它們確實會影響您使用 Claude Code 的體驗，而幾乎所有這些細節都源自於對 context window 的管理。

## 關於 Context、Compaction 與 Context Rot 的快速入門

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1776299599031-diaHFnqWCbEAE3Oanjpg.jpg)

Context window 是模型在生成下一個回應時，能夠同時「看見」的所有內容。它包含了您的系統 Prompt、目前的對話紀錄、每一次的工具呼叫及其輸出，以及所有被讀取過的檔案。Claude Code 擁有 100 萬 token 的 context window。

遺憾的是，使用長 context 會有輕微的代價，這通常被稱為 context rot（上下文衰退）。Context rot 指的是隨著 context 增長，模型效能會下降的現象，因為注意力被分散到更多的 token 上，且較舊、不相關的內容開始干擾當前的任務。

Context window 有嚴格的上限，因此當您接近 context window 的邊緣時，您需要將正在進行的任務總結成較簡短的描述，並在新的 context window 中繼續工作，我們稱此為 compaction（壓縮）。您也可以自行觸發 compaction。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1776299599040-diaHFntaxboAAZuCmjpg.jpg)

# 每一個轉折點都是一個分支

假設您剛要求 Claude 完成某件事，而它已經執行完畢，此時您的 context 中已經有一些資訊（工具呼叫、工具輸出、您的指令），而您接下來有許多選擇：

- Continue — 在同一個 Session 中發送另一則訊息
- /rewind (esc esc) — 跳回到之前的訊息，並從該處重新嘗試
- /clear — 開啟一個新的 Session，通常會附上一份您從剛才的學習中提煉出的簡報
- Compact — 總結目前的 Session，並在該總結之上繼續工作
- Subagents — 將下一部分的任務委派給一個擁有獨立乾淨 context 的 Agent，並只將其結果取回

雖然最自然的方式是直接繼續，但其他四個選項的存在是為了協助您管理 context。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1776299599090-diaHFn6mMbEAEImhvjpg.jpg)

## 何時該開啟新的 Session

您應該何時維持一個長期的 Session，又何時該開啟新的 Session？我們一般的經驗法則是：當您開始一項新任務時，就應該開啟一個新的 Session。

1M 的 context window 確實意味著您現在可以更可靠地執行長期任務，例如讓它從零開始建構一個全端應用程式。

有時您可能會執行相關的任務，其中部分 context 仍然是必要的，但並非全部。例如，為您剛實作的功能撰寫文件。雖然您可以開啟一個新的 Session，但 Claude 將不得不重新讀取您剛實作的檔案，這會比較慢且成本較高。

## 使用 Rewind 而非修正

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1776299599107-diaHFoDqjbEAI94h5jpg.jpg)

如果我必須挑選一個代表良好 context 管理的習慣，那就是 rewind。

在 Claude Code 中，按兩下 Esc（或執行 `/rewind`）可以讓您跳回到任何之前的訊息，並從該處重新 Prompt。該時間點之後的訊息將會從 context 中移除。

Rewind 通常是修正問題的更好方法。例如，Claude 讀取了五個檔案，嘗試了一種方法，但失敗了。您的直覺可能是輸入「那樣做沒用，試試 X」，但更好的做法是 rewind 到檔案讀取之後，並根據您學到的內容重新 Prompt：「不要使用方法 A，foo 模組沒有公開該功能——直接使用 B。」

您也可以使用「summarize from here」讓 Claude 總結它的學習成果並建立一則交接訊息，這有點像是從未來的自己（已經嘗試過失敗的方法）寫給過去那個版本的 Claude 的訊息。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1776299599056-diaHFoKwBbEAAdb6Ijpg.jpg)

## Compacting 與全新 Session 的比較

當 Session 變得冗長時，您有兩種方式來減輕負擔：`/compact` 或 `/clear`（並重新開始）。它們感覺很相似，但運作方式截然不同。

Compact 會要求模型總結目前的對話，然後用該總結取代歷史紀錄。這是有損的，您必須信任 Claude 來決定什麼是重要的，但您不必自己撰寫任何內容，且 Claude 可能會更徹底地包含重要的學習成果或檔案。您也可以透過傳遞指令來引導它（例如 `/compact focus on the auth refactor, drop the test debugging`）。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1776299599100-diaHFoPtxaAAAUKMrjpg.jpg)

使用 `/clear` 時，您可以自行寫下重要的內容（「我們正在重構驗證中間件，限制條件是 X，重要的檔案是 A 和 B，我們已經排除了方法 Y」）並重新開始。這需要更多工作，但產生的 context 是您認為相關的內容。

## 是什麼導致了糟糕的 Compact？

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1776299599115-ediaHFoy22bEAEJd8jpg.jpg)

如果您執行了許多長期 Session，您可能已經注意到有時 compact 的結果會特別糟糕。在這種情況下，我們經常發現，當模型無法預測您工作的前進方向時，就會發生糟糕的 compact。

例如，自動壓縮（autocompact）在長時間的除錯 Session 後觸發，總結了調查過程，而您的下一則訊息卻是「現在修復我們在 bar.ts 中看到的另一個警告」。

但因為該 Session 專注於除錯，另一個警告可能已經從總結中被刪除了。

這特別困難，因為受到 context rot 的影響，模型在進行 compact 時正處於最不聰明的狀態。擁有 100 萬的 context，您有更多時間主動進行 `/compact`，並附上您想要執行的任務描述。

## Subagents 與全新的 Context Window

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1776299599162-diaHFo6v1bQAA7pS6jpg.jpg)

Subagents 是一種 context 管理形式，當您預先知道某項工作會產生大量您之後不需要的中間輸出時，這非常有用。

當 Claude 透過 Agent 工具產生一個 subagent 時，該 subagent 會獲得自己全新的 context window。它可以執行所需的任何工作，然後綜合其結果，最後只有最終報告會傳回給父層。

我們使用的心理測試是：我之後還需要這些工具輸出嗎？還是只需要結論？

雖然 Claude Code 會自動呼叫 subagents，但您可能希望明確地指示它這樣做。例如，您可能會想要告訴它：

- 「啟動一個 subagent，根據以下規格檔案驗證這項工作的結果」
- 「啟動一個 subagent 來閱讀另一個程式庫，並總結它是如何實作驗證流程的，然後以同樣的方式實作它」
- 「啟動一個 subagent，根據我的 git 變更來撰寫此功能的說明文件」

# 總結

總結來說，當 Claude 結束了一個轉折點，而您準備發送新訊息時，您面臨一個決策點。

隨著時間推移，我們預期 Claude 將會協助您自行處理這些問題，但目前為止，這仍是您可以引導 Claude 輸出結果的方式之一。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1776299599128-diaHFqwt9bEAEa1eqjpg.jpg)

## 標籤

Claude Code, CLI, 功能更新, Anthropic, Claude
