この記事の内容
- Claude Codeにおけるコンテキストウィンドウの概念と、容量が増えるほど性能が低下する「コンテキスト腐敗」について解説します
- ステータスラインを使ってコンテキストの使用量をリアルタイムで可視化する方法を紹介します
/compact(会話の圧縮)と/clear(完全リセット)の仕組みと使い分けを説明します- オートコンパクションが作業の途中に走ることの危険性と、そのコントロール方法を解説します
- サブエージェントを使ってメインのコンテキストを節約するテクニックを紹介します
コンテキストウィンドウとは
Claude Codeを効果的に使うには、「コンテキストウィンドウ」を正しく理解することが不可欠です。コンテキストウィンドウとは、Claude が一度に参照できる情報の量を指します。わかりやすい例えとして「作業机の広さ」があります。
机の上には、あなたが出した指示、Claudeが読み込んだコード、調査結果、会話の履歴などが次々と積み上がっていきます。作業が長くなると書類が散らばり、重要な情報が見つけにくくなり、最終的には机から落ちて消えてしまいます。これがコンテキストウィンドウの限界です。
現在のClaude Codeにおけるコンテキストの容量は以下のとおりです。
| プラン | トークン数 | 目安 |
|---|---|---|
| 通常プラン | 約20万トークン | 日本語で約10万文字 |
| Max / Team / Enterprise | 約100万トークン | 通常の5倍 |
コンテキスト腐敗(Context Rot)とは
会話が長くなると、コンテキストウィンドウの中にさまざまな情報が溜まり、性能が低下していきます。この状態を「コンテキスト腐敗(Context Rot)」と呼びます。
具体的な症状としては以下のようなものがあります。
- 最初に伝えた方針や指示をClaudeが忘れてしまう
- 同じミスを何度も繰り返す
- 間違った前提で作業を続けてしまう
- 何度修正を伝えても改善されない
「Claudeの性能が落ちてきた」と感じる場合、ほとんどはこのコンテキスト腐敗が原因です。コンテキストが汚染された状態で作業を続けても、良い結果は得られません。
ステータスラインでコンテキスト残量を可視化する
コンテキストを管理するための第一歩は、「今どのぐらい使っているか」を見えるようにすることです。Claude Codeにはコンテキスト使用量を常時表示するステータスライン機能がありますが、デフォルトではオフになっています。
まだ設定していない方は、すぐに設定することをおすすめします。
設定方法
Claude Codeのプロンプトで以下のように入力します。
このコマンドを実行すると、ステータスラインを設定するための対話形式のサポートが始まります。表示したい情報を自然言語で指定できます。たとえば以下のように伝えると良いでしょう。
Windowsの場合はPowerShellから実行していることを明示することが重要です。macOSやLinuxの場合は自分のシェル環境を伝えてください。
設定後は画面下部に、コンテキストの使用率がグラフで常時表示されるようになります。数値だけでなくグラフ表示にすることで、視覚的に残量を把握しやすくなります。
Claudeのバージョン更新
設定の前に、まずClaude Codeを最新バージョンに更新しておきましょう。
Claude Codeは頻繁にアップデートされています。モデルのバージョンアップやコンテキストサイズの変更が随時行われているため、定期的に実行することをおすすめします。
/compactコマンドで会話を圧縮する
/compact は、これまでの会話履歴やコンテキストをギュッと要約・圧縮するコマンドです。
圧縮する際に、残しておきたい情報を明示することもできます。
仕組み
/compact は、これまでの会話履歴・ツール実行結果・コードの変更履歴などを要約して、コンテキストの使用量を大幅に削減します。重要な情報は要約として残るため、作業の文脈を維持しながらコンテキストを開放できます。
実行タイミング
コンパクトのタイミングを自分でコントロールすることが非常に重要です。目安としては、コンテキスト使用量が 70%前後 になったら実行を検討しましょう。作業の一区切りがついたタイミングで積極的に実行することをおすすめします。
/clearコマンドで完全リセットする
/clear は、コンテキストを完全にゼロにリセットするコマンドです。
実行後はコンテキスト使用量が0%になり、Claude Codeを起動した直後と同じ状態に戻ります。ただし、CLAUDE.md は自動的に再読み込みされるため、プロジェクトの設定情報は保持されます。
/compactと/clearの使い分け
| コマンド | 使うタイミング |
|---|---|
/compact | 同じプロジェクト・同じ作業の流れを継続したいとき。これまでの文脈を残しつつコンテキストを開放したいとき |
/clear | 全く別の作業に切り替えるとき。Claudeが間違った前提から抜け出せないとき。おかしな動作をリセットしたいとき |
「机の上を整理して続きの作業をする」のが /compact、「机の上を全部片付けて一から始める」のが /clear というイメージです。
Escapeキーで生成を止める
Claudeが意図と違う動作をしていると気づいたら、すぐに Escape キーで生成を止めることができます。
止めると Interrupted と表示され、作業が中断されます。
これはコンテキスト管理の観点でも重要です。間違った方向での作業や不要な調査結果がコンテキストに残ると、その後の会話に悪影響を与えます。「あ、違う」と思ったら遠慮なく止めましょう。一度お願いしたからといって終わるまで待つ必要はありません。
オートコンパクションの仕組みと注意点
コンテキストの使用量が 約95% に達すると、/compact と同等の処理が自動的に実行されます。これが「オートコンパクション(自動圧縮)」です。
オートコンパクションが危険なケース
一連の作業の途中でオートコンパクションが走ることは、最も避けるべき状態です。
たとえば10ステップある作業の8〜9ステップ目に自動圧縮が走ってしまうと、それまでの作業結果も含めて要約されてしまい、最後のステップで整合性が取れなくなることがあります。「完了しました」と返ってきたのに実はできていなかった、という事態につながります。
自動圧縮の発動タイミングを変更する方法
環境変数 CLAUDE_AUTO_COMPACT_PCT_OVERRIDE を設定することで、発動タイミングを変更できます。
# 50%に達したら自動圧縮する例(bash/zshの場合)
export CLAUDE_AUTO_COMPACT_PCT_OVERRIDE=50
公式ドキュメントでは50%前後を推奨していますが、デフォルトは95%です。
設定値の考え方
- 50%に設定する場合:早めに圧縮することでコンテキストが少ない状態を維持でき、精度が上がりやすい。ただし、自動で圧縮されるタイミングをコントロールしにくい
- 95%(デフォルト)のまま使う場合:自分で明示的に
/compactを実行するタイミングをコントロールできる。作業の途中で自動圧縮が走ることを防ぎやすい
どちらが良いかは使い方次第です。自動任せで楽に使いたい場合は50%程度に設定し、精密にコントロールしたい場合はデフォルトのまま手動でコンパクトを実行する方法がおすすめです。
サブエージェントで調査を分離する
メインの会話とは別の独立したコンテキストを持つ「サブエージェント」に調査を任せることで、メインのコンテキストを節約できます。
たとえばWebで広範な調査を行うとき、以下のようにサブエージェントを明示的に指示します。
この指示を加えるだけで、検索結果の大量のテキストがメインのコンテキストに流れ込むことを防げます。サブエージェントが独自のコンテキストで調査・要約を行い、その結果だけをメインのコンテキストに渡す仕組みになっています。
サブエージェントのより詳しい活用方法については、今後のシリーズで解説予定です。
まとめ
コンテキストウィンドウを意識して管理することで、Claude Codeの性能は大きく変わります。今回のポイントをまとめます。
- ステータスラインを設定して常に使用量を可視化する —
/statuslineで設定し、コンテキスト残量をリアルタイムで把握する - 作業の区切りごとに
/compactを実行する — コンテキストが70%前後になったら積極的に圧縮する - 別の作業に切り替えるときや動作がおかしいときは
/clear— 完全リセットで0%から再スタートする - 意図と違う動作はすぐに Escape で止める — 不要な情報をコンテキストに残さない
- オートコンパクションのタイミングをコントロールする — 一連の作業の途中で自動圧縮が走らないよう、事前に手動でコンパクトする
- 調査はサブエージェントに任せる — 「サブエージェントで調査して」と指示するだけでメインのコンテキストを節約できる
コンテキストは有限の重要なリソースです。「今何パーセント使っているか」を常に意識しながらClaudeに指示を出すことが、高い精度を維持し続けるための基本です。