> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aihubmix.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GPT プロンプトキャッシュ

> GPT プロンプトキャッシュの使い方と課金：GPT-5.6 シリーズ gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna は書き込み 1.25 倍・読み取り 0.1 倍。prompt_cache_key と明示的ブレークポイント、API 例とヒット調査を収録。

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 Token                        | 1,024 Token                                       |
| キャッシュ書き込み課金        | 追加課金なし                             | 基本入力価格の 1.25x                                     |
| キャッシュ読み取り課金        | 各モデルのキャッシュ読み取り価格                   | 基本入力価格の 0.1x                                      |
| キャッシュ保持時間          | 非アクティブ 5〜10 分後に削除、最長 1 時間          | 最低 30 分間保持                                        |
| `prompt_cache_key` | 任意、ヒット率向上に使用                       | より信頼性の高いキャッシュマッチングを有効にするため公式が設定を要求                |
| 24 時間の拡張保持         | 一部モデルが対応（`prompt_cache_retention`） | `prompt_cache_options.ttl` に置き換え、現在は `"30m"` のみ対応 |

## クイックスタート

プロンプトキャッシュに追加の設定は不要です。同じ長いプレフィックスで 2 回連続リクエストし、2 回目の応答の `usage.prompt_tokens_details.cached_tokens` が 0 より大きければヒットしています。GPT-5.6 シリーズでは `prompt_cache_key` の設定を併せて推奨します：

<CodeGroup>
  ```shell Curl theme={null}
  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."
        }
      ]
    }'
  ```

  ```py Python (OpenAI SDK) theme={null}
  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)
  ```
</CodeGroup>

2 回の呼び出しの実測 usage（2026-07-10、`gpt-5.6-sol`）：

```json theme={null}
// 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 リリース発表](https://openai.com/index/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."。[公式プロンプトキャッシュガイド](https://developers.openai.com/api/docs/guides/prompt-caching)では、この倍率の適用範囲は "GPT-5.6 models and later model families"（GPT-5.6 以降のモデルファミリー）と表現されています。各モデルの公式価格は [OpenAI Pricing](https://developers.openai.com/api/docs/pricing) を、AIHubMix の実際の価格は[モデル広場](https://aihubmix.com/models)を参照してください。

公式の倍率から損益を直接計算できます。プレフィックスの書き込みは、キャッシュしない場合と比べて入力価格の 0.25 倍を追加で支払い、その後はヒットするたびに入力価格の 0.9 倍を節約できます。プレフィックスが 1 回でも再利用されれば正味で節約になり、再利用回数が多いほど節約額も大きくなります。プレフィックスをまったく再利用しない一回限りのリクエストは書き込み費用を余分に支払うことになるため、explicit モードでキャッシュを無効化できます（後述の「GPT-5.6 のキャッシュパラメータ」を参照）。

GPT-5.6 より前のモデルはキャッシュ書き込みに追加課金がなく、キャッシュ読み取りは各モデルのキャッシュ読み取り価格で課金されます。各モデルの価格は[モデル広場](https://aihubmix.com/models)を参照してください。

<Note>
  GPT-5.6 シリーズは長短コンテキストの価格区分があります。1 リクエストの入力が 272K Token を超えると、リクエスト全体が長コンテキスト区分で課金されます（入力 2 倍、出力 1.5 倍）。キャッシュ書き込み 1.25x・読み取り 0.1x の倍率は長コンテキスト区分でも同様に成立し、基数は長コンテキスト区分の入力価格になります。
</Note>

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

リクエストを送信すると、システムはリクエストのプレフィックス（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_key`        | string、リクエストボディ最上位 | カスタムの安定した識別子。業務やテナントごとの分割を推奨。1 つの key の総トラフィックは約 15 回/分以内に抑えることを推奨 | なし                              |
| `prompt_cache_options`    | object、リクエストボディ最上位 | `mode`: `"implicit"` / `"explicit"`；`ttl`: `"30m"` のみ対応            | `mode: "implicit"`、`ttl: "30m"` |
| `prompt_cache_breakpoint` | object、コンテンツブロック内  | `{"mode": "explicit"}`、キャッシュプレフィックスの終了位置をマーク                       | ブレークポイントなし                      |

GPT-5.6 より前のモデルは、この 3 つのうち `prompt_cache_options` と `prompt_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"` にすると手動ブレークポイントのみを使用します。ブレークポイントをまったく設定しない場合、そのリクエストはキャッシュを使用せず、キャッシュ書き込み費用も発生しません。[公式原文](https://developers.openai.com/api/docs/guides/prompt-caching)："If the conversation contains no explicit breakpoints, the request does not use prompt caching or incur cache-write charges."

explicit モードで一回限りの長いリクエストのキャッシュ書き込み費用を無効化する：

```json theme={null}
{
  "model": "gpt-5.6-sol",
  "prompt_cache_options": {"mode": "explicit"},
  "messages": [
    {"role": "user", "content": "[再利用しない一回限りの長いコンテンツ]"}
  ]
}
```

明示的ブレークポイントの公式規範の使い方（固定の長いコンテンツブロックの末尾にブレークポイントを設定）：

```json theme={null}
{
  "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` ブロックに対応しています。

<Note>
  AIHubMix では、`prompt_cache_breakpoint` によるコンテンツブロックブレークポイントおよび Responses API のキャッシュヒットへの対応を整備中です。現段階では Chat Completions で自動キャッシュを使用し `prompt_cache_key` を設定する方法（本ページのクイックスタート例、ヒットを検証済み）を推奨します。`prompt_cache_options` の explicit モードはキャッシュ書き込みの無効化に正常に使用できます。本ページは対応の進捗に合わせて更新します。
</Note>

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

ヒットにはブレークポイント位置以前のすべてのコンテンツのバイト単位の一致が必要です。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プロンプトキャッシュ](/jp/api/Claude-Cache) を参照してください。

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

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

## 公式リファレンス

本ページの機構、倍率、パラメータの基準はすべて以下の OpenAI 公式ソースに基づいています：

* [GPT-5.6 リリース発表](https://openai.com/index/gpt-5-6/)：キャッシュ書き込み 1.25x / 読み取り 90% 割引の課金ルール
* [プロンプトキャッシュガイド](https://developers.openai.com/api/docs/guides/prompt-caching)：機構、パラメータ、usage フィールドと制限
* [OpenAI Pricing](https://developers.openai.com/api/docs/pricing)：各モデルの公式価格
* [GPT-5.6 モデルドキュメント](https://platform.openai.com/docs/models/gpt-5.6-sol)：コンテキストウィンドウ、長コンテキスト課金のしきい値

AIHubMix の各モデルの実際の価格は[モデル広場](https://aihubmix.com/models)を参照してください。

***

最終更新日：2026-07-10
