ガイド

Claude Codeのコンテキスト完全ガイド【2026年最新】:ウィンドウの仕組み・/compact・/contextコマンド・管理のベストプラクティス

室谷東吾
監修者室谷東吾(@0x__tom

株式会社MYUUU 代表取締役 / 日本最大級AIコミュニティ「.AI」創設者(累計2,000名超)/ セプテーニ・ホールディングス(電通グループ)と資本業務提携 / 著書「お金を使わず、AIを働かせる『Dify』活用」(ぱる出版、3刷)/ Xフォロワー約2万人

テキトー教師
監修者テキトー教師(@tekitoo_T_cher

.AI 認定講師 / 教育×AIの専門家 / 累計300名以上にAI活用を指導 / 「テキトーに学ぶ」がモットーの実践派講師 / Xアカウント

Claude Codeのコンテキスト完全ガイド【2026年最新】:ウィンドウの仕組み・/compact・/contextコマンド・管理のベストプラクティス

Claude Codeのコンテキスト、なぜこんなに重要なのか

室谷室谷
今回はClaude Codeのコンテキスト管理の話をしましょう。これ、.AI(ドットエーアイ)のコミュニティでも「セッションが長くなると急に挙動がおかしくなる」という声がすごく多いんですよね。
テキトー教師テキトー教師
ほんとそうです。受講生さんがよく「前は動いてたのに急にバグが増えた」って言ってくるんですが、大体コンテキストが原因なんですよ。

コンテキストウィンドウがどういう仕組みで動いているかを知ると、急にClaude Codeの使い方が変わります。
室谷室谷
LlamaIndex創業者のJerry Liuも最近言ってたんですよね。「エージェントを使う上で最大の課題はセッション間のコンテキスト維持」と。

Claude Codeは1セッション内では最強クラスなんですが、そのコンテキスト管理を使いこなせていない人がほとんどなんですよね・・・
テキトー教師テキトー教師
この記事では、コンテキストウィンドウの基本的な仕組みから、/compact/contextコマンドの使い方、そしてClaude Codeが内部でどうコンテキストを管理しているかまで全部解説します。前回はClaude Codeの設定周りを扱いましたが、今回はコンテキストに特化して深掘りしていきます。

Claude Codeのコンテキストウィンドウとは

室谷室谷
まず基本から整理しましょう。コンテキストウィンドウって何かというと、Claude Codeがある瞬間に「見えている情報の全部」ですね。

会話履歴、読み込んだファイルの内容、コマンドの実行結果、CLAUDE.mdの内容、全部含みます。
テキトー教師テキトー教師
よく「記憶容量」と表現される人がいるんですが、「作業台の広さ」の方が近いと思いますよ。記憶ではなくて、今この瞬間に広げられる紙の枚数みたいな感じですね。
室谷室谷
その表現わかりやすいですね。そしてClaude Codeのコンテキストウィンドウは、現在最大20万トークン(Sonnet 4.5など)または100万トークン(Sonnet 4.6、Opus 4.6など)まであります。

ただ重要なのが、コンテキストが多ければ多いほど良いわけじゃないんですよ。
テキトー教師テキトー教師
これ、受講生さんが誤解しがちなポイントですね。「100万トークンあるなら全部詰め込めばいい」って思いがちですが、コンテキストが埋まっていくほどClaudeの精度が落ちる現象がある。

公式ドキュメントで「context rot(コンテキスト腐敗)」と呼ばれています。
室谷室谷
コンテキストが増えるほど、モデルが前の方の情報を「見失う」ようになっていくんですよね。だから「コンテキストウィンドウを最大限に活用する」ことと「コンテキストを適切に管理する」ことは全然別の話なんですよ。

コンテキストに何が入っているのか

テキトー教師テキトー教師
Claude Codeのセッションを始めたとき、実はタイプする前からかなりのトークンが消費されています。セッション開始時にコンテキストに自動で入るものを整理するとこうなります。
  • CLAUDE.md(プロジェクトルート・ホームディレクトリ・サブディレクトリ)
  • Auto memory(保存されたメモリ)
  • MCPツール名とスキルの説明文
  • システムプロンプト
室谷室谷
「何もしていないのに数千トークン消えてる」ってよく驚かれるんですが、これで理由がわかるんですよね。MYUUUのプロジェクトでもCLAUDE.mdが長くなりすぎて、セッション冒頭から数千トークン使ってたことがありましたよ・・・
テキトー教師テキトー教師
そのあとファイルを読み込むごとにどんどん増えていきます。ファイルのパスが一致するルールも自動でコンテキストに追加されますし、ツールの実行結果も全部入ります。
室谷室谷
公式ドキュメントに「Explore the context window」というインタラクティブなシミュレーターがあって、セッションがどう埋まっていくか視覚的に確認できます。で一目瞭然です。

コンテキストが埋まるとどうなるのか

Claude Codeの公式ドキュメント「Best Practices」のManage context aggressivelyセクション(公式サイトより)

テキトー教師テキトー教師
コンテキストが埋まり始めると、Claude Codeが自動でコンパクション(圧縮)を始めます。これが「突然挙動がおかしくなった」という体験の正体です。
室谷室谷
実はこれ、流出したClaude Codeのコードから内部の仕組みが判明してるんですが、3層のパイプラインになってるんですよ。
テキトー教師テキトー教師
3段階ですか。整理するとこうなります。

コンテキスト管理の3層パイプライン(MicroCompact→Session Memory Compact→Full Compact)

第1層: MicroCompact(マイクロコンパクト) 毎ターンのAPIリクエスト前に実行される軽量な圧縮。ツール結果の不要な部分を削除してトークンを節約します。会話の構造自体は変えないので、ほぼ気づかないレベルです。

第2層: Session Memory Compact(セッションメモリコンパクト) セッションメモリファイルから文脈を再構築します。モデルへのAPIコールが不要なため、コストが安いのが特徴です。

第3層: Full Compact(フルコンパクト) 会話全体を要約します。この段階になると、序盤の指示が失われることがあります。

室谷室谷
この3段階を知っていると「なぜ急にClaudeが前の指示を無視し始めたのか」が説明できますよね。フルコンパクトが走ったあと、CLAUDE.mdに書いていないことは消えてしまうんですよ。
テキトー教師テキトー教師
だからこそ「CLAUDE.mdに書く」という習慣が重要なんです。コンパクト後もCLAUDE.mdとauto memoryは自動で再インジェクションされますから。

コンパクト後に何が残り、何が消えるか

室谷室谷
公式ドキュメントに詳しい情報があるので整理しましょう。
仕組みコンパクト後の状態
システムプロンプト・出力スタイル変わらず維持される
プロジェクトルートのCLAUDE.mdディスクから再インジェクション
スコープなしのルールディスクから再インジェクション
Auto memoryディスクから再インジェクション
パス指定のルール(paths: フロントマター付き)消える(次にマッチするファイルを読むまで)
サブディレクトリのCLAUDE.md消える(そのディレクトリのファイルを読むまで)
呼び出したスキル本文再インジェクション(スキルごと5,000トークン上限)
テキトー教師テキトー教師
このテーブルの中で特に引っかかるのが「パス指定のルールはコンパクトで消える」という部分ですね。受講生さんで「セッション後半になると急にルールを守らなくなる」という人は、大体ここが原因です。
室谷室谷
全セッションで維持したいルールは、paths: フロントマターを外してプロジェクトルートのCLAUDE.mdに書かないといけないですよね。ここは細かいんですが、知っているかどうかで長時間セッションの品質が全然違ってきます。

/context コマンドでコンテキスト使用量を確認する

室谷室谷
実際にコンテキストがどのくらい使われているかを確認するには、セッション中に /context コマンドを打つだけです。カテゴリ別の内訳が表示されます。
テキトー教師テキトー教師
「どのファイルが何トークン食っているか」が一目でわかるので、コンテキストが重いと感じたときはまずこれで確認するのが基本ですね。
室谷室谷
MYUUUでも長いセッションになったときは必ず /context で確認するようにしています。「あ、このファイルが重い」「MCPのツール定義がかさばってる」とかすぐわかるので・・・
テキトー教師テキトー教師
もう一つ、/memory コマンドも地味に便利です。起動時にどのCLAUDE.mdとauto memoryが読み込まれたかを確認できます。

「なぜか指示が反映されない」というとき、実はそのCLAUDE.mdが読み込まれていなかった、というパターンが意外と多いので。
室谷室谷
あとMCPのコンテキストコストは /mcp コマンドで確認できますよ。MCPのツール定義はデフォルトで遅延読み込み(ツールが使われるまでコンテキストに入らない)になっているので、最初から大量にMCPを設定してもそこまで重くないんです。
テキトー教師テキトー教師
「MCPを入れすぎるとコンテキストが重くなる」という誤解、結構ありますよね。ツール名だけはコンテキストに入りますが、定義全体は使ったときだけ読み込まれます。

これはClaude CodeのTool Search機能によるものです。
室谷室谷
このツイートでも触れたんですが、MCPのTool Searchはコンテキストをかなりスリムにできるんですよ。以前は「MCPが重すぎて会話が成立しない」という問題があったんですが、それが解消されています。

/compact でコンテキストを手動管理する

テキトー教師テキトー教師
自動コンパクションを待つのではなく、手動でコンテキストを圧縮したいときは /compact コマンドを使います。フォーカスを指定できるのが便利です。
# 基本的な使い方
/compact

# フォーカスを指定して圧縮
/compact focus on the API changes
/compact focus on the authentication flow
室谷室谷
このフォーカス指定が重要で、「何を優先的に残してほしいか」を指示できます。指定しないと、Claudeが自動判断で要約しますが、重要な部分が削られるリスクがある・・・
テキトー教師テキトー教師
長いセッションになったとき、「区切りのいいタイミングで積極的に /compact を打つ」を習慣にすると、後半の品質が安定します。講座では「1〜2時間作業したら/compactする」と教えています。
室谷室谷
あと、CLAUDE.mdに「Compact Instructions」セクションを設けておくと、自動コンパクションの際に優先して残してほしい内容を事前に指定できます。MYUUUでも取り入れています。

CLAUDE.mdにCompact Instructionsを追加する方法

テキトー教師テキトー教師
具体的にはCLAUDE.mdの中にこう書きます。
# Compact Instructions

このプロジェクトでの作業において、コンパクション時に以下の情報を優先して残してください:
- 現在作業中のファイルと変更内容
- エラーメッセージとその対処法
- 採用したアーキテクチャの決定事項
- テストの状態(何が通って何が失敗しているか)
室谷室谷
このCompact Instructionsは、自動コンパクションが走ったときも、/compactを手動で実行したときも、どちらにも効きます。長期間のプロジェクトでは特に有効ですね。

コンテキストを節約するベストプラクティス

室谷室谷
じゃあ具体的にどうすればコンテキストを効率よく使えるのか、という話をしましょう。一番効くのはサブエージェントの活用だと思いますね。
テキトー教師テキトー教師
サブエージェントは独立したコンテキストウィンドウで動くんですよね。メインセッションとは完全に分離されているので、サブエージェントが大量のファイルを読み込んでも、メインのコンテキストは全く影響を受けない。
室谷室谷
「調査作業はサブエージェントに投げて、メインセッションは実装に集中」という分け方が理想です。MYUUUでも、ドキュメント調査やリファクタリング計画の立案はサブエージェントに任せています。

戻ってくるのは要約だけですから、コンテキストコストが最小限になる・・・
テキトー教師テキトー教師
スキルも同じ発想ですね。スキルはセッション開始時に説明文だけが読み込まれて、実際に呼び出されたときにだけフル内容がコンテキストに入ります。

頻繁に使わないスキルは disable-model-invocation: true を設定しておくと、説明文すらコンテキストに入らなくなります。

コンテキスト節約のテクニック一覧

室谷室谷
実践的なテクニックをまとめるとこうなります。
  • CLAUDE.mdは必要最小限に: 長すぎるCLAUDE.mdはそれ自体がコンテキストの重荷になる
  • 調査作業はサブエージェントに: 「調べてまとめて」という作業は別コンテキストで実行
  • 定期的に/compactを実行: 区切りのいいタイミングで手動圧縮
  • 読むファイルを絞る: @ファイル名 で必要なファイルだけを明示的に指定
  • スキルはon-demand: 使わないスキルは設定で遅延読み込みに
テキトー教師テキトー教師
ファイルを絞るという点では、Claude Codeの @ 指定をうまく使うのが大事です。「このディレクトリを全部読んでほしい」ではなく「このファイルとこのファイルを読んで」という指示の方が、トークン消費が抑えられます。
室谷室谷
あと地味に効くのが、CLAUDE.mdの整理です。公式ドキュメントに「各行について、これを削ったらClaudeがミスをするか?と問いかけよ。

しないなら削れ」という指針があって、これに従って定期的に削ぎ落とすと結構スリムになります。

セッションをまたぐコンテキストの維持

テキトー教師テキトー教師
コンテキストウィンドウはセッションが終わると消えますが、セッションをまたいで情報を引き継ぐ方法もあります。整理すると、①CLAUDE.md、②Auto memory、③セッション再開(claude --continue)の3つです。
室谷室谷
CLAUDE.mdは人間が意図的に書く「永続的な指示書」ですね。「このプロジェクトでは必ずTypeScriptを使う」とか「コミットメッセージはConventional Commitsで」とか、いつでも有効にしたいルールを書きます。
テキトー教師テキトー教師
Auto memoryはClaudeが自動でメモを取る機能です。あなたがClaudeを修正したり好みを伝えたりすると、Claudeが自分でメモに書き残します。

次のセッションで自動的に読み込まれます。/memory コマンドで今どんなメモが保存されているかを確認・編集できるので、定期的にチェックするといいですよ。
室谷室谷
claude --continue でセッションを再開すると、前のセッションの会話履歴が復元されます。ただしセッション固有の権限設定は引き継がれないので注意が必要です・・・
テキトー教師テキトー教師
もう一つ便利なのが --fork-session フラグです。現在のセッションをフォーク(分岐)させて、別のアプローチを試せます。

「この方向でやってみて、ダメなら元に戻す」という使い方ができます。
室谷室谷
セッションのデータは ~/.claude/projects/ 以下にJSONL形式で保存されています。claude --resume でセッションIDを選んで再開することもできますよ。

コンテキストエンジニアリングという考え方

テキトー教師テキトー教師
最近「コンテキストエンジニアリング」という言葉が出てきていますが、これはつまり「何をコンテキストに入れるか」を意図的に設計するということです。
室谷室谷
プロンプトエンジニアリングが「どう指示するか」だとしたら、コンテキストエンジニアリングは「何を見せるか」を設計する、という感じですね。エージェントが複雑になるほど、ここが品質の決め手になってくるんですよ。
テキトー教師テキトー教師
Anthropicの公式ブログに「Effective Context Engineering for AI Agents」という記事があるんですが、核心を一言で言うと「コンテキストの量よりも質」です。むやみに長くするのではなく、Claudeが判断するのに本当に必要な情報だけを厳選して入れる。
室谷室谷
この考え方をClaude Codeの使い方に当てはめると、「CLAUDE.mdに全部書けばいい」は間違いで、「今の作業に必要な情報だけを適切に提供する」が正解なんですよね。
テキトー教師テキトー教師
Plan Mode(Shift+Tabでの切り替え)も、コンテキスト管理の観点では有効です。まず読み取りだけでファイルを探索して、実装フェーズに入ってから書き込み権限を使う、という分け方をすると、ムダなツール実行が減ります。
室谷室谷
探索フェーズのツール実行結果が少なければ、コンテキストの消費も減りますからね。「先に調べてから実装」という順序は、コードの品質だけじゃなくてコンテキスト管理にも直結しているんですよ。

コンテキストエンジニアリングの実践チェックリスト

テキトー教師テキトー教師
実際にやってほしいことをまとめます。
  • CLAUDE.mdを月1回見直してスリムにする
  • 全セッションで必要なルールはpaths:フロントマターを付けない
  • 長時間作業では定期的に /context でチェック
  • 調査・実装を分けてサブエージェントを活用
  • Compact Instructionsをプロジェクトに応じて書く
  • Auto memoryの内容を /memory で定期確認・整理する
室谷室谷
この6項目、一つひとつは小さいんですが、全部やってると長時間のセッションで体感できるくらい精度が変わりますよ。

よくある質問

テキトー教師テキトー教師
最後に、コミュニティでよく出る質問に答えていきましょう。

Q: コンテキストウィンドウの残量はどこで確認できますか?

室谷室谷
/context コマンドで確認できます。カテゴリ別の使用量と残りのトークン数が表示されます。

またステータスバーにも残量が表示されます。

Q: 「Auto-compaction stops with a thrashing error」が出ました。どうすれば?

テキトー教師テキトー教師
単一のファイルやツール出力が大きすぎて、コンパクションしても直後にコンテキストが埋まってしまう状態です。そのファイルを読み込むのをやめるか、新しいセッションを始めて最初から必要なものだけを読み込むのが解決策です。

Q: コンテキストウィンドウを100万トークンまで使いたいのですが、Sonnet 4.6に切り替えるにはどうすれば?

室谷室谷
セッション中に /model コマンドを打つと切り替えられます。あるいは claude --model claude-sonnet-4-6 で起動します。

100万トークンコンテキストはSonnet 4.6とOpus 4.6で使えます。

Q: CLAUDE.mdが長すぎると何が問題なのですか?

テキトー教師テキトー教師
二つ問題があります。一つはセッション冒頭から多くのトークンが消費される点。

もう一つは、長いCLAUDE.mdだと指示がクロードに無視されやすくなる点です。公式ドキュメントにも「bloated CLAUDE.md files cause Claude to ignore your actual instructions」と明記されています。

まとめ

室谷室谷
コンテキスト管理は、Claude Codeを本格的に使う上で避けて通れないテーマですね。単に「コンテキストウィンドウが広い」ということと「コンテキストを上手に使う」ことは全然別の話で、後者を意識するだけで体感が大きく変わります。
テキトー教師テキトー教師
今回のポイントを振り返ると、①コンテキストに何が入るかを把握する、②自動コンパクションの仕組みを知る、③/context/compactを定期的に使う、④CLAUDE.mdを適切に管理する、この4点ですね。
室谷室谷
コンテキストエンジニアリングという視点で見ると、.AIのコミュニティやMYUUUのチームでも、ここを意識し始めてからAIエージェントの精度が安定してきています。Claude Codeを使い込んでいる人ほど、ここにこだわってる印象ですよ。
テキトー教師テキトー教師
次はサブエージェントを使ったより高度な分業の話をしていきましょう。コンテキスト管理と合わせて理解すると、Claude Codeの使い方が一段階上がります。

出典

.AI TIMES一覧に戻る