メインコンテンツへスキップ
GPT シリーズモデル(gpt-4o 以降)のプロンプトキャッシュ(Prompt Caching)は自動的に有効になります。リクエストのプレフィックスが 1,024 Token に達し、かつ直近のリクエストと一字一句一致する場合、ヒットした部分はキャッシュ読み取り価格で課金され、同時に最初の Token のレイテンシも低減されます。GPT-5.6 シリーズ(gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna)ではキャッシュ機構がアップグレードされました。キャッシュ書き込みが独立して課金されるようになり(入力価格の 1.25 倍)、キャッシュ読み取りは入力価格の 0.1 倍、キャッシュは最低 30 分間保持され、さらに信頼性の高いマッチングのための prompt_cache_key と明示的キャッシュブレークポイントのパラメータが追加されました。 2 世代のモデルのキャッシュ動作の概要:
GPT-5.6 より前GPT-5.6 以降
キャッシュ方式自動自動 + 明示的ブレークポイント
最小キャッシュ長1,024 Token1,024 Token
キャッシュ書き込み課金追加課金なし基本入力価格の 1.25x
キャッシュ読み取り課金各モデルのキャッシュ読み取り価格基本入力価格の 0.1x
キャッシュ保持時間非アクティブ 5〜10 分後に削除、最長 1 時間最低 30 分間保持
prompt_cache_key任意、ヒット率向上に使用より信頼性の高いキャッシュマッチングを有効にするため公式が設定を要求
24 時間の拡張保持一部モデルが対応(prompt_cache_retentionprompt_cache_options.ttl に置き換え、現在は "30m" のみ対応

クイックスタート

プロンプトキャッシュに追加の設定は不要です。同じ長いプレフィックスで 2 回連続リクエストし、2 回目の応答の usage.prompt_tokens_details.cached_tokens が 0 より大きければヒットしています。GPT-5.6 シリーズでは prompt_cache_key の設定を併せて推奨します:
curl https://aihubmix.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -d '{
    "model": "gpt-5.6-sol",
    "prompt_cache_key": "my-app-report-assistant-v1",
    "messages": [
      {
        "role": "system",
        "content": "You are a meticulous assistant for analyzing quarterly financial reports... [固定で変化しない長い指示や参考資料をここに配置、≥1024 Token]"
      },
      {
        "role": "user",
        "content": "Summarize the key figures in one sentence."
      }
    ]
  }'
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["AIHUBMIX_API_KEY"],  # キーは環境変数から読み取る
    base_url="https://aihubmix.com/v1",
)

long_context = "You are a meticulous assistant for analyzing quarterly financial reports... [固定で変化しない長い指示や参考資料、≥1024 Token]"

# 同じプレフィックスで 2 回連続リクエストし、2 回目でキャッシュにヒット
for i in range(2):
    completion = client.chat.completions.create(
        model="gpt-5.6-sol",
        prompt_cache_key="my-app-report-assistant-v1",
        messages=[
            {"role": "system", "content": long_context},
            {"role": "user", "content": "Summarize the key figures in one sentence."},
        ],
    )
    print(completion.usage.prompt_tokens_details)
2 回の呼び出しの実測 usage(2026-07-10、gpt-5.6-sol):
// 1 回目の呼び出し:ヒットなし
"prompt_tokens_details": {"audio_tokens": 0, "cached_tokens": 0}

// 2 回目の呼び出し:プレフィックスがキャッシュにヒット
"prompt_tokens_details": {"audio_tokens": 0, "cached_tokens": 2816}

キャッシュの課金

