導入
ClaudeCodeで作業を進めていると、ある日突然「Context length exceeded」というエラーが表示され、それ以上会話を続けられなくなることがあります。エンジニアではない方からすると、「コンテキストって何?」「上限って何のこと?」と戸惑うことでしょう。実はこれはClaudeCodeの仕様上、誰もが必ず遭遇するメッセージです。重要なのは「コンテキストの仕組みを理解し、適切に管理する習慣を身につけること」です。本記事では、コンテキストの基本概念から、/compactコマンドの使い方、/clearとの違い、自動圧縮の設定方法、効率的な会話管理術まで、初心者の方が今日から実践できる内容をやさしく解説します。読み終わる頃には、コンテキスト上限に怯えることなく、ClaudeCodeを長時間快適に使いこなせるようになります。
結論
コンテキスト上限を超えた時の最善策は、「/compactコマンドで会話を圧縮する」ことです。/compactは過去のやり取りを要約として残すため、文脈を保ったまま作業を続けられます。一方、/clearは会話を完全に消去するコマンドなので、状況が大きく変わる時にだけ使います。両者の使い分けが、長時間作業のカギです。さらに快適に使うには、設定ファイルで「自動圧縮(autoCompact)」を有効にしておきましょう。コンテキスト使用率が一定を超えたら自動で圧縮が走るので、手動で気にする必要がなくなります。加えて、(1)タスクごとにセッションを分ける、(2)CLAUDE.mdに共通情報を集約する、(3)無駄な情報を入れない、という3つの習慣を持てば、そもそも上限に達する頻度自体を減らせます。本記事ではこれらをすべて詳しく解説します。
コンテキストとは何か?
コンテキストとは、ClaudeCodeが「今この瞬間に覚えているすべての情報」のことです。具体的には、あなたが入力した指示、AIが返した回答、読み込んだファイル、システムプロンプトなど、現在のセッション中に発生したやり取りすべてが含まれます。
人間でいえば「短期記憶」のようなものです。会話中はその内容を覚えていますが、容量に限りがあります。ClaudeCodeのコンテキストも同じで、「コンテキストウィンドウ」と呼ばれる上限まで情報を保持できます。Claude Opusの場合、数十万トークン規模の容量があります。
コンテキストに含まれる情報:
- ユーザーの入力(指示・質問)
- AIの応答
- 読み込まれたファイルの内容
- システムプロンプト(裏で設定された指示)
- 実行されたコマンドの結果
- CLAUDE.md などの自動読み込みファイル
このコンテキストの中身が「トークン」という単位で計算され、上限を超えるとエラーになります。長いコードを何度も貼り付けたり、長時間議論を続けたりすると、徐々に上限に近づいていきます。
分かりやすい例え:
コンテキスト = 机の広さ
書類(情報) = 紙の山
机が狭くなれば、新しい書類を置く場所がなくなる
→ /compact = 書類を要約して薄くする
→ /clear = 机を一度空にする
このイメージを持っておくと、後の説明が理解しやすくなります。
コンテキスト上限を超えるとどうなる?
コンテキストが上限に達すると、ClaudeCodeは新しい入力を受け付けられなくなります。具体的には以下のようなエラーが表示されます。
Error: This conversation has exceeded the context limit.
Please use /compact to reduce context size,
or /clear to start fresh.
この時点で会話そのものは止まりますが、ファイルへの変更は保存済みなので安心してください。失われるのは「これからの続き」だけです。
ただし、エラーが出る直前から応答品質が低下する傾向があります。コンテキストが満杯に近づくと、AIは古い情報を「忘れた」ように振る舞ったり、応答がぼんやりしてきたりします。上限ぎりぎりで作業すると、品質と速度の両方が悪化するので、早めに圧縮するのが賢明です。
品質低下のサイン:
- 「先ほど話した〇〇について」が伝わらない
- 同じ説明を求められる
- 応答が以前より曖昧になる
- ファイル参照を間違える
- 応答速度が明らかに遅い
これらのサインに気づいたら、上限を待たずに/compactを実行しましょう。
/compactコマンドの使い方
/compactはClaudeCodeの中で最も頻繁に使うコマンドの1つです。使い方は驚くほどシンプルで、プロンプト入力欄に/compactと入力してEnterを押すだけ。
> /compact
Compacting conversation...
Reduced from 85,000 tokens to 12,000 tokens.
Compacting complete.
圧縮前後のトークン数が表示され、どれだけ容量が空いたか分かります。圧縮後はそのまま会話を続けられます。
/compactの優れた点は、「単なる削除」ではなく「要約」を行ってくれることです。過去の議論の要点や決定事項は保持され、不要な詳細だけが削ぎ落とされます。たとえば「設計を3案検討して2案目に決めた」という議論があった場合、3案の細かい比較は消えても「2案目に決定」という結論は残ります。
圧縮の効果例:
圧縮前:
「ユーザー認証について検討。Aさんは案1を推奨、Bさんは案2を推奨。
案1のメリットは…、デメリットは…、案2のメリットは…、デメリットは…。
最終的に案2を採用。」
圧縮後:
「ユーザー認証は案2(メール+OTP方式)を採用済み」
このように、決定事項だけが残るイメージです。
特定の文脈を残したい場合は、ヒントを添えられます。
> /compact API設計とDBスキーマの議論は残して
これで指定領域を優先的に保持してくれます。
/compactと/clearの違い
/compactと/clearは似ているようで、まったく違う動作をします。混同しないよう、それぞれの特徴を押さえましょう。
/compact の特徴:
- 過去のやり取りを「要約」して残す
- 文脈は保持される
- 直前まで話していたタスクを継続可能
- トークン消費を減らせる
/clear の特徴:
- 過去のやり取りを「完全削除」する
- 文脈はゼロにリセット
- 新しいタスクを始めるのに最適
- コンテキストを最大限解放できる
使い分けの基本は以下の通りです。
こんな時は /compact:
○ 今のタスクを続けたいが容量を空けたい
○ 設計議論が終わって実装に入りたい
○ 単に応答が遅くなってきた
こんな時は /clear:
○ 全く別のタスクを始める
○ 試行錯誤の失敗ログが多すぎる
○ AIが間違った前提で動いている
/clearは強力ですが、一度実行すると過去のやり取りは戻せません。重要な決定事項やコードは、必ずCLAUDE.mdやメモに保存してから実行しましょう。
/clear 実行前の準備:
1. 重要な議論をCLAUDE.mdに転記
2. 完成したコードを保存
3. 続けるタスクがあれば概要を別途記録
4. /clear 実行
5. 必要に応じて要点を再度AIに伝える
自動圧縮(auto-compact)の設定
毎回手動で/compactを実行するのは面倒です。ClaudeCodeには「自動圧縮」機能があり、有効化すれば一定のタイミングで自動的に圧縮してくれます。
設定ファイル~/.claude/settings.jsonに以下を追記します。
{
"autoCompact": true,
"autoCompactThreshold": 0.7
}
autoCompactThresholdはコンテキスト使用率が何割を超えたら自動圧縮するかの設定です。0.7なら70%超えで起動します。お好みで0.6(早めに圧縮)や0.8(ぎりぎりまで使う)に調整してください。
設定後はClaudeCodeを再起動すれば有効になります。
推奨設定値:
- 厳しめ:0.6(早めに圧縮、安定重視)
- 標準:0.7(バランス型)
- 緩め:0.8(ぎりぎりまで使う、上級者向け)
自動圧縮が走ると画面に通知が表示されるので、何が起きたか分かります。
[Auto-Compact] Context at 72% capacity.
Compacting conversation...
Reduced to 35% capacity. Continue working.
初心者の方には自動圧縮の有効化を強くおすすめします。「気づかぬうちに上限到達」を防げます。
効率的な会話管理術
そもそも上限に達しにくくする工夫も大切です。日々の習慣を少し変えるだけで、コンテキスト消費は大きく変わります。
1つ目は「タスクごとにセッションを分ける」ことです。「認証機能の実装」「決済機能の実装」「管理画面の実装」を1つのセッションで全部やろうとすると、すぐ上限です。機能ごとにClaudeCodeを再起動するか/clearして、別セッションとして扱いましょう。
2つ目は「ファイル全文を渡さない」ことです。1,000行のファイル全体ではなく、必要な30行だけを渡すよう心がけます。
良い指示の例:
「src/app/page.tsx の 50〜80 行目を見て、
ボタンのスタイルを修正してください」
3つ目は「冗長な前置きを省く」ことです。「お疲れ様です、いつもありがとうございます、お忙しいところ恐縮ですが…」という前置きはトークンの無駄です。AIに礼儀は不要なので、要件を端的に伝えましょう。
4つ目は「ログやエラーは要点だけ抜粋」することです。スタックトレース全体ではなく、エラーメッセージの本質的な部分だけをコピペします。
ログの抜粋例:
○ TypeError: Cannot read property 'name' of undefined
at UserCard (src/components/UserCard.tsx:15)
× (数百行のスタックトレース全部)
5つ目は「CLAUDE.mdに共通情報を集約する」ことです。プロジェクトの概要、使用技術、コーディング規約などを書いておけば、毎回説明する必要がなくなります。
CLAUDE.mdの活用方法
CLAUDE.mdは、ClaudeCodeが新セッション開始時に自動で読み込む「永続的なメモ」です。ここに重要な情報を書いておけば、コンテキストを節約しつつ、文脈を維持できます。
プロジェクトのルートにCLAUDE.mdを作成し、以下のような内容を書きます。
# プロジェクト概要
社内向け問い合わせ管理ツール。
非エンジニアのスタッフが日々の問い合わせを管理する。
# 技術スタック
- Next.js(App Router)
- Cloudflare Workers
- Cloudflare D1(DB)
- Cloudflare Access(認証)
# コーディング規約
- TypeScript必須
- コメントは日本語
- ファイル名はケバブケース
- コンポーネント名はパスカルケース
# 命名規約
- ボタンコンポーネント:Button.tsx
- APIエンドポイント:/api/[resource]/route.ts
# やってはいけないこと
- APIキーをコードに直接書かない
- 認証を独自実装しない
- preview_urlsを有効にしない
このように書いておけば、毎回のセッションで「うちはNext.jsで…」と説明する必要がなくなり、その分のトークンを節約できます。
ただしCLAUDE.mdが長すぎると逆効果です。1,000〜3,000文字程度に抑えるのが理想です。詳細な仕様は別ファイルに分けて、必要な時だけClaudeCodeに渡しましょう。
CLAUDE.md に書くべきこと:
○ プロジェクト概要(1〜3行)
○ 技術スタック
○ 重要な規約
○ 守るべきセキュリティルール
CLAUDE.md に書かないこと:
× 詳細なAPI仕様(別ファイルへ)
× 全画面の説明(別ファイルへ)
× 一時的なTODOリスト
× 過去の議論の詳細
コンテキスト使用率を可視化する
「自分が今どれくらいコンテキストを使っているか」を常に意識すると、上限到達を未然に防げます。ClaudeCodeにはコンテキスト使用率を確認する方法がいくつかあります。
最も簡単なのが/costや/usageコマンドです。
> /cost
Context usage: 45%
Total tokens used: 23,000 / 50,000
Estimated cost: $0.42
このコマンドで現在のコンテキスト使用率が一目で分かります。
バージョンによっては、画面下部やステータスバーに使用率が常時表示されるものもあります。これを見ながら作業すれば、いつ/compactすべきか判断しやすくなります。
使用率の目安と行動:
0〜30%:余裕、気にせず作業
30〜60%:標準範囲、無駄な情報を入れない意識
60〜80%:そろそろ /compact を検討
80〜95%:すぐに /compact 実行
95%以上:/clear も視野に
自動圧縮を有効にしておけば、これらを意識しなくても自動で処理されますが、感覚として把握しておくと役立ちます。
トラブルシューティング
ここまで対策しても問題が起きた場合のトラブルシューティングを紹介します。
1つ目は「/compactしても効果が薄い」場合です。圧縮率が悪い時は、(1)もう一度/compactを実行する、(2)ヒントを添えて再実行する、(3)/clearに切り替える、を順に試します。
> /compact
(効果が小さい場合)
> /compact 最近10件のやり取りだけ残して詳細を圧縮
2つ目は「圧縮後に文脈が失われた」場合です。重要な情報が消えてしまった時は、忘れずに再度伝えましょう。
> /compact 後の補足:
「先ほど決めた『認証はCloudflare Access』『DBはD1』を踏まえて作業継続して」
3つ目は「自動圧縮が頻繁すぎる」場合です。閾値を上げて調整します。
{
"autoCompactThreshold": 0.85
}
4つ目は「自動圧縮で意図しない情報が消える」場合です。重要なら手動圧縮に切り替え、ヒントを添えてコントロールしましょう。
{
"autoCompact": false
}
FAQ
Q1. コンテキストの上限は何トークンですか?
Claude Opusの場合、数十万トークン規模です。日本語で換算すると概ね10万〜30万文字程度に相当しますが、ファイル読み込みなどを含むため、実際にはもっと早く上限に近づきます。
Q2. /compactでファイルへの変更も消えますか?
いいえ、消えません。/compactが圧縮するのは「会話履歴」だけです。ファイルへの編集はディスクに保存されているため、影響を受けません。
Q3. /clearを実行した後、過去の会話を復元できますか?
復元はできません。/clear実行前に、必要な情報をCLAUDE.mdやメモにバックアップしておくことが重要です。
Q4. 自動圧縮中に作業を続けても大丈夫ですか?
圧縮処理中は新しい入力が一時的に受け付けられない場合があります。圧縮完了の通知を待ってから操作を再開しましょう。長くても数秒程度で完了します。
Q5. コンテキスト上限はプランで違いますか?
モデル自体の上限は同じですが、プランによって「1日に使えるトークン総量」などレート制限が変わります。プランごとの詳細は契約画面で確認してください。
Q6. CLAUDE.mdが大きくなりすぎたらどうすれば?
複数ファイルに分割するか、本当に必要な情報だけに絞りましょう。「セキュリティルール」「コーディング規約」「技術スタック」のような大カテゴリだけCLAUDE.mdに残し、詳細仕様は別ファイル(docs/api-spec.mdなど)に分けるのがおすすめです。
Q7. 圧縮を繰り返すと品質が落ちますか?
可能性はあります。圧縮は要約なので、繰り返すうちに細部の情報が薄まっていきます。重要な決定は適宜CLAUDE.mdに転記しておけば、品質を維持できます。
まとめ
ClaudeCodeのコンテキスト上限は「乗り越えられないハードル」ではなく、「適切に管理すべきリソース」です。/compactで圧縮し、/clearでリセットし、自動圧縮で省力化し、CLAUDE.mdで情報を集約する。この4つの基本を押さえれば、上限を恐れず長時間の作業を続けられます。特に初心者の方は、まず「自動圧縮の有効化」と「タスクごとのセッション分割」から始めてみてください。それだけでも体感は大きく変わります。コンテキスト管理は、慣れれば自然にできるようになる「習慣」です。今日からひとつずつ取り入れて、ClaudeCodeとの長い付き合いを快適にしていきましょう。