カテゴリー / 連携・活用

Claude Codeのコンテキストウィンドウとは?仕組みと自動圧縮・手動圧縮の違い

この記事の目次

Claude Codeを使っていて、会話が長くなると急に指示を忘れたように感じたり、/compactという表示を見かけたのに何のことか分からなかったりした経験はないだろうか。この違和感の正体は、多くの場合「コンテキストウィンドウ」という仕組みにある。本記事では、コンテキストウィンドウとは何か、何がそれを消費しているのか、システムが自動で行う圧縮とユーザーが自分で呼び出す圧縮はどう違うのかを順に整理する。読み終える頃には、自分のセッションで/contextコマンドを実行し、今何が起きているのかを自分の言葉で説明できるようになる。

そもそも「コンテキストウィンドウ」とは何か?なぜ会話が長くなると挙動が変わるのか

Claude Codeのコンテキストウィンドウとは、1回のセッションでAIが同時に参照できる情報量の上限のことである。この上限に近づくほど、システムは情報の扱い方を変え始める。

この上限は、多くの場合「トークン」という単位で管理されている。トークンとは、文章をAIが処理する際に区切る最小単位のことで、文字数とは厳密には一致しない。具体的な上限の数値はモデルやプランによって公式ドキュメントに記載があり、時期によって更新されることもあるため、正確な数値を知りたい場合は公式サイトや後述する/contextコマンドで確認するのが確実である。本記事では変動しうる数値の断定は避け、仕組みの理解と確認方法を中心に扱う。

上限に近づくと、Claude Codeはそれまでの会話をすべてそのままの形で保持し続けることができなくなる。古い情報から要約されたり、扱いの優先順位が下がったりする挙動が起き始め、これが「長く話していると急に指示を忘れたように感じる」という体感につながっている。

コンテキストウィンドウは、Claude Codeの仕組み解説で扱う自律的なタスク遂行の仕組み全体を構成する要素の一つでもある。

会話中、何がコンテキストを消費しているのか?

Claude Codeのセッション中にコンテキストを消費している要素は、会話履歴だけではない。システムプロンプトやCLAUDE.md、ツール定義など、複数の要素が同時に領域を占めている。

これらは「常にコンテキストを消費し続けるもの」と「必要なときだけ消費するもの」の2種類に分けて考えると点検しやすい。前者はセッションが続く限りずっと領域を占め、後者は実際に呼び出されたときだけ消費が発生する。

要素 消費のタイミング 増減に影響する主な要因
システムプロンプト セッション開始時から常に Claude Code自体の設計。通常は利用者側で大きく変わらない
CLAUDE.md 常に(読み込まれる範囲) 記述量の多さ、階層ごとの読み込み設定
ツール定義 常に 有効化されているツールの数
MCPサーバー 接続している間は常に 接続先の数、各サーバーが公開するツールの数
Hooks 定義がある限り常に 設定しているHooksの数と複雑さ
Agent Skills 実際に呼び出されたときのみ 使用されたSkillの数と内容
会話履歴 やり取りするたびに蓄積 会話の長さ、貼り付けたファイル内容の量

MCPとは、Claude Codeが外部のツールやデータソースと連携するための接続の仕組みのことで、接続先が増えるほどツール定義の分だけコンテキストを消費しやすくなる。CLAUDE.mdの記述量やMCP接続の具体的な見直し方は、CLAUDE.mdの書き方ガイドMCP設定とガバナンスのガイドで扱っている。

自分のコンテキスト使用量はどうやって確認できるのか?

自分のセッションが今どれだけコンテキストを使っているかは、/contextコマンドを実行すれば確認できる。実行すると、前節で挙げた要素ごとの使用状況が一覧で表示される。

表示された内訳を見れば、システムプロンプトやCLAUDE.md、会話履歴のうちどれが多くの割合を占めているかが把握できる。特定のMCPサーバーやツール定義が想定以上に領域を使っている場合、そこが見直しの対象になる。

セッションのたびに/contextを打つのが手間だと感じる場合は、使用状況をステータスラインに常時表示させる設定もある。具体的な設定手順はsettings.jsonの設定ガイド/context以外のコマンド操作全体はClaude Code CLI操作ガイドにまとめてある。

コンテキストが逼迫すると何が起きるのか?(システムが自動で発動する圧縮)

コンテキストが上限に近づくと、Claude Codeはユーザーの操作なしに古い会話内容を自動で要約し、圧縮する。これはシステム側が発動する仕組みで、オートコンパクトと呼ばれ、ユーザーが自分の判断で呼び出す/compactコマンド(次節で扱う)とは区別される。

