OpenAI、プロンプトキャッシュの不一致原因を特定する診断機能
OpenAI API Docs公式発表
OpenAIprompt cachingコスト最適化Responses API開発者向け
Responses API に、キャッシュが効かなかった理由を機械的に切り分ける診断機能が追加された。過去のレスポンスIDと突き合わせ、モデル変更・ツール定義の変更・入力の並び替えなど9種類の原因を返す。GPT-5.6 以降の対応モデルで利用できる。
何が発表されたか
- 2026年9月8日、OpenAI が Responses API に プロンプトキャッシュ診断(Prompt Cache Diagnostics) を追加した。
prompt_cache_optionsのcomparison_response_idに直前の(同一組織内の)レスポンスIDを渡すと、そのリクエストとの差分からキャッシュが再利用されなかった理由が返る。- 返却される原因は9種類:
model_changed— モデルが変わったprompt_cache_key_changed— キャッシュキーが変わったservice_tier_changed— サービスティアが変わったtools_changed— ツールの追加・削除・並び替え・定義変更text_format_changed— 出力フォーマットやスキーマの変更reasoning_effort_changed— 推論強度の変更verbosity_changed— 冗長度設定の変更context_compacted— 圧縮により過去の会話が置き換わったinput_changed— 前方の入力が変更・並び替えされた
- 加えて
cache_hit(ミスなし)、comparison_response_not_found(比較対象が見つからない)も返る。 - 対応は Responses API の GPT-5.6 以降のモデル。
開発者への影響
キャッシュヒット率は API 料金に直結するが、これまでは「なぜか効いていない」の原因究明が手探りだった。ツール定義を1つ足しただけ、JSON スキーマの項目順を変えただけ、といった自覚のない変更が原因の大半であることは経験的に知られており、それを名前付きで返してくれる意味は大きい。
実務では、AIチャットボットや問い合わせ対応など「同じシステムプロンプトを何万回も送る」タイプの実装で効果が出る。まず本番トラフィックの一部でこの診断を回し、tools_changed や input_changed が頻出していないかを見るのが最初の一手になる。ツール定義を動的に組み立てている実装は、順序が非決定になっていないか確認したい。
context_compacted が返る場合は、長い会話の圧縮タイミングとキャッシュ境界がぶつかっている。会話の区切り方そのものを見直すサインと捉えるとよい。
