← 戻る シリンダーゲージとコンテキストフロー制御を表す分岐パイプバルブのブループリント線画図

Claude Code コンテキストウィンドウ:圧縮、クリア、分割のタイミング

Claude Code のコンテキストウィンドウは、現在のセッションの作業メモリです。会話、読み込んだすべてのファイル、MCP ツール定義、カスタムエージェント設定、メモリファイル、ツール呼び出しの完全な履歴を保持します(Claude Code コンテキストウィンドウドキュメントで説明されています)。ウィンドウが満杯になったときは、/compact、/clear、または構造化されたハンドオフを伴う新規セッション開始という 3 つのレバーがあります。どれを選ぶかで、その後のすべての品質が変わります。

圧縮、クリア、または新規セッションを選択する

3 つのコマンド、3 つの異なる結果。この違いを理解することがすべてです。

各出力チャネルに個別バルブ制御を備えた 3 方パイプジャンクションのブループリント図

`/compact` は会話履歴を圧縮サマリーに置き換え、セッションを継続実行します。コンテキストは縮小され、セッションは続き、Claude は若干の履歴認識を保持します。保持する内容を調整できます:/compact focus on the auth bug fix はモデルに何が重要かを指示し、推測に任せません。公式コンテキストウィンドウリファレンスによれば、圧縮パスに直接指示を渡せます。

`/clear` はハードリセットです。会話全体が削除されます。履歴なし、メモリ内ファイルコンテキストなし、引き継ぎなし。Damian Galarza のコンテキストウィンドウ分析では、/clear を実行する前に計画を保存しないと、ゼロから始まることになります。これは時には意図的です。

ハンドオフドキュメント付きで新規セッションを開始すれば、クリーンスレートと継続性が得られます。ハンドオフの構成方法については以下を参照してください。

大まかな意思決定ツリー:

  1. 同じタスクでさらにスペースが必要:/compact とフォーカス指示を使用してください。
  2. 無関係な作業に切り替える:/clear を使用してください。
  3. タスクが 1 セッションに収まらないまたは品質が既に低下している:ハンドオフを作成して新規に開始してください。

1 つ注意点があります:/autocompact はウィンドウの上限に近づくと自動実行されます。自動圧縮が発動する前のウィンドウの満杯度を設定できます。例えば /autocompact 500k とすると、自動パスは何を保持するかについて独自の判断を下します。短いセッションであれば問題ありません。アーキテクチャ関連のタスクであれば、自動パスが実行される前に /compact を手動で実行したいところです。

コンテキスト消費量を確認する

コンテキストを管理する前に、それを確認する必要があります。/context を実行すると、分析結果が得られます:総コンテキストサイズ、最も多くのトークンを消費するカテゴリ、分割を示すビジュアルバーです。公式アカデミーの Claude Code 101 では、この出力について説明しています。主なカテゴリは、会話履歴、セッションに読み込まれたファイルコンテンツ、ツール呼び出し履歴、およびメモリやエージェント設定ファイルです。

ほとんどの開発者は、ツール呼び出し履歴に驚きます。長いデバッグセッションの往復が素早く蓄積されます。ファイル読み込みが数十回、それぞれ完全な出力を伴い、複合的に増加します。これが通常、最初に対象にするものです。

コンパクトパスを通じて保持されるもの

公式ドキュメントによると、コンパクト後にスタートアップコンテンツは自動的にリロードされます。注視する必要があるのは、会話そのものの微妙なニュアンスです。つまり、特定のアーキテクチャ決定、リファクタリングの背景にある理由、特定のアプローチを却下した理由です。これらは焦点を絞ったコンパクトを通じて生き残ります。自動パスでは多くの場合、これらは生き残りません。自動パスはあなたが何を重視しているかを知らないからです。

リポジトリの読み込みとツール出力のスコープ

ファイルをセッションに読み込む方法は、いつコンパクトするかと同じくらい重要です。必要なのが1つか2つの関数だけなのに、ディレクトリ全体または大きなファイルを読み込むことは、コンテキストを浪費する最速の方法の1つです。

