目次
Claude Code や API で、こんなエラーに出くわして手が止まったことはないだろうか:
Prompt is too long
# API の場合はより具体的に:
prompt is too long: 233153 tokens > 200000 maximum
「プロンプトが長すぎる」——つまり あなたが送ろうとしている入力(会話履歴+添付ファイル+ツール定義など)が、モデルのコンテキスト窓(入力の上限)を超えた状態だ。API では 233153 tokens > 200000 maximum のように 「何トークンで、上限が何トークンか」まで教えてくれる。これは 使用量制限(usage limit)とは別物——枠を使い切ったのではなく、1回の入力が物理的に大きすぎるのだ。
先に要点を3つ。① 原因は「入力が窓に入りきらない」こと。出力が途中で切れる max_tokens とも、プラン枠の usage limit とも違う。② Claude Code は通常 auto-compact(自動要約)で自動回避するので、出たときは“窓を一気に超えた”か自動圧縮を切っている。③ 最速の対処は /compact で履歴を要約、/clear で作り直し、巨大な読み込みはサブエージェントに逃がす。本記事では、何が窓を埋めるのか・窓のサイズ(200K と 1M)・直し方・紛らわしいエラーとの違いまでを、公式情報をもとに整理する。
「窓」が満杯になるまで
— 何がコンテキストを埋め、いつ溢れるのか
積み上がって 100% に達すると…
too long
通常は auto-compact が
溢れる前に自動要約
これは「入力の窓」が満杯という意味。使用量制限(quota)でも、出力切れ(max_tokens)でもない。
※積み上げの割合はイメージ。実際の内訳は /context で確認できる。
1. このエラーは何を言っているのか
AIモデルには 「コンテキスト窓(context window)」という入力の上限がある。これは 「1回のやり取りで読み込める情報量の最大値」で、トークン(≒単語の断片)で数える。Prompt is too long は、あなたが送ろうとした入力の合計トークン数が、その窓を超えたという意味だ。API ならご丁寧に 233153 tokens > 200000 maximum(送ったのは233,153トークン、上限は200,000)と数字まで出る。
重要なのは 「これは入力側の話」だという点。コンテキスト窓は 会話履歴・添付や読み込んだファイル・ツールの実行結果・システムプロンプト・MCP のツール定義などをすべて合算する。長い会話を続けたり、巨大なファイルを丸ごと読ませたり、大量のツール出力が溜まったりすると、じわじわ窓が埋まり、ある瞬間に溢れる。コンテキスト窓そのものの概念は コンテキストウィンドウとは で詳しく解説している。
なお Claude Code は通常、auto-compact(自動要約)が既定でオンになっており、窓が満杯に近づくと自動で会話履歴を要約して空ける。だから普段はこのエラーを見ずに済む。それでも出る場合は、① 一度の入力で窓を一気に超えた(巨大ファイルの貼り付け等)か、② auto-compact を無効化(DISABLE_AUTO_COMPACT)しているかのどちらかが多い。
2. 何がコンテキスト窓を埋めるのか
「思ったより早く溢れる」のは、目に見えない要素まで窓を消費しているからだ。Claude Code の公式ドキュメントが挙げる主な内訳はこうなっている。
| 窓を埋めるもの | 中身 | 軽くするには |
|---|---|---|
| 会話履歴 | ユーザー・アシスタントの全ターン。消さない限り増え続ける最大の要因 | /compact で要約、/clear で作り直し |
| 読み込んだファイル | Read したファイルはすべて窓に乗る。巨大ファイルの丸読みは重い | 行範囲で読む、大読みはサブエージェントに任せる |
| ツール実行結果 | コマンド出力・検索結果なども蓄積される | 不要な大量出力を避ける、こまめに圧縮 |
| MCP ツール定義 | 接続中の MCP サーバのツール定義。多いほど初手から窓を食う | 使わないMCPを /mcp で無効化 |
| CLAUDE.md・メモリ | プロジェクト/グローバルの指示、自動メモリ。常時ロードされる | 肥大化を避ける、/doctor で点検 |
| システムプロンプト | 中核の動作指示。常に乗るが触れない固定分 | (削れない。他を減らす) |
ポイントは 「会話履歴・ファイル読み・ツール結果」が伸びていく動的な要因で、「MCP定義・CLAUDE.md・システムプロンプト」は最初から乗っている固定的な要因だということ。サブエージェントは“別の窓”を持つのがミソで、巨大なファイル読み込みや調査をサブエージェントに任せれば、その結果(重い生データ)はメインの窓に乗らない。何がどれだけ食っているかは /context で内訳を確認できる。コンテキストを意図的に設計する考え方は コンテキストエンジニアリング も参照。
3. コンテキスト窓のサイズ——200K と 1M
「上限が何トークンか」はモデルによって違う。2026年時点の大枠はこうだ(具体値は改定されうるので最新の公式を確認)。
窓のサイズは5倍違うことがある
[1m] 付きで選択。[1m] モデルに使用量クレジットが必要な場合がある。② 新しめのモデルはトークナイザが変わり、同じ文章でも約30〜35%多くトークンを消費する(=1Mでも体感ほど入らないことがある)。窓を広げる前に、まず窓を散らかさないのが基本。窓の数値・1M対応・価格は時期で改定される。固定値として暗記せず、最新の公式モデル一覧で確認を。
「1Mモデルに切り替えれば全部解決」と思いがちだが、大きい窓は“逃げ”であって“解決”ではないこともある。窓を広げても、散らかった会話・無駄なファイル丸読み・使わないMCPがそのままなら、コストが増えて応答も鈍りやすい。まずは窓を整理(compact・clear・サブエージェント)し、それでも足りない本当に大きいタスクだけ 1M を使うのが上手な使い分けだ。
4. 今すぐ直す方法
エラーが出た瞬間の打ち手を、優先順に。状況(履歴が膨らんだ/巨大ファイルを入れた)で選ぶ。
窓を空ける手順
/compact 認証バグに絞ってのように観点指定も可。文脈を保ちつつ軽量化。/context で内訳を見て、不要MCPを無効化・CLAUDE.mdを圧縮。/doctor で肥大を点検。/model で 1Mコンテキストのモデルへ。ただし整理(①〜④)を先に。auto-compact は無効化しない(既定オンのまま)。基本は ①/compact → ②/clear。溢れの主因が「大きい読み込み」なら③。慢性的なら④で固定分を絞る。
補足:/compact 自体が失敗して 「Conversation too long. Press esc twice…」と出ることがある。これは すでに窓が一杯で、要約を入れる隙間すらない状態。その場合は Esc を2回押して数メッセージ戻るか、/clear で作り直す。トークン節約の体系は Claude Codeのトークン節約 も参照。
5. 紛らわしい3つのエラーを見分ける
「長すぎる/止まった」系は複数あり、対処が真逆になることもある。混同しないよう3つ(+1)を切り分ける。
| 症状 | 正体 | 主な対処 |
|---|---|---|
| Prompt is too long / N tokens > M maximum | 本記事の主題。入力がコンテキスト窓を超えた | /compact・/clear・大読みをサブエージェントへ・1Mモデル |
| 応答が途中で切れる(stop_reason: max_tokens) | 出力が、リクエストで指定した max_tokens に達して切れた(窓の問題ではない) | max_tokens を上げる/続きを促す |
| usage limit reached | プランの使用量枠を使い切った(トークン窓とは無関係) | リセット待ち・使用量制限の対処 |
| Usage credits required for 1M context | 権限の話。プランに含まれない [1m] モデルを選んだ(溢れでも枠切れでもない) | クレジット有効化、または /model で標準窓へ |
見分けの軸:「N tokens > M maximum」と数字が出たら入力オーバー=本記事。応答がきれいに途切れたなら出力上限(max_tokens)。「reset at ◯時」なら 使用量制限。「1M に credits が必要」なら権限(プラン)の話だ。その他のClaude Code頻出エラーは エラー集にまとまっている。
6. 再発防止チェックリスト
窓を溢れさせない運用のコツ。
① auto-compact は既定オンのままにする(DISABLE_AUTO_COMPACT で切らない)。② タスクの区切りで /clear、長い対話の途中で /compact をこまめに。③ 巨大ファイルは行範囲読みかサブエージェントへ。丸ごと貼り付けない。④ 使わない MCP を無効化し、CLAUDE.md を肥大化させない(/doctor で点検)。⑤ 重い作業の前に /context で内訳を確認。⑥ 本当に大きいタスクだけ 1Mモデルを使い、普段は標準窓+整理で回す。
まとめ
Claude Code・API の 「Prompt is too long」は、入力(会話履歴+ファイル+ツール定義など)がモデルのコンテキスト窓を超えたというエラーだ。API では N tokens > M maximum と上限まで表示される。使用量制限(quota)でも、出力切れ(max_tokens)でもない——「入力が物理的に大きすぎる」話である。Claude Code は通常 auto-compact が自動回避するので、出たときは“一気に超えた”か自動圧縮を切っている。
窓を埋めるのは 会話履歴・ファイル読み・ツール結果(動的)+ MCP定義・CLAUDE.md・システムプロンプト(固定)。最速の対処は ① /compact → ② /clear → ③ 大読みをサブエージェントへ → ④ /context で固定分を削減 → ⑤ 本当に必要なら 1Mモデル。窓のサイズは 標準200K と 1Mがあり、1Mは2026年時点で標準価格だが、サブスクではクレジットが要る場合や、新トークナイザで消費が増える点に注意。窓を広げる前に、まず散らかさないのが基本だ。関連:コンテキストウィンドウとは、コンテキストエンジニアリング、使用量制限の対処。
FAQ
Q. 「Prompt is too long」と「usage limit reached」は同じですか?
A. まったく別物です。「Prompt is too long」は1回の入力がコンテキスト窓(トークンの上限)を超えたこと。「usage limit reached」はプランの使用量枠を使い切ったことで、トークン窓とは無関係です。前者は /compact や /clear で窓を空ければ即解決、後者はリセット待ちやプラン対応が必要です。
Q. 普段は出ないのに急に出ました。なぜ?
A. Claude Code は auto-compact(自動要約)が既定オンで、窓が満杯に近づくと自動で履歴を要約して回避します。それでも出たなら、① 巨大なファイルや大量データを一度に入れて窓を一気に超えた、② auto-compact を DISABLE_AUTO_COMPACT で切っているのどちらかが多いです。前者は分割・行範囲読み・サブエージェントで、後者は auto-compact を戻して対処します。
Q. /compact したら「Conversation too long」と出て要約すらできません。
A. すでに窓が一杯で、要約を入れる空きすらない状態です。Esc を2回押して数メッセージ戻ってから再試行するか、/clear で会話を作り直してください。以後は満杯になる前にこまめに /compact し、大きい読み込みはサブエージェントに逃がすと再発を防げます。
Q. 1Mコンテキストのモデルに変えれば解決しますか?
A. 大きいタスクには有効ですが、万能薬ではありません。窓を広げても、散らかった履歴・無駄なファイル丸読み・使わないMCPがそのままだと、コスト増・応答鈍化を招きます。また新しめのモデルはトークナイザが変わり同じ文章でも約30〜35%多くトークンを使うため、体感ほど入らないことも。まず整理(compact/clear/サブエージェント)、本当に必要なときだけ1Mが賢い使い方です。なおサブスクでは [1m] にクレジットが必要な場合があります。
Q. 何がそんなに窓を食っているのか知りたいです。
A. Claude Code の /context で、システムプロンプト・CLAUDE.md・MCPツール定義・会話履歴・読み込んだファイルなどの内訳が見えます。多くの場合、伸び続ける会話履歴と大きいファイル読みが主因です。/doctor は肥大化した CLAUDE.md やサブエージェント定義も指摘してくれます。固定分(MCP定義・CLAUDE.md)が大きいなら、そこを削るのが効きます。