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

プロンプトキャッシュ

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

プロンプトキャッシュの利点

プロンプトキャッシュは、複数のリクエストでプロンプトの先頭部分(プレフィックス)が一致すると、その部分の計算結果を再利用します。主な利点は次の 3 つです。

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

対応する 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
報告されるキャッシュ済みトークン数

キャッシュの有効期間

キャッシュエントリには有効期限があります。最小有効期間、保持設定、リクエストでプレフィックスを再利用したときの動作はモデルによって異なります。

キャッシュの保存場所

キャッシュされた状態は個々のマシンに保存されます。トラフィックが毎分 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 倍(GPT-6.1 Sol と GPT-6.1 Terra は 0.05 倍) モデルごとのキャッシュ済み入力単価 モデルごとのキャッシュ済み入力単価
キャッシュ書き込み料金 有効期間が "30m" の場合は 1.25 倍、Responses API で "12h" の場合は 2.5 倍 キャッシュ書き込みの追加料金なし キャッシュ書き込みの追加料金なし
キャッシュ有効期間の設定 prompt_cache_options.ttl prompt_cache_retention prompt_cache_retention
指定できる保持設定の値 "30m"(デフォルト)、Responses API では "12h" も可 "24h" のみ "in_memory" または "24h"*
キャッシュの有効期間 最短で 30 分または 12 時間。詳細は有効期限の更新動作を参照 通常 30 分程度、最長 24 時間 アクセスが途絶えてから通常 5~10 分(in_memory)、延長保持では最長 24 時間(24h)

* 延長保持に対応するモデルは、gpt-5.5、gpt-5.5-pro、gpt-5.4、gpt-5.2、gpt-5.1-codex-max、gpt-5.1、gpt-5.1-codex、gpt-5.1-codex-mini、gpt-5.1-chat-latest、gpt-5、gpt-5-codex、gpt-4.1 です。

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

このリクエストをキャッシュできる最小長を ChatGPT に聞く

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

最適化では、会話履歴の維持、ツール定義の固定、およびキャッシュする位置の選択に注目してください。GPT-5.6 以降では、prompt_cache_options.mode と prompt_cache_breakpoint でキャッシュブレークポイントを制御できます。アプリケーションで顧客ごとにキャッシュ使用量を集計する必要がある場合は、任意で prompt_cache_key も指定できます。GPT-5.6 より前のモデルでは、再利用可能なプレフィックスを共有するリクエストに一定の prompt_cache_key を使用して、キャッシュルーティングを最適化します。

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

使用例

以下の例は GPT-5.6 以降のモデルに適用できます。

注意点

よくある質問

データ保持

プロンプトキャッシュのすべての機能は、ゼロデータ保持(ZDR)に対応しています。

プロンプトキャッシュが保存するのは、元のプロンプトのテキストではなく、キーと値(KV)のテンソルです。これらのテンソルは、暗号化されたアプリケーションの状態として GPU のローカルストレージに最長 24 時間保存される場合があります。モデルごとの有効期間とその更新動作については、キャッシュの有効期間を参照してください。

キャッシュは組織間で共有されず、処理リージョンの境界をまたいで再利用することもできません。API の各機能におけるデータの取り扱いと ZDR の適用条件については、データの取り扱いを参照してください。