AI プログラミング ソフトウェア 公開日 2026.04.25 更新日 2026.04.25

GPT-5.5でPrompt Cachingはどう設計する?静的プロンプトと動的入力の分け方

GPT-5.5で Prompt Caching を効かせる設計について、OpenAI公式のキャッシュ仕様をもとに、static parts first / dynamic parts last の考え方、prompt_cache_key の使いどころ、tool 定義や Structured Outputs をどう前後に置くべきかまで整理します。

先に要点

  • GPT-5.5で Prompt Caching を効かせたいなら、基本は static parts first, dynamic parts last です。
  • キャッシュが見るのは全文一致ではなく、先頭 prefix の一致です。後ろが毎回変わっても、前半が同じなら効く余地があります。
  • 前に置きたいのは、system instructions、共通ルール、例、tool 定義、Structured Outputs の schema です。
  • 後ろに寄せたいのは、ユーザー入力、検索結果、会話ごとの個別文脈、現在値、ユーザー固有データです。

プロンプトキャッシュとは? の記事では、キャッシュがコストと速度に効く仕組みを広く整理しました。
今回はそこから一歩進めて、GPT-5.5で本当に効く並べ方はどう作るのか を実務寄りに見ます。

特に GPT-5.5 では、OpenAI公式が

をかなり強く勧めています。
つまり、長いプロンプトを送ってもキャッシュがあるから大丈夫 ではなく、長いなら長いなりに、どこを固定 prefix にするか が大事です。

まず前提: キャッシュは「先頭が同じか」で決まる

OpenAI公式の Prompt Caching ガイドで一番大事なのはここです。
キャッシュヒットは、exact prefix matches、つまり先頭部分の一致が前提です。

言い換えると、

  • 前半が毎回同じ
  • 後半だけ変わる

構造ならキャッシュが効きやすくなります。

逆に、

  • 冒頭に現在時刻を入れる
  • 冒頭に毎回違うユーザーIDを入れる
  • 冒頭に検索結果を差し込む

ような設計だと、長い共通 instructions が後ろにあってもヒットしにくくなります。

GPT-5.5で特に意識したい理由

OpenAIの最新モデルガイドでは、GPT-5.5移行時の見直し項目として Prompt Caching が明示されています。
しかも GPT-5.5 では、キャッシュ設計が単なる節約術ではなく、通常の設計論の一部になっています。

理由は3つあります。

1. GPT-5.5は長い実務プロンプトで使われやすい

GPT-5.5 は

  • coding
  • tool-heavy agents
  • long-context retrieval
  • customer-facing workflows

のような、そもそも共通 prefix が長くなりやすい場面で使われます。

このタイプのワークロードでは、

  • system prompt
  • 共通方針
  • role 指示
  • tool descriptions
  • output schema

が毎回長くなりがちです。
だからこそ、キャッシュが効く設計かどうかで差が出ます。

2. GPT-5.5は extended prompt cache retention の対象

OpenAI公式によると、gpt-5.5gpt-5.5-pro は extended prompt cache retention に対応しています。
しかもデフォルトは 24h で、in_memory はサポートされません。

つまり GPT-5.5 では、短時間だけの一時キャッシュというより、共通 prefix をちゃんと安定させれば、より長くヒットを狙える 前提で設計しやすいです。

3. Responses API との相性がよい

Responses APIの記事でも触れた通り、GPT-5.5 の本命は Responses API 側です。
Responses API では prompt_cache_keyprompt_cache_retentionusage.prompt_tokens_details.cached_tokens など、観測と調整の軸を持ちやすくなっています。

何を前に置くべきか

OpenAI公式は、static or repeated content at the beginning を勧めています。
GPT-5.5 で前に寄せたいのは、だいたい次の要素です。

前に置くもの 理由
system instructions 毎回ほぼ同じなら、いちばん大きい共通 prefix になりやすい
共通の出力方針 語調、禁止事項、成果物条件などはリクエストごとに変わりにくい
tool definitions 同じ tools を繰り返し使うなら prefix にしやすい
Structured Outputs の schema schema 自体が prefix としてキャッシュ対象になる
共通 examples 毎回同じ few-shot が必要なら前に寄せた方がよい

要するに、誰に対しても同じ説明 はできるだけ前です。

何を後ろに置くべきか

一方で、変わるものは後ろへ寄せます。

  • ユーザーの質問
  • 現在時刻
  • 検索結果
  • RAG で取り出した個別ドキュメント
  • セッションごとのメモ
  • 個別のエラーログ
  • 顧客ごとの属性

