目次
- コンテキストウィンドウの基本を理解する
- コンテキストウィンドウとは
- コンテキストに含まれる情報の内訳
- コンテキストが溢れるとどうなるか
- /compactコマンドでコンテキストを最適化する
- /compactの仕組みと効果
- /compactを使うべきタイミング
- カスタムサマリー指示の活用
- CLAUDE.mdを永続的コンテキストとして活用する
- CLAUDE.mdの戦略的な活用法
- CLAUDE.mdのサイズ最適化
- ファイル読み込みの最適化テクニック
- 必要なファイルだけを指定する
- 段階的なファイル読み込み
- 大きなファイルへの対処法
- 会話管理のベストプラクティス
- 1セッション1タスクの原則
- 効果的なプロンプト設計
- 進捗のチェックポイント設定
- 大規模プロジェクト特有の戦略
- モノレポでのコンテキスト管理
- レガシーコードベースでの対処法
- コンテキスト管理のトラブルシューティング
- よくある問題と解決策
- コンテキスト使用量の確認方法
- まとめ:コンテキスト管理はAI活用の基本スキル
Claude Codeで大規模プロジェクトに取り組む際、最も重要でありながら見落とされがちなのが「コンテキスト管理」です。コンテキストウィンドウには上限があり、無計画にファイルを読み込ませたり、長い会話を続けたりすると、精度が低下したりエラーが発生したりします。本記事では、コンテキストウィンドウの仕組みを正しく理解し、大規模プロジェクトでも高い精度を維持するための具体的なテクニックを解説します。
コンテキストウィンドウの基本を理解する
コンテキストウィンドウとは
コンテキストウィンドウとは、Claude Codeが一度に処理できる情報量の上限です。これは、会話の履歴、読み込んだファイルの内容、システムプロンプト、CLAUDE.mdの内容など、Claude Codeが参照するすべての情報を含みます。
Claude Codeは200Kトークンのコンテキストウィンドウを持っています。日本語の場合、おおよそ1文字が1〜2トークンに相当するため、実質的には10万〜20万文字程度の情報を一度に扱えます。数字だけ見ると膨大に感じますが、大規模プロジェクトのソースコードをすべて読み込もうとすると、あっという間に上限に達します。
コンテキストに含まれる情報の内訳
Claude Codeのコンテキストウィンドウには、以下の情報が格納されます。
| 要素 | 説明 | トークン消費の目安 |
|---|---|---|
| システムプロンプト | Claude Codeの基本動作を定義する内部的な指示 | 数千トークン |
| CLAUDE.md | プロジェクトルールやアーキテクチャ情報 | 記述量による(数百〜数千トークン) |
| 会話履歴 | これまでのやり取りすべて | 会話が長いほど増加 |
| 読み込んだファイル | Claude Codeが参照したソースコード | ファイルサイズに比例 |
| ツール実行結果 | コマンド実行の出力結果 | 出力量に比例 |
重要なのは、これらすべてが同じコンテキストウィンドウを共有しているということです。つまり、大きなファイルを読み込めば読み込むほど、会話の履歴に使えるスペースが減ります。
コンテキストが溢れるとどうなるか
コンテキストウィンドウの上限に近づくと、いくつかの問題が発生します。まず、Claude Codeが以前の会話内容を「忘れる」ようになります。初期の指示や決定事項が参照できなくなり、矛盾した回答をする可能性があります。また、古い会話が自動的に切り捨てられるため、重要な文脈が失われることがあります。さらに、応答の品質が全体的に低下する傾向があります。
/compactコマンドでコンテキストを最適化する
/compactの仕組みと効果
/compactは、Claude Codeの会話履歴を要約し、コンテキストウィンドウの使用量を圧縮する組み込みコマンドです。長い会話を続けていてコンテキストが膨らんできたと感じたら、/compactを実行することで、これまでの会話の要点を保持しつつ、トークン消費量を大幅に削減できます。
具体的には、/compactを実行すると以下のことが起こります。
- これまでの会話履歴がAIによって要約される
- 要約された内容が新しいコンテキストとして使用される
- 詳細な会話のやり取りは破棄されるが、重要な決定事項や変更内容は保持される
- コンテキストウィンドウに大幅な空きが生まれる
/compactを使うべきタイミング
以下のようなタイミングで/compactの使用を検討してください。
- タスクの区切り目:一つの機能実装が完了し、次の機能に取りかかるとき
- Claude Codeの応答が遅くなったとき:コンテキストが大きくなるとレスポンスタイムも増加する
- 同じ情報を繰り返し聞かれるとき:コンテキストが溢れて情報が失われている兆候
- 大きなファイルを複数読み込んだ後:ファイル内容がコンテキストを圧迫している
目安として、20〜30回のやり取りを行ったら/compactを実行するのが効果的です。ただし、現在進行中のタスクの途中で/compactを実行すると、直前の細かい指示が失われる可能性があるため、タスクの区切り目で使うのがベストです。
カスタムサマリー指示の活用
/compactコマンドには、要約方法をカスタマイズするための引数を渡すことができます。デフォルトの要約では重要な情報が欠落する場合に便利です。
/compact 以下の情報を必ず保持してください: 1. APIの認証方式はJWT 2. データベースはPostgreSQL 3. フロントエンドの状態管理にZustandを使用
このように要約時に保持すべき情報を明示すると、重要なコンテキストの喪失を防げます。
CLAUDE.mdを永続的コンテキストとして活用する
CLAUDE.mdの戦略的な活用法
CLAUDE.mdは、/compactで会話が要約されても、セッションが変わっても、常にコンテキストに含まれるファイルです。この特性を活かして、CLAUDE.mdを「永続的なコンテキスト」として戦略的に活用しましょう。
特に大規模プロジェクトでは、CLAUDE.mdに以下の情報を記載しておくことで、毎回のセッションで同じ情報を繰り返し入力する手間を省けます。
- プロジェクトのアーキテクチャ概要:ディレクトリ構成、主要なモジュール間の依存関係
- 技術スタック:使用言語、フレームワーク、ライブラリのバージョン
- コーディング規約:命名規則、フォーマット、import順序などのルール
- 重要なビジネスロジックの概要:ドメイン固有の用語や概念の説明
- よく変更するファイルのパス:Claude Codeが素早く該当ファイルにアクセスできるようにする
CLAUDE.mdのサイズ最適化
CLAUDE.mdもコンテキストウィンドウの一部を消費するため、不必要に肥大化させないことが重要です。以下のガイドラインを参考にしてください。
- 簡潔に記述する:冗長な説明は避け、箇条書きを活用する
- 必要な情報に絞る:Claude Codeが知らなくても問題ない情報は書かない
- サブディレクトリのCLAUDE.mdを活用する:モジュール固有の情報は、そのモジュールのディレクトリにあるCLAUDE.mdに記載し、必要なときだけ読み込まれるようにする
- 目安は500〜1500トークン以内:長すぎるCLAUDE.mdは逆にコンテキストを圧迫する
ファイル読み込みの最適化テクニック
必要なファイルだけを指定する
Claude Codeに「プロジェクト全体を確認して」と指示すると、多数のファイルを読み込もうとしてコンテキストを圧迫します。代わりに、作業に必要なファイルを具体的に指定しましょう。
# 悪い例
このプロジェクトの構造を理解して、認証機能を修正してください
# 良い例
src/auth/login.ts と src/auth/middleware.ts を読んで、
ログイン時のトークンリフレッシュ処理を修正してください
具体的にファイルパスを指定することで、不要なファイルの読み込みを避け、コンテキストの効率的な利用が可能になります。
段階的なファイル読み込み
複数のファイルにまたがる作業では、一度にすべてのファイルを読み込むのではなく、段階的に読み込む戦略が有効です。
- まず全体像を把握するために、ディレクトリ構造やエントリーポイントだけを確認する
- 次に、変更が必要なファイルを特定する
- 特定したファイルのみを読み込んで作業する
- 作業完了後、/compactでコンテキストを整理してから次のファイルに移る
この段階的アプローチにより、コンテキストウィンドウの使用量を常に最適な範囲に保つことができます。
大きなファイルへの対処法
数千行を超える大きなファイルを扱う場合は、特に注意が必要です。以下のテクニックを活用してください。
- 行番号の範囲を指定する:「src/app.tsの200行目から300行目を読んでください」と指示する
- 関数・クラス単位で指定する:「UserServiceクラスのcreateUserメソッドを確認してください」と具体的に指示する
- そもそもファイルを分割する:1つのファイルが大きすぎる場合は、リファクタリングの好機と捉え、ファイル分割をClaude Codeに依頼する
会話管理のベストプラクティス
1セッション1タスクの原則
コンテキスト管理で最も効果的なプラクティスは、「1つのセッション(会話)で1つのタスクに集中する」ことです。認証機能の実装と画面のUIの修正を同じセッションで行うと、コンテキストが混在して精度が低下します。
タスクが完了したら、新しいセッションを開始して次のタスクに取り組みましょう。新しいセッションではCLAUDE.mdの情報はそのまま引き継がれるため、プロジェクトの基本コンテキストは失われません。
効果的なプロンプト設計
コンテキストを効率的に使うために、プロンプトの設計にも工夫が必要です。
- 最初に全体像を伝える:「これからAPIのエンドポイントを5つ作成します。まず1つ目のユーザー一覧APIから始めましょう」のように、セッション全体のスコープを明示する
- 前のやり取りを参照しない:/compact後は前の詳細が失われている可能性があるため、重要な指示は毎回明示的に伝える
- 不要な情報を含めない:背景説明が長すぎるプロンプトはコンテキストを浪費する。必要最小限の情報に絞る
進捗のチェックポイント設定
長時間の作業セッションでは、定期的にチェックポイントを設けましょう。チェックポイントでは以下を実行します。
- 現在の進捗と残タスクを確認する
- 必要に応じて/compactでコンテキストを圧縮する
- 次のステップで必要なコンテキスト情報を再確認する
これにより、コンテキストの劣化による作業品質の低下を防止できます。
大規模プロジェクト特有の戦略
モノレポでのコンテキスト管理
モノレポ(1つのリポジトリに複数のパッケージやサービスが含まれる構成)では、コンテキスト管理がさらに重要になります。以下の戦略を採用してください。
- サブディレクトリごとのCLAUDE.md:各パッケージやサービスのディレクトリに固有のCLAUDE.mdを配置する
- 作業スコープの明示:「packages/apiディレクトリの作業です」とセッション冒頭で宣言し、関係のないパッケージのファイルを読み込まないようにする
- サブエージェントの活用:独立した調査タスクをサブエージェントに委任し、メインのコンテキストを汚さない
レガシーコードベースでの対処法
レガシーコードベースは、ドキュメントが不足していたり、ファイル間の依存関係が複雑だったりするため、コンテキスト管理が難しくなります。以下のアプローチが有効です。
- CLAUDE.mdにドメイン知識を蓄積する:作業を通じて判明したアーキテクチャの特徴やルールをCLAUDE.mdに追記していく
- 依存関係グラフを作成しておく:主要モジュール間の依存関係をCLAUDE.mdに図示しておくと、Claude Codeが効率的にファイルを探索できる
- 小さな範囲から始める:一度に広範囲の変更を試みるのではなく、小さな範囲で確実に作業を進める
コンテキスト管理のトラブルシューティング
よくある問題と解決策
コンテキスト管理でよく遭遇する問題とその解決策をまとめます。
| 問題 | 原因 | 解決策 |
|---|---|---|
| 以前の指示を忘れる | コンテキストウィンドウの上限に達し、古い情報が切り捨てられている | /compactを実行し、重要な情報を再度伝える |
| 応答が遅い | コンテキストが大きすぎる | 新しいセッションを開始するか、/compactを実行する |
| 関係ないファイルを変更する | コンテキストに不要な情報が多く、混乱している | 作業対象ファイルを明示的に指定する |
| 同じ質問を繰り返す | 以前の回答がコンテキストから消えている | 重要な決定事項はCLAUDE.mdに記載する |
| コードの整合性が崩れる | 変更すべきファイルの一部がコンテキストに含まれていない | 関連ファイルを段階的に読み込みながら作業する |
コンテキスト使用量の確認方法
Claude Codeでは、現在のコンテキスト使用量を意識しながら作業することが大切です。会話が長くなってきたと感じたら、Claude Codeに「現在のコンテキストの状況を教えてください」と尋ねることで、大まかな使用状況を把握できます。また、Claude Codeのインターフェースにトークン使用量が表示される場合もあります。
まとめ:コンテキスト管理はAI活用の基本スキル
コンテキスト管理は、Claude Codeを効果的に活用するための最も基本的なスキルです。特に大規模プロジェクトでは、この管理の巧拙が作業効率と出力品質に直結します。
本記事で紹介したテクニックを整理すると、以下のようになります。
- コンテキストウィンドウの仕組みを理解し、すべての情報が同じ枠を共有していることを意識する
- /compactコマンドをタスクの区切り目で定期的に使用してコンテキストを圧縮する
- CLAUDE.mdを永続的コンテキストとして戦略的に活用し、セッション間で情報を引き継ぐ
- ファイル指定を具体的に行い、不要なファイル読み込みを避ける
- 1セッション1タスクの原則を守り、コンテキストの混在を防ぐ
- 段階的な作業を心がけ、コンテキストウィンドウを常に最適な状態に保つ
これらの実践は、Claude Codeに限らず、今後登場するさまざまなAIコーディングツールにおいても応用可能な普遍的なスキルです。コンテキスト管理をマスターし、大規模プロジェクトでもAIの力を最大限に引き出しましょう。
先行モニター企業 募集中|先着5社・2026年11月末まで 生成AIの利用費、「誰が・何のために・いくら」まで見えていますか?
株式会社カイダンと共同開発したAI利用ガバナンスSaaS「ManageAI」は、OpenAI・Azure OpenAI・Claude・AWS Bedrock・Google Vertex AIの費用と利用状況を、部署・利用者・プロジェクト別に可視化します。導入は読み取り専用キーの登録だけ。初期費用0円・月額5万円(税別)で先行モニター企業を募集しています。
ニュースリリースを読む関連記事
Related / 9 articles
Notes & Insights
- AI・機械学習
Stable Diffusionの使い方とビジネス利用の注意点|ローカル画像生成入門
自社PCで動かせる画像生成AI「Stable Diffusion」の始め方をビジネス目線で解説。必要なスペック、ツールの選び方、商用利用のライセンス確認ポイント、販促物への活用と注意点をまとめました。
- AI・機械学習
Claude CodeのSkills(エージェントスキル)とは?作り方と活用例を解説
Claude Codeに定型ワークフローを覚えさせる「Agent Skills」を解説。SKILL.mdの書き方、スラッシュコマンドやサブエージェントとの使い分け、チームで再利用できるスキル設計のコツを実例つきでまとめました。
- AI・機械学習
ベクトルデータベース比較|Chroma・Qdrant・FAISS・pgvectorの選び方を解説
RAG構築に欠かせないベクトルデータベースを比較解説。Chroma・Qdrant・FAISS・pgvector・Milvusの特徴と使いどころ、中小企業の社内文書検索にはどれを選ぶべきかを実務目線でまとめました。
- AI・機械学習
Whisperで無料の文字起こし環境を作る|ローカル実行なら会議音声が社外に出ない
OpenAIの音声認識モデルWhisperを自社PCで動かし、無料かつセキュアな文字起こし環境を作る手順を解説。モデルサイズの選び方、精度を上げる録音のコツ、議事録自動化への発展まで実践的にまとめました。
- AI・機械学習
vLLMとは?Ollamaとの違いと使い方|社内LLMサーバーを高速化する本命ツール
複数人で使う社内LLMサーバーの本命「vLLM」を解説。PagedAttentionと連続バッチングの仕組み、Ollamaとの使い分け、導入手順と注意点まで、社内AI基盤を検討する企業向けにまとめました。
- AI・機械学習
AIエンジニアとは?仕事内容・必要スキル・なり方・年収まで完全ガイド
AIエンジニアとは何かを仕事内容・関連職種との違い・必要スキル・資格・なり方・年収まで網羅的に解説。目指す個人にも採用したい企業にも役立つ完全ガイドです。
- AI・機械学習
中小企業のAIエンジニア確保術|採用・育成・外注どれを選ぶべきか比較
AIエンジニアの採用が難しい中小企業向けに、正社員採用・既存社員の育成・外部委託の3つの選択肢を比較。自社に合ったAI人材確保の進め方がわかります。
- AI・機械学習
AIエンジニアの年収と将来性|需要が伸び続ける理由とキャリアの広げ方
AIエンジニアの年収水準と将来性を解説。需要が伸び続ける背景、年収を高めるスキルの掛け合わせ方、今後のキャリアパスの選択肢まで整理しました。
- AI・機械学習
未経験からAIエンジニアになるには?学習ロードマップ6ステップと転職のコツ
未経験からAIエンジニアになるための学習ロードマップを6ステップで解説。独学の進め方、ポートフォリオの作り方、転職活動を有利に進めるコツまで実践的に紹介します。
先行モニター企業 募集中
生成AIのコストを「部署別」に、請求書より先に。
先着5社限定・2026年11月末まで。初期費用0円・月額5万円(税別)で、正式版と同等の機能に加え、開発者と伴走者による導入支援を追加費用なしで提供します。プロンプト原文は一切取得しません。
株式会社カイダン × Harmonic Society株式会社の共同事業|読み取り専用キーの登録だけで導入できます