オートコンパクトが働くと、古い部分の会話は要約された形に置き換わる。要約は要点を残す一方で細部は失われうるため、以前に伝えた細かい制約や条件が、要約後には反映されにくくなることがある。長時間にわたる作業の途中で急に指示が抜け落ちたように感じる場面は、この自動圧縮が背景にあることが多い。

/compactコマンドはいつ、どう使うべきか?(自分の意思で圧縮するタイミングの見極め)

/compactは、前節の自動圧縮とは異なり、ユーザーが自分の意思で任意のタイミングに呼び出す手動コマンドである。

自動圧縮に任せきりにすると、圧縮が発生するタイミングを自分で選べない。話題がひと区切りついたタイミングで自分から/compactを実行しておけば、区切りの良い形で要約が作られ、直前の文脈が意図しない形で失われるリスクを抑えやすくなる。

似た操作に/clearがあるが、両者の目的は異なる。/compactは要約という形で過去のやり取りをある程度保持するのに対し、/clearは会話履歴を完全にリセットする。まったく別の話題に切り替える場合は/clear、同じ流れの中で一区切りつけたい場合は/compact、というのが基本的な使い分けの目安になる。

モデルやプランによってコンテキストウィンドウの大きさは変わるのか?

モデルによってコンテキストウィンドウの大きさが異なる場合があることは、公式ドキュメントでも案内されている。ただし本記事では、執筆時点で確認できない数値を断定して並べることは避ける。

モデルごとの違いは、Anthropicの公式ドキュメントで随時更新されており、確認する時点で最新の内容を見るのが確実である。モデルの使い分けそのものを詳しく知りたい場合はClaude Codeのモデルの違いガイドを参照してほしい。

プランによってコンテキストウィンドウの大きさそのものが変わるかどうかについては、本記事では一次情報として確認できていない。誤った断定を避けるため、プラン差については言及を控え、契約プランごとの機能比較を知りたい場合はClaude Codeのプラン比較ガイドで最新情報を確認することを勧める。法人契約と個人契約とで案内内容が分かれていることもあるため、企業として導入を検討している場合は特に公式情報での確認が有効である。

サブエージェントや長時間タスクではコンテキストはどう扱われるのか?

サブエージェントを使うと、親セッションと子セッションのあいだでコンテキストは分離される。子セッションは独立した文脈のもとで作業し、完了後に結果だけが親セッションへ返されるという一般的な仕組みになっている。

サブエージェントとは、特定の作業を任せるために呼び出される子セッションのことを指す。この分離の仕組みがあるおかげで、大きな調査や試行錯誤を伴う作業をサブエージェントに任せた場合、その途中経過すべてが親セッションのコンテキストを圧迫することはなく、最終的に必要な結果だけが親セッションに戻ってくる形になる。長時間にわたるタスクほど、この分離の恩恵は大きくなりやすい。

サブエージェントの設計や運用の勘所は、サブエージェント設計ガイドで詳しく解説している。

コンテキストウィンドウを圧迫させないためにできることは何か?

コンテキストウィンドウを圧迫させないためにできることは、ここまでに整理した消費要素ごとの点検を、日常的な習慣として続けることに尽きる。以下は、その点検リストである。

  • CLAUDE.mdは簡潔に保ち、頻繁に参照しない情報は別ファイルに分離する
  • 使っていないMCPサーバーへの接続を定期的に見直し、不要なら外す
  • 話題が切り替わるタイミングで/clear/compactを使い分ける
  • 調査や試行錯誤を伴う大きな作業はサブエージェントに委譲する
  • 長いログや大量のファイル内容をそのまま貼り付けず、必要な範囲に絞って渡す
  • 定期的に/contextを実行し、使用状況を点検する習慣をつける

このリストは特別な設定を必要とせず、今日から一つずつ試せる内容にしてある。個々のチェック項目をさらに体系立てて運用ルールに落とし込みたい場合は、運用ルール設計ガイドが土台になる。

まとめ

コンテキストウィンドウは、Claude Codeが一度に参照できる情報量の上限であり、システムプロンプトやCLAUDE.md、会話履歴など複数の要素が同時にそこを占めている。上限が近づくとシステムが自動で圧縮を行う一方、/compactはユーザーが自分の判断で使う別の操作であり、両者を区別して理解しておくと挙動の変化に驚きにくくなる。

ここまでの内容を実際の自分のプロジェクトに落とし込み、CLAUDE.md設計やサブエージェント活用まで含めた運用の型を体系的に身につけたい場合は、月額1,980円から参加できる学習コミュニティ「AI駆動ラボ」(lab.no-wave.jp)で、実際に手を動かしながら学ぶという選択肢がある。