CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/Claude Code
Claude Code/2026-05-31中級

Claude Code のコンテキスト上限エラーが出たときの原因と対処

長時間の Claude Code セッションでコンテキスト上限に達したとき、/compact と --continue の使い分けや、セッション分割の設計パターンを実体験から解説します。

Claude Code198コンテキストウィンドウ2エラー対処2トラブルシューティング37compact

2014年から個人開発を続けてきた私が、Claude Code を日常的に使うようになって最初に痛感したトラブルがあります。それは「突然セッションが止まり、これ以上続けられないと言われる」状況です。

Dolice Labs の4サイト分のコンテンツパイプライン構築でも、AdMob の収益データ集計スクリプトを組んでいるときでも、長時間の作業になると避けて通れない問題です。一度原因と対処を整理しておくと、長時間のコーディングセッションがずっとスムーズになります。

どんなエラーが出るか

Claude Code がコンテキスト上限に近づいたり超えたりすると、いくつかのパターンで警告や停止が起きます。

警告フェーズ(上限の 80% 付近):

Claude's context window is getting full.
Use /compact to compress the conversation.

完全停止(上限超過):

This conversation is too long to continue.
Please start a new conversation or use /compact.

API レベルで止まった場合は、ターミナルにエラーが落ちます:

{
  "error": {
    "type": "invalid_request_error",
    "message": "prompt is too long: 210741 tokens > 200000 maximum"
  }
}

なぜ上限に達するのか

Claude Sonnet 4 系のコンテキストウィンドウは 200,000 トークンです。Claude Code のセッション中、以下のすべてがこの枠に積み上がります。

  • 会話履歴: 自分の指示と Claude の応答の全文
  • ツール実行結果: Read したファイルの内容、Bash コマンドの出力
  • CLAUDE.md: プロジェクト指示ファイルの全文(セッション開始時に毎回読み込まれる)
  • 過去の編集履歴: Edit / Write ツールで扱ったファイルの before/after

私が最初にこれを痛感したのは、複数のサイトに渡るコード修正を1セッションでやろうとしたときです。src/ 以下の 10 ファイルを連続で Read させて分析させただけで、1時間経たずに 150,000 トークンを超えていました。

解決策 1: /compact で会話を圧縮する

セッションを終了させずに続けたいときは、/compact コマンドが第一選択です。

/compact

このコマンドを実行すると、Claude が会話履歴を要約に置き換えてコンテキストを大幅に削減します。完了済みのファイル読み取り結果、試行錯誤のやり取りなどは要約に圧縮され、トークン数が一気に減ります。

確認が表示されることがある: 圧縮前に「この要約で続けてよいですか?」というプロンプトが出ることがあります。重要な決定事項や現在のファイルの状態が要約に含まれているか確認してから進んでください。

注意: /compact は不可逆です。一度圧縮すると元の詳細な会話には戻れません。

解決策 2: 新しいセッションで --continue する

作業が一段落ついた場面なら、クリーンな新セッションを立ち上げて続きを始める方法が確実です。

# 直前のセッションを続ける(最後のセッションIDを自動参照)
claude --continue
 
# 特定のセッションIDを指定して再開
claude --resume <session-id>
 
# セッション一覧を確認する
claude --list-sessions

--continue は前回終了したセッションのサマリーを引き継いで新しい会話を開始します。ファイルの詳細内容は引き継がれないため、重要なコンテキスト(「どのファイルのどの関数を修正していたか」など)は最初のメッセージで明示して伝え直すことが必要です。

解決策 3: タスクを小さく分割する設計

根本的な対処は、大きな作業を独立した小さなセッションに分けることです。私が採用している方針をいくつか挙げます。

1セッション = 1コミット分の変更に絞る

「このリポジトリの全体的な品質を改善して」ではなく「src/lib/content.tsgetArticle 関数の戻り値に highlights フィールドを追加して」のように、セッション開始時のスコープを小さく定義します。

必要なファイルだけを指定する

# 悪い例(全ファイルをコンテキストに詰め込む)
# "src/ フォルダ全体を見て問題を探して"
 
# 良い例(対象を絞ってから指示)
# "src/lib/content.ts を見て、getArticle 関数の型定義を確認して"

中間成果物はこまめにコミットする

セッションが強制終了してもコミット済みの内容は残ります。「ここまで完了」というチェックポイントを細かく作っておくと、次のセッションで git log --oneline -5 を見せるだけで状況を伝え直せます。

予防策: コンテキストを節約する習慣

長時間セッションをこなすうちに、これらを意識するようになりました。

CLAUDE.md はコンパクトに保つ

プロジェクトの指示ファイルが膨らむとセッション開始時から大量のトークンを消費します。実際に使わなくなったルールや古い設計メモは定期的に削除するか、別ファイルに分離するのが効果的です。

コマンド出力を絞り込む

# トークンを消費する例
git log --stat   # 各コミットのファイル変更一覧まで出る
 
# 節約版
git log --oneline -10   # 直近10件のサマリーだけ

大きなファイルは必要な行数だけ読む

Claude Code の Read ツールは offsetlimit パラメータで読み込む行数を絞れます。「ファイル全体を見せて」ではなく「150〜250行目だけ見せて」のように指示するとトークン消費を抑えられます。

/clear との違いを把握しておく

/compact と似たコマンドに /clear があります。

  • /compact: 会話履歴を要約に置き換える(コンテキストを維持したまま削減)
  • /clear: 会話履歴を完全にリセットする(まっさらな状態に戻る)

途中まで積み上げた判断経緯を消してはいけないとき(設計の議論中など)は /compact を、新しい独立したタスクに切り替えるときは /clear が向いています。

まとめ

コンテキスト上限に達したとき、対処の優先順位はこうなります。

作業の続行が必要 → /compact でその場で圧縮する。 一段落ついている → --continue または --resume で新セッションを開始する。 長期的な改善 → タスクの粒度を小さくし、こまめにコミットする習慣をつける。

「1セッション = 1コミット分の変更」という意識で作業すると、コンテキスト問題だけでなく、作業の見通しもよくなります。実際にこの方針に切り替えてから、途中停止によるロスが大幅に減りました。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Claude Code2026-07-01
Claude Code をアップデートしたら hook が発火しなくなった — ハイフン入り matcher の厳密一致化(v2.1.195)
Claude Code v2.1.195 でハイフンを含む hook matcher が部分一致から厳密一致に変わり、既存の PreToolUse フックが静かに発火しなくなりました。原因の切り分けと、壊れない matcher の書き方をまとめます。
Claude Code2026-05-30
git の detected dubious ownership が出てコマンドが止まるときの原因と対処
Claude Code やコンテナ・CI でgitを動かすと突然出る「detected dubious ownership in repository」の原因を整理し、safe.directory設定から所有権の根本対処までを実例で解説します。
Claude Code2026-05-27
Claude Code Bash ツールで /tmp が Permission denied になる時の対処 — $HOME/repos フォールバックパターン
Claude Code のサンドボックス Bash で git clone が `Permission denied` で止まる症状の原因と、$HOME/repos へ自動退避させる実装パターンを、4サイト並行運用での実体験とともに整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →