For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション

プロンプトキャッシュ

プロンプトキャッシュでレイテンシーとコストを削減。

プロンプトキャッシュの重要性

プロンプトキャッシュは、同じプロンプトプレフィックスを共有するリクエスト間で処理結果を再利用します。主なメリットは次の 3 つです。

  • 計算効率の向上: モデルがすでに処理したプロンプトプレフィックスの再計算を省きます。
  • 入力トークンのコスト削減: 再利用するトークンには、モデルの割安なキャッシュ済み入力料金が適用され、最大 90% 割引になります。
  • 高速化: 応答が始まるまでの入力処理時間を短縮します。

対応する OpenAI モデルでは、プロンプトキャッシュがデフォルトで有効になっています。プロンプトキャッシュダッシュボードでキャッシュ読み取りのヒット率を監視し、プロンプトキャッシュの診断ツールでキャッシュミスの原因を調べ、キャッシュの再利用を改善できます。

Agents API のモデル呼び出しでは、Responses API と同じプロンプトキャッシュの仕組みが使われます。セッション内でコンテキストを再利用すると、共通のプロンプトプレフィックスを維持できますが、セッションを維持してもキャッシュヒットが保証されるわけではありません。セッションの使用量フィールドとサブエージェントの使用量の集計については、可観測性と使用状況を参照してください。

プロンプトキャッシュの料金はモデルによって異なります。キャッシュ済み入力とキャッシュ書き込みの最新の単価については、API 料金を参照してください。キャッシュ書き込み料金は追加料金ではありません。入力トークンには、未キャッシュ入力、キャッシュ済み入力、キャッシュ書き込みのいずれかの単価が適用されます。

プロンプトキャッシュとは

モデルは入力トークンを処理する際、キー・バリュー(KV)状態と呼ばれる中間状態を計算する必要があります。この状態により、新しい入力の処理や出力トークンの生成中に、それまでのトークンを参照できます。

プロンプトキャッシュは、再利用可能な プレフィックス、つまりプロンプトの先頭にある変化しないトークン列の状態を保持します。後続のリクエストが同じプレフィックスを持ち、一致するキャッシュエントリが見つかると、モデルはそのトークン列を再処理せずに保存済みの状態を再利用できます。ただし、新しい応答を生成するには、新たな入力を処理する必要があります。

プロンプトキャッシュに保存されるのは、トークンそのものではなく、キー・バリュー(KV)テンソルです。

ChatGPT に詳しい説明を依頼

OpenAI は、モデルのレンダリング済みコンテキスト全体をキャッシュします。これには、OpenAI が提供する指示、開発者メッセージツール定義、およびテキスト画像ドキュメント、サポート対象の音声を含む会話履歴が含まれます。

キャッシュを再利用するには、レンダリング済みのプレフィックス全体が一致する必要があります。ブレークポイントより前でコンテンツや関連する設定が変わると、その変更箇所以降を含むプレフィックスは既存のキャッシュエントリと一致しなくなります。

キャッシュの仕組み

キャッシュブレークポイント は、OpenAI がキャッシュに保存し、後続のリクエストで再利用できるプロンプトプレフィックスの終端を示します。最初のリクエストで対象のプレフィックスをキャッシュに書き込みます。後続のリクエストでは、一致するものが見つかるまで対象のブレークポイントを末尾側から順にたどり、利用可能なキャッシュ済みプレフィックスのうち、一致する最長のものを探します。

プロンプトプレフィックスをキャッシュするには、モデルの キャッシュ可能な最小トークン長 を満たす必要があります。OpenAI が提供する非表示のシステムコンテンツ内のトークンは、この最小トークン長に含まれません。キャッシュ可能なプロンプトの最小長は、GPT-5.6 以降では 1,024 トークンで、それ以前のモデルではリクエスト設定によって異なります。詳しくは、モデルの比較をご覧ください。

キャッシュ可能な最小トークン長に達した後は、キャッシュブレークポイントの位置を明示的に指定するか、OpenAI に暗黙的な選択を任せることができます。利用できる選択肢はモデルによって異なります。

プレフィックス照合の仕組み

OpenAI は、受信したリクエスト内の キャッシュ検索境界 (後述)のみを、プレフィックスが長い順に確認します。そのマシンにすでにキャッシュされている、一致する利用可能なプレフィックスを探します。

GPT-5.6 以降では、受信したリクエスト内のキャッシュ検索境界は次のとおりです。

  • 明示的指定のみのモード: 最初の 2 個と直近の 50 個の明示的ブレークポイント
  • 暗黙的モード: 最初の 2 個と直近の 50 個の明示的ブレークポイント、暗黙的ブレークポイント、それ以前の対象メッセージの末尾(最大 20 件)、および冒頭の連続した開発者メッセージ群の末尾が対象です。このため、暗黙的モードでは、以前のメッセージの末尾に明示的ブレークポイントがなくても、そこまでのプレフィックスを再利用できます。
モデルの世代
キャッシュモード

暗黙的ブレークポイントは、対象となる最新のユーザーメッセージに配置されます。

非表示のシステムツール開発者コンテキスト履歴追加メッセージキャッシュ済み入力キャッシュされていない入力
キャッシュ可能な最小長(モデルによって異なる)

リクエスト 1

入力トークン数:12,000
3,000 トークン(説明用の例)

リクエスト 2

入力トークン数:15,000
3,000 トークン(説明用の例)
0
2.5k
5k
7.5k
10k
12.5k
15k
17.5k
20k
入力トークン(説明用の非表示トークンを含む)
15,000
最後に一致したブレークポイント
3,000
非表示のトークン
=
12,000
報告されるキャッシュ済みトークン数

キャッシュの有効期間

キャッシュエントリは無期限に保存されるわけではありません。後続のリクエストでキャッシュ済みのプレフィックスを再利用できるのは、そのエントリが利用可能な間だけです。プレフィックスを再利用すると、キャッシュ書き込み料金が再度発生することなく、有効期間が更新されます。有効期間と保持の設定はモデルによって異なります

キャッシュの保存場所

キャッシュされた状態は個々のマシンに保存されます。1 分あたり 15 件を超えるリクエストがあると、オーバーフローによって別のマシンにルーティングされる場合があります。リクエストがキャッシュ済みのプレフィックスを再利用できるのは、一致する有効期限内のエントリを保持するマシンに到達した場合だけです。そのため、キャッシュの再利用には、適切なマシンへのリクエストのルーティングが重要です。

キャッシュは組織間で共有されず、処理リージョンの境界を越えて再利用することもできません。

OpenAI はルーティングを自動的に処理します。同じ組織と処理リージョン内では、特定のモデルへのルーティングは次の要素によって決まります。

  • マシンの現在の負荷と利用可能な容量
  • 非表示の OpenAI コンテンツに続く先頭のトークンのハッシュ値。ツール定義がある場合はそれも含まれます。ハッシュ化するトークンの数はモデルによって異なります。
  • 指定された prompt_cache_key。リクエストのグループ間でキャッシュの再利用を分離し、GPT-5.6 より前のモデルではキャッシュルーティングの最適化に役立ちます。

モデル間の違いの概要

動作GPT-5.6 以降GPT-5.5 と GPT-5.5 Proその他の以前のモデル
暗黙的なブレークポイント対象となる最新のメッセージの末尾に配置されます。2,048 トークンごとの一定間隔で配置されます。モデルに応じた一定間隔で配置されます。
明示的なブレークポイントサポートありサポートなしサポートなし
prompt_cache_keyキャッシュの利用量と料金を分けて管理する場合に任意で使用同じキーを使い続けてキャッシュルーティングを最適化同じキーを使い続けてキャッシュルーティングを最適化
キャッシュ可能なプレフィックスの最小長可視の入力トークン 1,024 個リクエストの設定によって異なりますリクエストの設定によって異なります
キャッシュ済みトークン数の報告非表示トークンを除外し、対象となる境界までの正確な数を報告非表示トークンを除外し、128 の倍数に切り捨て非表示トークンを除外し、128 の倍数に切り捨て
キャッシュ読み取り料金キャッシュされていない入力トークンの単価の 0.1 倍モデルに応じたキャッシュ済み入力の単価モデルに応じたキャッシュ済み入力の単価
キャッシュ書き込み料金キャッシュされていない入力トークンの単価の 1.25 倍キャッシュ書き込みの追加料金なしキャッシュ書き込みの追加料金なし
キャッシュの有効期間の制御prompt_cache_options.ttlprompt_cache_retentionprompt_cache_retention
サポートされている保持設定値"30m""24h" のみ"in_memory" または "24h"*
キャッシュの有効期間最後の書き込みまたは再利用から少なくとも 30 分通常は 30 分程度、最長で 24 時間in_memory では使用されなくなってから通常 5~10 分、24h では最長で 24 時間

* 拡張保持は、gpt-5.5gpt-5.5-progpt-5.4gpt-5.2gpt-5.1-codex-maxgpt-5.1gpt-5.1-codexgpt-5.1-codex-minigpt-5.1-chat-latestgpt-5gpt-5-codexgpt-4.1 でサポートされています。

GPT-5.6 より前のモデルでは、キャッシュ可能な入力の最小長は、ツール、画像、出力スキーマ、推論強度、応答の詳しさなど、リクエストの設定によって異なります。

ChatGPT に、このリクエストでキャッシュ可能な最小入力長の確認を依頼

プロンプトキャッシュの最適化方法

会話履歴の保持ツール定義を変えずに維持すること、キャッシュする箇所の選択に重点を置いてください。GPT-5.6 以降では、prompt_cache_options.modeprompt_cache_breakpoint を使用してキャッシュのブレークポイントを制御します。アプリケーションで顧客ごとにキャッシュの利用量と料金を分けて管理する必要がある場合は、任意で prompt_cache_key も使用できます。GPT-5.6 より前のモデルでは、再利用可能なプレフィックスを共有するリクエストに同じ prompt_cache_key を使い続けて、キャッシュルーティングを最適化してください。

ChatGPT にプロンプトキャッシュの最適化を依頼

以下の例は、GPT-5.6 以降のモデルに適用されます。

注意点

よくある質問