このあたりは、毎回違うほど prefix を壊しやすいです。

特に GPT-5.5 移行では、OpenAI公式が Drop the current date とまで書いています。
モデルは UTC の current date を把握しているので、業務上どうしても必要でない限り、毎回 system prompt 冒頭に日付を入れる必要はありません。

これはキャッシュの観点でもかなり重要です。

ありがちな悪い並べ方

キャッシュが効きにくい例は、次のようなものです。

1. system prompt の先頭に可変情報を入れる

例えば、

system prompt の先頭に差し込んでしまうケースです。

これをやると、後ろにどれだけ立派な共通 instructions を積んでも、prefix が毎回変わります。

2. tools を毎回違う順番で並べる

OpenAI公式は、tools もキャッシュ対象に入ると説明しています。
ということは、同じ tools でも

  • 順番が違う
  • description が少しずつ違う
  • 未使用 tool をその場で足したり引いたりする

と、prefix 一致を壊しやすいです。

3. schema を会話ごとに細かく変える

Structured Outputsの記事 でも触れた通り、schema は API 側で持つ方が筋がいいです。
ただし、毎リクエストごとに schema を少しずつ変えると、その schema 自体が prefix の差分になります。

だいたい同じ出力なのに key 名だけ少し違う といった設計は、キャッシュ効率の面では不利です。

GPT-5.5でのおすすめ分離パターン

GPT-5.5 で一番素直なのは、次の3層に分ける考え方です。

1. 固定 prefix 層

  • system instructions
  • 共通ポリシー
  • tool definitions
  • schema
  • 固定 examples

ここは、なるべく変更頻度を下げます。

2. セッション共通層

  • その会話でだけ使う背景情報
  • その案件でだけ使う資料
  • そのユーザー群でだけ使う条件

ここは固定 prefix ほどではないけれど、同じセッション内ではなるべく安定させる部分です。

3. リクエスト固有層

  • 今回の質問
  • 今回の検索結果
  • 今回の取得ログ
  • 今回のファイル抜粋

これは最後に置きます。

この3層構造にしておくと、何がキャッシュを壊しているか を切り分けやすくなります。

prompt_cache_key はいつ使うべきか

OpenAI公式によると、prompt_cache_key は prefix hash と組み合わせて routing を改善するためのパラメータです。
特に、長い共通 prefix を持つリクエストが多いときに有効です。

ただし、ここも雑に一つの key に寄せればいいわけではありません。
公式は、各 prefix + prompt_cache_key の組み合わせが 15 req/min 程度を超えると overflow で効率が落ちることがある と書いています。

なので実務では、

くらいの粒度から始めるのが分かりやすいです。

細かすぎると共通性が消え、粗すぎると overflow しやすくなります。

効いているかはどう見るのか

設計しただけでは意味がありません。
見るべきなのは usage.prompt_tokens_details.cached_tokens です。

ここを見れば、

  • どのくらい prefix がヒットしているか
  • 変更後に cached_tokens が増えたか
  • latency が下がったか

を確認できます。

OpenAI公式も、cache hit rate、latency、cached token counts を監視することを勧めています。

実務での設計ルール

最後に、GPT-5.5 で Prompt Caching を効かせたいときの実務ルールを短くまとめます。

  1. 先頭に固定情報、末尾に可変情報を置く
  2. 現在日時やユーザーIDを system prompt 冒頭へ入れない
  3. tool 定義は順番・文言を安定させる
  4. schema はむやみに揺らさず、共通化できるなら共通化する
  5. 共通 prefix が長いフローでは prompt_cache_key を検討する
  6. cached_tokens をログに出し、効いているか観測する

要するに、GPT-5.5での Prompt Caching 設計は、長い instructions を送ること ではなく、長い固定 prefix を安定して保つこと です。
そこができると、コストだけでなく応答体感もかなり変わってきます。

この記事と一緒に読みたい

  1. プロンプトキャッシュとは?AI APIのコストと応答速度に効く理由
  2. GPT-5.5移行でプロンプトはそのままでいい?OpenAI公式ガイドで見る見直しポイント
  3. OpenAIのResponses APIとは?Chat Completionsからいつ移るべきか
  4. Structured Outputsとは?JSON modeと何が違うのか

参考リンク

あとで見返すならここで保存

読み終わったあとに残しておきたい記事は、お気に入りからまとめて辿れます。