GPT-5.6 シリーズのキャッシュ課金ルール:
課金項目レート
通常の入力 Tokenプラットフォーム価格
キャッシュ書き込み Token基本入力価格の 1.25x
キャッシュ読み取り Token基本入力価格の 0.1x
出力 Tokenプラットフォーム価格
このルールに関する OpenAI の公式表現(GPT-5.6 リリース発表より):“For GPT‑5.6 and later models, cache writes are billed at 1.25x the model’s uncached input rate, while cache reads continue to receive the 90% cached-input discount.”。公式プロンプトキャッシュガイドでは、この倍率の適用範囲は “GPT-5.6 models and later model families”(GPT-5.6 以降のモデルファミリー)と表現されています。各モデルの公式価格は OpenAI Pricing を、AIHubMix の実際の価格はモデル広場を参照してください。 公式の倍率から損益を直接計算できます。プレフィックスの書き込みは、キャッシュしない場合と比べて入力価格の 0.25 倍を追加で支払い、その後はヒットするたびに入力価格の 0.9 倍を節約できます。プレフィックスが 1 回でも再利用されれば正味で節約になり、再利用回数が多いほど節約額も大きくなります。プレフィックスをまったく再利用しない一回限りのリクエストは書き込み費用を余分に支払うことになるため、explicit モードでキャッシュを無効化できます(後述の「GPT-5.6 のキャッシュパラメータ」を参照)。 GPT-5.6 より前のモデルはキャッシュ書き込みに追加課金がなく、キャッシュ読み取りは各モデルのキャッシュ読み取り価格で課金されます。各モデルの価格はモデル広場を参照してください。
GPT-5.6 シリーズは長短コンテキストの価格区分があります。1 リクエストの入力が 272K Token を超えると、リクエスト全体が長コンテキスト区分で課金されます(入力 2 倍、出力 1.5 倍)。キャッシュ書き込み 1.25x・読み取り 0.1x の倍率は長コンテキスト区分でも同様に成立し、基数は長コンテキスト区分の入力価格になります。

キャッシュが自動的に有効になる仕組み

リクエストを送信すると、システムはリクエストのプレフィックス(messages、tools などをシリアライズした順序)が直近のリクエストのプレフィックスと一字一句一致するかどうかを確認します:
  1. プレフィックスが 1,024 Token に達し、一致するキャッシュ済みプレフィックスが見つかった場合、ヒット部分はキャッシュ読み取り価格で課金され、最初の Token のレイテンシが低減されます。
  2. 見つからない場合は通常の入力として処理され、プレフィックスがキャッシュに書き込まれます(GPT-5.6 以降は書き込み費用として 1.25x で課金)。
  3. ヒットにはプレフィックスのバイト単位の一致が必要で、プレフィックス内のいかなる変化も、その位置以降のキャッシュをすべて無効にします。
以下のシナリオで効果が最も顕著です:
  • 固定の長いシステム指示や大量の few-shot 例
  • RAG シナリオで繰り返し参照される長い参考資料
  • 大量のツール定義(tools)を伴う Agent ワークフロー
  • 後ろに追記するだけの長いマルチターン会話
キャッシュ保持時間:GPT-5.6 より前のモデルは非アクティブ 5〜10 分後に削除され、最長 1 時間です。GPT-5.6 以降は最低 30 分間保持され、実際にはそれより長く保持される場合があります。キャッシュは組織間で共有されず、キャッシュは出力内容に影響しません。

GPT-5.6 のキャッシュパラメータ