役に立つ習慣がいくつかあります。

  • Claudeに必要な特定のファイルと行範囲だけを読むよう依頼してください。モジュール全体ではなく。
  • 大規模なコードベース領域を調査する必要がある場合は、サブエージェントに委譲してください。ファイルの内容はサブエージェントのコンテキストに留まり、あなたのコンテキストには留まりません。結果だけを受け取ります。公式コンテキストウィンドウドキュメントは这れを明確に指摘しています。「大規模な読み込みを委譲する。研究をサブエージェントに送信して、ファイルの内容があなたのコンテキストウィンドウではなくそのコンテキストウィンドウに留まるようにしてください。」
  • 何か変更されない限り、既に議論したファイルを再度読まないでください。Claudeは既にその内容を会話に持っています。
  • grepと検索ツール呼び出しで具体的であってください。広範な検索は広範な出力を返します。

Claude Codeの上に複数エージェントワークフローを構築しているユーザーの場合、Claude Codeサブエージェントガイドはそれらの委譲をどのように構造化するかについて説明しています。SDKレベルで作業している場合、Claude Agent SDKガイドはエージェント間のコンテキスト境界についてより深く掘り下げています。

コンテキストとの戦いにコードを書くことより多くの時間を費やしている場合は、この分野で常に仕事をしている人と話す価値があるかもしれません。SeahawkのClaude Code開発チームは、最初から正しいプロジェクト構造をセットアップするのに役立ちます。

コンパクト時に決定を保持する

これはほとんどの開発者がスキップするステップです。コンパクトまたはクリアする直前に、Claudeに要約を依頼してください。

「コンパクトする前に、私たちが行った主要な決定、明示的に却下したもの、却下した理由、および仕事の現在の状態のリストを箇条書きで教えてください。」

それをCLAUDE.mdまたはスクラッチノートにコピーしてください。再開するときは、それを初期コンテキストとして貼り付けてください。MindStudioの`/compact`コマンドガイドは、これを制御圧縮と混沌とした圧縮の違いとして説明しています。手動で/compactを実行する場合は、何を保持するかを選択できます。自動パスが発動する場合、モデルが決定し、多くの場合、アーキテクチャの推論よりも平凡な出力を保持します。

もう1つのレバーはCLAUDE.md自体です。アーキテクチャの決定、明らかでないコンポーネント関係、このコードベースでClaudeが絶対にすべきではないこと。これらは会話の中だけでなく、永続的にそこに属しています。すべての新しいセッションはCLAUDE.mdを自動的にロードするため、コンテキストが本当にセッション間で永続化される唯一の場所です。

コンパクトしない場合

  • デバッグ中で、特定のエラーメッセージとスタックトレースがまだ関連している場合。
  • ファイルレベルの詳細が積極的に使用されているリファクタ中。
  • あなたが構築したばかりのコンポーネントからのコンテキストに依存する統合作業の直前。

Claudefastのコンテキスト管理ガイドではこう述べています:作業フェーズの途中ではなく、フェーズとフェーズの間の自然な区切りでコンパクトにする必要があると。

大規模タスクを分割して引き継ぎを失わない

本当に1セッションでは処理できないほど大きなタスクもあります。これは失敗ではなく、大規模コードベースの実態です。答えはセッション終了後ではなく、品質が低下する前に作成された構造化されたハンドオフドキュメントです。

有用なハンドオフドキュメントは以下をカバーします:

  1. 完了した内容(コミット参照またはファイルパス付き)。
  2. 進行中の内容とその状態。
  3. 下した決定とその理由(特に自明でない点)。
  4. 次に何をするか。新しいセッションがすべてを読み直さずに引き継ぐのに十分な詳細。
  5. 未解決の質問またはブロッカー。

LinkedInでこれについて述べた実務家は、セッションハンドオフシステムの核心をこう説明しました:一定のコンテキスト使用レベルに達したら、セッションは完了内容、コミット参照、現在の状態を含むハンドオフドキュメントを作成します。新しいセッションはそのドキュメントを最初のメッセージとして開きます。JD Fiscusによるコンパクト対クリアについてのLinkedInの投稿はタスクを集中させるためのTASK > COMMIT > CLEAR > RECAP > RESCANループについて述べており、これは反復的なフィーチャー開発に効果的です。

