AI Hub

Claude Codeのコンテキスト節約術|/compactと上手な使い方

公開:

#コンテキスト #使い方

Claude Codeでセッションを長く続けていると、応答が遅くなったり、途中で会話が要約されたり、コンテキストの上限に関する警告が出たりすることがあります。これはコンテキストウィンドウ(Claudeが一度に読める情報量)の上限に近づいているサインです。この記事では /context で現状を把握したうえで、/clear/compact を軸にコンテキストを節約し、長時間の作業でも品質を落とさずに進めるための実践的なテクニックを紹介します。基本操作から体系的に押さえたい方は「Claude Codeの使い方完全ガイド」もあわせてご覧ください。

前提・動作環境

この記事はターミナル版Claude Codeの利用を前提としています。挙動やコマンドの詳細はバージョンによって変わることがあるため、最新の正確な仕様は公式ドキュメント(code.claude.com/docs)で確認してください。バージョンは以下のコマンドで確認できます。

claude --version
2.1.211 (Claude Code)

コンテキストウィンドウとは何か

コンテキストウィンドウとは、Claudeが一度のやり取りで参照できる情報の上限のことです。Claude Codeでは、システムプロンプト、CLAUDE.md、自動メモリ、MCPツールの一覧、これまでの会話やファイルの読み込み結果などがすべてこのウィンドウに積み上がります。モデルによって上限は異なり、標準では20万トークン、Sonnet 5など一部のモデルでは100万トークンまで拡張されています。

長いセッションほど、Claude Codeは毎回のリクエストでそれまでの会話をまるごと送信します。古いツール出力や関係の薄いやり取りが増えると必要な情報が埋もれてしまい、応答の精度が下がりやすくなります。さらにキャッシュの有効期限(サブスクリプションで1時間、APIキーなどでは通常5分)を過ぎてから再開すると会話全体を読み直すことになり、時間もコストも増えます。上限に近づくと自動でコンパクトが走りますが、放置するより日頃から節約を意識しておく方が快適です。

コンテキストウィンドウのイメージ図。会話履歴・ファイル読み込み・CLAUDE.md・システムプロンプトが積み上がる様子と、/compact実行後に会話が要約され空き容量が回復する様子を比較

/context で現状を確認する

節約の第一歩は、いま何がコンテキストを占めているかを把握することです。セッション内で次のコマンドを実行します。

/context

/context を実行すると、システムプロンプト・システムツール・MCPツール・カスタムサブエージェント・メモリファイル(CLAUDE.mdなど)・スキル・会話メッセージといったカテゴリ別の内訳と、使用量を色分けしたグリッド表示が確認できます。どのCLAUDE.mdや自動メモリファイルが読み込まれているかもここで確認できるため、「思ったより重い」原因を探るときに便利です。あわせて /usage を実行すると、セッションの消費トークン数や、長いコンテキストやキャッシュミスが直近使用量の10%以上を占めていないかといった警告も確認できます。

今日から使える節約テクニック

現状を把握したら、以下のテクニックを組み合わせてコンテキストを節約します。

自動コンパクト(auto-compact)の挙動

コンテキストが上限に近づくと、Claude Codeは自動でコンパクトを実行します。まず古いツール出力から解放し、それでも足りなければ会話全体を要約するという順序で進み、仕組みは手動の /compact と同じです。圧縮後に何が残るかはロード方法によって異なり、システムプロンプトはそのまま維持され、プロジェクトルート直下のCLAUDE.mdと自動メモリはディスクから再読み込みされます。一方、パス指定ルール(paths: 指定のルール)やサブディレクトリのCLAUDE.mdは該当ファイルを再度読むまで失われ、呼び出し済みのスキル本文は1スキルあたり5,000トークン・合計25,000トークンを上限に再読み込みされ、超過分は古いものから削られます。

なお、1つのファイルやツール出力が非常に大きく要約してもすぐコンテキストが埋まる場合、無限にコンパクトを繰り返さず数回試行した時点でエラーを表示して停止します。該当の出力を分割するか、サブエージェントに処理を任せましょう。

使用制限(レート制限)との関係

コンテキストや自動コンパクトの警告は、プランの利用上限(セッション制限・週次制限)そのものではありません。ただし、長いセッションほど毎回のリクエストで会話全体を読み直すため、消費トークンが積み上がりやすくなります。結果として、節約せずに使い続けると同じ作業量でも利用上限に早く到達しやすくなります。/usage で長いコンテキストやキャッシュミスの割合を確認できるので、上限が気になる場合はあわせてチェックしましょう。

つまずきポイント/よくあるエラー

よくある質問

/context と /usage はどう違いますか?

/context はいま何がコンテキストウィンドウを占めているかをカテゴリ別に可視化するコマンドで、/usage はセッションの消費トークン数やコスト、プラン利用状況を確認するコマンドです。原因を探るなら /context、上限を気にするなら /usage が向いています。

/clear と /compact はどちらを使えばよいですか?

話題が完全に変わるときは /clear で会話をまっさらにし、同じ話題のままコンテキストだけを圧縮したいときは /compact を使うのが基本の使い分けです。判断に迷う場合は「スラッシュコマンド一覧」も参考にしてください。

自動コンパクトに任せておけば節約を意識しなくても大丈夫ですか?

自動コンパクトは上限に達しそうなときの保険的な仕組みで、要約自体がそれまでの会話全体を読み込む重い処理です。任せきりにするより、/clear で早めにリセットしたり /compact に焦点を指定したりする方が、コストを抑えつつ必要な情報を残しやすくなります。

まとめ

Claude Codeのコンテキスト節約は、/context で現状を把握し、話題が変わったら /clear、同じ話題のまま圧縮したいときは /compact を使い分けることが基本です。加えてCLAUDE.mdを簡潔に保つ、大きなファイルを丸ごと読ませない依頼をする、調査はサブエージェントに任せるといった習慣を組み合わせれば、長時間のセッションでも品質を落とさずに作業を続けられます。Claude Code全体の使い方は「Claude Codeの使い方完全ガイド」、コマンドの詳細は「スラッシュコマンド一覧」、CLAUDE.mdの書き方は「CLAUDE.mdの書き方」をあわせてご覧ください。