GPT-5.6 シリーズにはキャッシュ関連の 3 つのパラメータが追加されました(Chat Completions と Responses API で共通):
パラメータ型 / 位置デフォルト
prompt_cache_keystring、リクエストボディ最上位カスタムの安定した識別子。業務やテナントごとの分割を推奨。1 つの key の総トラフィックは約 15 回/分以内に抑えることを推奨なし
prompt_cache_optionsobject、リクエストボディ最上位mode: "implicit" / "explicit"ttl: "30m" のみ対応mode: "implicit"ttl: "30m"
prompt_cache_breakpointobject、コンテンツブロック内{"mode": "explicit"}、キャッシュプレフィックスの終了位置をマークブレークポイントなし
GPT-5.6 より前のモデルは、この 3 つのうち prompt_cache_optionsprompt_cache_breakpoint に対応しておらず、リクエストは拒否されます。旧モデルの 24 時間拡張保持パラメータ prompt_cache_retention"24h" / "in_memory")は、GPT-5.6 以降では prompt_cache_options.ttl に置き換えられました。 3 つのキャッシュ制御方式の関係:
  1. デフォルト(implicit モード):キャッシュパラメータを一切渡さなくても自動でキャッシュに書き込まれます——システムが最新のメッセージの位置に自動的にブレークポイントを設定します。GPT-5.6 以降では、自動で発生するキャッシュ書き込みも同様に 1.25x で課金されます。
  2. implicit モード + 明示的ブレークポイント:自動ブレークポイントに加えて、コンテンツブロックに prompt_cache_breakpoint を設定し、キャッシュ境界を安定したコンテンツの末尾に固定できます。ブレークポイント以降のコンテンツの変化は、ブレークポイント以前のプレフィックスキャッシュを壊しません。
  3. explicit モードprompt_cache_options.mode"explicit" にすると手動ブレークポイントのみを使用します。ブレークポイントをまったく設定しない場合、そのリクエストはキャッシュを使用せず、キャッシュ書き込み費用も発生しません。公式原文:“If the conversation contains no explicit breakpoints, the request does not use prompt caching or incur cache-write charges.”
explicit モードで一回限りの長いリクエストのキャッシュ書き込み費用を無効化する:
{
  "model": "gpt-5.6-sol",
  "prompt_cache_options": {"mode": "explicit"},
  "messages": [
    {"role": "user", "content": "[再利用しない一回限りの長いコンテンツ]"}
  ]
}
明示的ブレークポイントの公式規範の使い方(固定の長いコンテンツブロックの末尾にブレークポイントを設定):
{
  "model": "gpt-5.6-sol",
  "prompt_cache_key": "my-app-report-assistant-v1",
  "messages": [
    {
      "role": "system",
      "content": [
        {
          "type": "text",
          "text": "[固定で変化しない長い指示や参考資料、≥1024 Token]",
          "prompt_cache_breakpoint": {"mode": "explicit"}
        }
      ]
    },
    {"role": "user", "content": "Summarize the key figures in one sentence."}
  ]
}
ハード制約(公式の基準):
  • 各リクエストで作成できる新しいキャッシュ書き込みは最大 4 つ。implicit モードでは自動ブレークポイントがそのうち 1 つを占有します。
  • ブレークポイント以前のプレフィックスは 1,024 Token に達しないとキャッシュされません。
  • 読み取り時は直近 50 個のブレークポイントの中から最長一致のプレフィックスを使用します。
  • 対応していないコンテンツブロックにブレークポイントを設定すると 400 invalid_request_error が返されます。Chat Completions は text / image_url / input_audio / file / refusal ブロックに、Responses API は input_text / input_image / input_file ブロックに対応しています。
AIHubMix では、prompt_cache_breakpoint によるコンテンツブロックブレークポイントおよび Responses API のキャッシュヒットへの対応を整備中です。現段階では Chat Completions で自動キャッシュを使用し prompt_cache_key を設定する方法(本ページのクイックスタート例、ヒットを検証済み)を推奨します。prompt_cache_options の explicit モードはキャッシュ書き込みの無効化に正常に使用できます。本ページは対応の進捗に合わせて更新します。

キャッシュがヒットしない理由

ヒットにはブレークポイント位置以前のすべてのコンテンツのバイト単位の一致が必要です。2 回目のリクエストでも cached_tokens が 0 の場合、以下のチェックリストで調査してください:
  • プレフィックスが 1,024 Token 未満:最小キャッシュ長を下回るリクエストは通常の入力として処理されます。
  • プレフィックスに変化するコンテンツが混入:タイムスタンプ、セッション ID、ユーザー変数などは固定コンテンツの後に配置してください。プレフィックス内のいかなる変化も、それ以降のキャッシュを無効にします。
  • tools の定義や順序の変化:ツールリストはプレフィックスの計算に含まれ、定義と並び順が完全に一致している必要があります。
  • 画像の detail パラメータの不一致detail は画像の Token 化結果に影響するため、同一に保つ必要があります。
  • 構造化出力 schema の変化response_format の JSON Schema はシステムメッセージのプレフィックスとしてキャッシュに含まれ、schema の変化はプレフィックスの変化になります。
  • reasoning_effort の変化:公式ドキュメントでキャッシュヒット率低下の一般的な原因として挙げられています(“Changes to reasoning effort”)。
  • キャッシュ保持期間の超過:GPT-5.6 より前は非アクティブ 5〜10 分後に削除、GPT-5.6 以降は最低 30 分間保持されます。
  • prompt_cache_key 未設定(GPT-5.6):未設定でも自動ヒットする場合はありますが、より信頼性の高いマッチング機構は使用されません。

