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)・直し方・紛らわしいエラーとの違いまでを、公式情報をもとに整理する。

CLAUDE CODE · CONTEXT WINDOW

「窓」が満杯になるまで

— 何がコンテキストを埋め、いつ溢れるのか

system prompt
CLAUDE.md
MCP ツール定義
読み込んだファイル
ツール結果
会話履歴(増え続ける)

積み上がって 100% に達すると…

100%
= 200K / 1M tokens
Prompt is
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年時点の大枠はこうだ(具体値は改定されうるので最新の公式を確認)。

200K vs 1M

窓のサイズは5倍違うことがある

標準 200K トークン
Sonnet 4.5・Haiku 4.5・Opus 4.5 など。エラーで見る 「200000 maximum」はこれ。多くの日常用途には十分だが、巨大コードベースや長時間作業では溢れやすい。
1M トークン
Opus 4.8/4.7/4.6・Sonnet 4.6 など。標準の5倍。2026年時点では標準価格で利用可(長コンテキストの追加料金は現状なし)。Claude Code では [1m] 付きで選択。
注意:1M は“万能薬”ではない
① サブスクでは [1m] モデルに使用量クレジットが必要な場合がある。② 新しめのモデルはトークナイザが変わり、同じ文章でも約30〜35%多くトークンを消費する(=1Mでも体感ほど入らないことがある)。窓を広げる前に、まず窓を散らかさないのが基本。

窓の数値・1M対応・価格は時期で改定される。固定値として暗記せず、最新の公式モデル一覧で確認を。

「1Mモデルに切り替えれば全部解決」と思いがちだが、大きい窓は“逃げ”であって“解決”ではないこともある。窓を広げても、散らかった会話・無駄なファイル丸読み・使わないMCPがそのままなら、コストが増えて応答も鈍りやすい。まずは窓を整理(compact・clear・サブエージェント)し、それでも足りない本当に大きいタスクだけ 1M を使うのが上手な使い分けだ。

4. 今すぐ直す方法

エラーが出た瞬間の打ち手を、優先順に。状況(履歴が膨らんだ/巨大ファイルを入れた)で選ぶ。

FIXES

窓を空ける手順

① /compact(まずこれ)
会話履歴を要約して空ける/compact 認証バグに絞ってのように観点指定も可。文脈を保ちつつ軽量化。
② /clear(別作業に移る時)
会話をまっさらに。CLAUDE.mdやプロジェクト情報は残る。無関係なタスクに移るならこれが一番速い。
③ 大きい読み込みを逃がす
巨大ファイルは行範囲で読む、またはサブエージェントに調査させ結論だけ受け取る(別の窓を使う)。
④ 固定分を減らす
/context で内訳を見て、不要MCPを無効化CLAUDE.mdを圧縮/doctor で肥大を点検。
⑤ どうしても大きいなら 1M モデル
巨大コードベースを丸ごと扱う等、本当に必要なときだけ /model1Mコンテキストのモデルへ。ただし整理(①〜④)を先に。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)が大きいなら、そこを削るのが効きます。