コンテキストウィンドウの理解
「コンテキストウィンドウ」とは、言語モデルが新しいテキストを生成する際に振り返って参照できるテキストの総量と、生成する新しいテキストの全体を指します。これは言語モデルが訓練された大規模なデータコーパスとは異なり、モデルの「作業記憶」を表します。より大きなコンテキストウィンドウにより、モデルはより複雑で長いプロンプトを理解し応答できるようになりますが、より小さなコンテキストウィンドウでは、モデルが長いプロンプトを処理したり、長時間の会話で一貫性を保つ能力が制限される可能性があります。 以下の図は、APIリクエストの標準的なコンテキストウィンドウの動作を示しています1:- 段階的トークン蓄積: 会話がターンを通じて進行するにつれて、各ユーザーメッセージとアシスタントの応答がコンテキストウィンドウ内に蓄積されます。以前のターンは完全に保持されます。
- 線形成長パターン: コンテキスト使用量は各ターンで線形に成長し、以前のターンは完全に保持されます。
- 200Kトークン容量: 利用可能な総コンテキストウィンドウ(200,000トークン)は、会話履歴を保存しClaudeから新しい出力を生成するための最大容量を表します。
- 入出力フロー: 各ターンは以下で構成されます:
- 入力フェーズ: すべての以前の会話履歴と現在のユーザーメッセージを含む
- 出力フェーズ: 将来の入力の一部となるテキスト応答を生成する
拡張思考でのコンテキストウィンドウ
拡張思考を使用する場合、思考に使用されるトークンを含むすべての入力および出力トークンがコンテキストウィンドウ制限にカウントされ、マルチターン状況ではいくつかのニュアンスがあります。 思考予算トークンはmax_tokens
パラメータのサブセットであり、出力トークンとして課金され、レート制限にカウントされます。
ただし、以前の思考ブロックはAnthropic APIによってコンテキストウィンドウ計算から自動的に除外され、モデルが後続のターンで「見る」会話履歴の一部ではなく、実際の会話コンテンツのためのトークン容量を保持します。
以下の図は、拡張思考が有効になっている場合の特殊なトークン管理を示しています:
- 拡張思考の除去: 拡張思考ブロック(濃いグレーで表示)は各ターンの出力フェーズで生成されますが、後続のターンの入力トークンとして持ち越されません。思考ブロックを自分で除去する必要はありません。Anthropic APIが、それらを返す場合に自動的に行います。
- 技術的実装の詳細:
- APIは、会話履歴の一部として返す際に、以前のターンの思考ブロックを自動的に除外します。
- 拡張思考トークンは、生成時に一度だけ出力トークンとして課金されます。
- 有効なコンテキストウィンドウ計算は次のようになります:
context_window = (input_tokens - previous_thinking_tokens) + current_turn_tokens
。 - 思考トークンには
thinking
ブロックとredacted_thinking
ブロックの両方が含まれます。
コンテキストウィンドウと拡張思考について詳しくは、拡張思考ガイドをご覧ください。
拡張思考とツール使用でのコンテキストウィンドウ
以下の図は、拡張思考とツール使用を組み合わせた場合のコンテキストウィンドウトークン管理を示しています:1
最初のターンアーキテクチャ
- 入力コンポーネント: ツール設定とユーザーメッセージ
- 出力コンポーネント: 拡張思考 + テキスト応答 + ツール使用リクエスト
- トークン計算: すべての入力および出力コンポーネントがコンテキストウィンドウにカウントされ、すべての出力コンポーネントが出力トークンとして課金されます。
2
ツール結果処理(ターン2)
- 入力コンポーネント: 最初のターンのすべてのブロックと
tool_result
。拡張思考ブロックは対応するツール結果と一緒に返す必要があります。これは思考ブロックを返す必要がある唯一のケースです。 - 出力コンポーネント: ツール結果がClaudeに返された後、Claudeはテキストのみで応答します(次の
user
メッセージまで追加の拡張思考はありません)。 - トークン計算: すべての入力および出力コンポーネントがコンテキストウィンドウにカウントされ、すべての出力コンポーネントが出力トークンとして課金されます。
3
第3ステップ
- 入力コンポーネント: すべての入力と前のターンからの出力が、Claudeが完全なツール使用サイクルを完了したため削除できる思考ブロックを除いて持ち越されます。APIは、返す場合に思考ブロックを自動的に除去するか、この段階で自分で除去することもできます。これは次の
User
ターンを追加する場所でもあります。 - 出力コンポーネント: ツール使用サイクル外に新しい
User
ターンがあるため、Claudeは新しい拡張思考ブロックを生成し、そこから続行します。 - トークン計算: 以前の思考トークンはコンテキストウィンドウ計算から自動的に除去されます。他のすべての以前のブロックはトークンウィンドウの一部としてカウントされ、現在の
Assistant
ターンの思考ブロックはコンテキストウィンドウの一部としてカウントされます。
- 拡張思考でのツール使用の考慮事項:
- ツール結果を投稿する際、その特定のツールリクエストに付随する完全な未修正の思考ブロック(署名/編集された部分を含む)を含める必要があります。
- 拡張思考とツール使用の有効なコンテキストウィンドウ計算は次のようになります:
context_window = input_tokens + current_turn_tokens
。 - システムは暗号化署名を使用して思考ブロックの真正性を検証します。ツール使用中に思考ブロックを保持しないと、Claudeの推論の継続性が破綻する可能性があります。したがって、思考ブロックを修正すると、APIはエラーを返します。
1Mトークンコンテキストウィンドウ
Claude Sonnet 4は100万トークンのコンテキストウィンドウをサポートしています。この拡張されたコンテキストウィンドウにより、はるかに大きなドキュメントを処理し、より長い会話を維持し、より広範囲なコードベースで作業することができます。1Mトークンコンテキストウィンドウは現在、使用階層 4の組織およびカスタムレート制限を持つ組織向けのベータ版です。1Mトークンコンテキストウィンドウは、Claude Sonnet 4でのみ利用可能です。
context-1m-2025-08-07
ベータヘッダーを含めてください:
- ベータステータス:これは変更される可能性のあるベータ機能です。機能と価格は将来のリリースで修正または削除される可能性があります。
- 使用階層要件:1Mトークンコンテキストウィンドウは、使用階層 4の組織およびカスタムレート制限を持つ組織で利用可能です。下位階層の組織は、この機能にアクセスするために使用階層4に進む必要があります。
- 可用性:1MトークンコンテキストウィンドウはAnthropic API、Amazon Bedrock、およびGoogle CloudのVertex AIで現在利用可能です。
- 価格:200Kトークンを超えるリクエストは自動的にプレミアム料金(入力2倍、出力1.5倍の価格)で課金されます。詳細については価格ドキュメントをご覧ください。
- レート制限:長いコンテキストリクエストには専用のレート制限があります。詳細についてはレート制限ドキュメントをご覧ください。
- マルチモーダルの考慮事項:大量の画像やPDFを処理する際は、ファイルのトークン使用量が変動する可能性があることに注意してください。大きなプロンプトと大量の画像を組み合わせる場合、リクエストサイズ制限に達する可能性があります。