ベストプラクティス

  • 固定コンテンツ(システム指示、例、参考資料、ツール定義)をリクエストの最前部に、毎ターン変化するコンテンツを最後に配置します。
  • 同じプレフィックスを共有するトラフィックには同一の安定した prompt_cache_key を設定し、1 つの key の総トラフィックを約 15 回/分以内に抑えます。超える場合は業務ごとに key を分割します。
  • マルチターン会話では後ろへの追記のみを行い、過去のメッセージの変更を避けます。
  • 同じプレフィックスのリクエストに継続的なトラフィックを維持し、キャッシュが削除される機会を減らします。
  • プレフィックスを再利用しない一回限りの長いリクエストは、explicit モードでキャッシュ書き込み費用を回避します(GPT-5.6 以降)。
  • usage.prompt_tokens_details.cached_tokens でヒット状況を継続的に監視します。

よくある質問(FAQ)

GPT のプロンプトキャッシュは手動で有効にする必要がありますか?

手動で有効にする必要はありません。プレフィックスが 1,024 Token に達すると自動的にキャッシュされます。GPT-5.6 以降では、より信頼性の高いキャッシュマッチングのために prompt_cache_key の設定を併せて推奨します。

GPT-5.6 のキャッシュ書き込み費用はどう計算されますか?不要な書き込み費用を避けるには?

キャッシュ書き込みは基本入力価格の 1.25 倍、読み取りは 0.1 倍で課金されます。プレフィックスが 1 回再利用されれば正味で節約になります。プレフィックスを再利用しない一回限りの長いリクエストでは、prompt_cache_options.mode"explicit" に設定しブレークポイントを設定しなければ、そのリクエストはキャッシュを使用せず書き込み費用も発生しません。

キャッシュはどれくらい保持されますか?

GPT-5.6 以降は最低 30 分間保持されます(ttl は現在 "30m" のみ対応で、実際にはそれより長く保持される場合があります)。GPT-5.6 より前のモデルは非アクティブ 5〜10 分後に削除され最長 1 時間で、一部の旧モデルは prompt_cache_retention: "24h" による拡張保持に対応しています。

GPT-5.6 の明示的ブレークポイントと Claude の cache_control の違いは何ですか?

どちらもキャッシュ境界を安定したコンテンツの末尾に固定するために使用します。主な違い:GPT-5.6 はパラメータなしで自動キャッシュされ、ブレークポイントは任意の細かい制御手段です。Claude はリクエストでキャッシュを有効にする必要があります(最上位の cache_control による自動ブレークポイント、またはコンテンツブロック単位の明示的ブレークポイント)。GPT-5.6 のキャッシュは最低 30 分間保持され、Claude はデフォルト 5 分で 1 時間も選択できます。キャッシュ読み取りはどちらも入力価格の 0.1 倍で課金されます。Claude の使い方は Claudeプロンプトキャッシュ を参照してください。

キャッシュは出力内容に影響しますか?

影響しません。公式の見解:プロンプトキャッシュは入力側の処理と課金にのみ影響し、モデルが出力を生成する方法はキャッシュを使用しない場合と完全に同じです。

公式リファレンス

本ページの機構、倍率、パラメータの基準はすべて以下の OpenAI 公式ソースに基づいています: AIHubMix の各モデルの実際の価格はモデル広場を参照してください。
最終更新日:2026-07-10