具体的なワークフロー:

  1. 論理的な作業単位を完了してコミットします。
  2. Claudeに上記5つのポイントをカバーするハンドオフサマリーを作成させます。
  3. サマリーをレポジトリのファイルまたはCLAUDE.mdにコピーします。
  4. /clearを実行するか新しいセッションを開始します。
  5. 新しいセッションをハンドオフドキュメントをコンテキストとして開きます。

これにより、ゼロから始めることも、クリアな頭が必要な作業に散らかったセッション履歴を持ち込むこともありません。

モデル固有の制限とトラブルシューティング

コンテキストウィンドウサイズはモデルによって異なります。Damian Galarzaの投稿では、参考値としてClaude Sonnet 4.5は約200,000トークンのコンテキストウィンドウを持つとしています。他のClaudeモデルには独自の制限があります。最新の情報については、古い可能性があるコミュニティの数字ではなく公式のモデルドキュメントを確認してください。

注視すべき点:

  • 繰り返し。Claudeが既に答えた質問を再び尋ねたり、以前の決定と矛盾したりし始めます。これは関連するコンテキストが除外されたか、不十分に要約されたという信号です。
  • 無視された指示。Claudeが以前正しく処理していたプロジェクト規約に従わなくなった場合、CLAUDE.mdの内容が圧迫されている可能性があります。/contextを実行して確認してください。
  • 遅い、高コストの応答。大きなコンテキストはすべてのメッセージでトークンを消費します。コストが上昇している場合、/contextがその理由を示します。

注目すべき点:品質が常に低下する汎用的な圧縮閾値(充填率の特定のパーセンテージ)についての主張は、公式ドキュメントでサポートされていません。圧縮の適切なタイミングはタスク依存です。複数の実務者からの大まかなヒューリスティックは、自然なフェーズ境界で作用すること、つまり劣化が見られた後ではなく前に対応することです。ただし、タスク種別、モデル、およびコンテキストの密度が高いコードと会話のどちらをどの程度含むかによって結果は異なります。

FAQ

`/compact`はトークンを消費しますか?

はい。圧縮パス自体がモデル呼び出しであり、トークンを使用します。フェーズ境界で手動で実行する方が、通常は高い利用率で自動パスが発火するのを待つより低コストです。これは、生成される要約がより明確であり、その後のメッセージにより少ないトークンを費やすためです。

`/clear`は`CLAUDE.md`に影響しますか?

いいえ。CLAUDE.mdはディスク上のファイルです。/clearはセッション内の会話とメモリのみを削除します。Claude Codeがプロジェクトディレクトリをスキャンしたときに、CLAUDE.mdは自動的に再ロードされます。

会話の一部だけを圧縮できますか?

はい。/rewindを実行してメッセージを選択し、「ここから要約」または「ここまで要約」を選択します。公式コンテキストウィンドウドキュメントには、各オプションが何を保持するかが記載されています。これは、特定のデバッグスレッドがコンテキストを散らかしているが、前の会話はまだ重要な場合に役立ちます。

同じリポジトリのワークツリーはコンテキストを共有しますか?

公式メモリドキュメントに従い、マシンローカルの自動メモリを共有します。セッションコンテキストは共有しません。各ワークツリーセッションは独自のコンテキストウィンドウを持ちます。

圧縮パスの後、MCPツール定義はどうなりますか?

公式ドキュメントは、スタートアップコンテンツを含むMCPツール定義が圧縮パスの後に自動的に再ロードされることを示しています。ツールを手動で再登録する必要はありませんが、複雑なセッションで圧縮後に/contextを実行して、内訳が正しいことを確認する価値があります。

これすべての中で最も厳しい注意:品質が劣化していることに気付いた時点では、圧縮要約には良好な出力と混在した混乱した出力が含まれている可能性が高いです。乱雑なフェーズの開始時ではなく、きれいなフェーズの終了時に圧縮してください。

← 戻る