CLAUDE LABEN
AUTO — Claude Managed Agents の権限ポリシーに auto が入りました。サーバーが呼び出しごとに評価し、実行・拒否・承認待ちのいずれかを選びますEVAL — agent.tool_use と agent.mcp_tool_use が evaluation フィールドを持ち、その呼び出しがどう評価されたのかを報告しますCONNECT — ant beta:sessions connect で、走っているセッションに手元のターミナルから入れます。--web を渡すと Console のビューアをローカルで配信しますCOWORK — Cowork は v1.49585.0 でランタイムが Electron 44 へ上がりました。macOS 13 Ventura 以降が必須になっていますLIMIT — 5時間の利用上限に達して保留されたメッセージが、制限のリセット時に自動で送信されるようになりました。編集もキャンセルもできますCONFIG — 管理設定の非推奨フィールドに対する警告が9月10日から出始めました。旧表記の受付は10月7日 正午 太平洋時間までですAUTO — Claude Managed Agents の権限ポリシーに auto が入りました。サーバーが呼び出しごとに評価し、実行・拒否・承認待ちのいずれかを選びますEVAL — agent.tool_use と agent.mcp_tool_use が evaluation フィールドを持ち、その呼び出しがどう評価されたのかを報告しますCONNECT — ant beta:sessions connect で、走っているセッションに手元のターミナルから入れます。--web を渡すと Console のビューアをローカルで配信しますCOWORK — Cowork は v1.49585.0 でランタイムが Electron 44 へ上がりました。macOS 13 Ventura 以降が必須になっていますLIMIT — 5時間の利用上限に達して保留されたメッセージが、制限のリセット時に自動で送信されるようになりました。編集もキャンセルもできますCONFIG — 管理設定の非推奨フィールドに対する警告が9月10日から出始めました。旧表記の受付は10月7日 正午 太平洋時間までです
記事一覧/Claude Code
Claude Code/2026-05-31中級

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

長時間のClaude Codeセッションでコンテキスト上限に達して止まったときの対処を実体験から解説します。/compactによる会話圧縮と--continueでの再開の使い分け、タスクを小さく分割する設計、コンテキストを節約する習慣、/clearとの違いまで順に整理しました。

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

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/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

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

関連記事

Claude Code2026-09-10
「Not signed in to the Cloud gateway」で全リクエストが止まる朝に、設定より先に版を見ます
Claude Code 2.1.265 でゲートウェイ・プロキシ構成が全リクエスト失敗した回帰を入口に、認証の入力面を一枚に並べて「設定と版のどちらが変わったか」を数秒で切り分ける小さな手順をまとめます。
Claude Code2026-09-04
~/.claude.json の巻き戻しは v2.1.259 で直りました。消えた設定は自分で戻します
同時に走らせたセッションが ~/.claude.json を互いに巻き戻す不具合が v2.1.259 で修正されました。消えた信頼設定と MCP を洗い出して戻すまでを、キー集合の差分を取る小さなスクリプトとあわせて書き残します。
Claude Code2026-09-01
heredoc のクォートを1つ落とすと、ログに書いた金額や日付が別物になります
未クォートの heredoc は本文の変数とバックティックを実行します。実測した4通りの書き換わり方、3種類のクォート記法の比較、プレースホルダと sed で値を安全に埋める手順、既存スクリプトを棚卸しする検出コードまでをまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます