プロンプトキャッシュとは — 仕組み・各社の条件・制御方法
5 分で読む
プロンプトキャッシュ(Prompt Caching)は、AI モデルへ送るプロンプトの先頭の部分(プレフィックス)の計算結果を提供元のサーバーに一時保存し、次の問い合わせで同じ部分の計算を省く仕組みです。
AI エージェントは、話しかけるたびに、システムプロンプト・ツール定義・指示ファイル・これまでの会話を最初から送り直しています(コンテキストとは)。
プロンプトキャッシュは、理論上どういう仕組みで安くなるのか?
プロンプトキャッシュが安いのは、先頭が同じ部分の計算結果(KV キャッシュ)をサーバーに保存して、計算を省くからです。 出典を開く確認 2026-09-21 出典を開く確認 2026-10-25 出典を開く確認 2026-10-18OpenAI 開発者向け文書(Prompt caching・Data retention)原文
Prompt caching may store encrypted key/value tensors in GPU-local storage as application state.
vLLM Docs(Automatic Prefix Caching の設計)原文
Specifically, we hash each kv-cache block by the tokens in the block and the tokens in the prefix before the block
Claude Code Docs(prompt-caching)原文
The match is exact, so a change anywhere in the prefix recomputes everything after it. There is no per-file or per-segment caching.
| 入力の区分 | 中身 | 料金(Claude Sonnet 5.5) |
|---|---|---|
| キャッシュから読む | 前の問い合わせと同じ先頭の部分 | 通常の入力の 0.05 倍 Claude API Docs(pricing)原文0.1x base input price (0.025x on Claude Fable 5.1 and Claude Mythos 5.1; 0.05x on Claude Opus 5.5 and Claude Sonnet 5.5)出典を開く確認 2026-10-18 |
| キャッシュへの書き込み | 新しく足した部分(次のターンで読めるように保存する) | 5 分保持は 1.25 倍、Claude API Docs(prompt-caching)原文5-minute cache write tokens are 1.25 times the base input tokens price出典を開く確認 2026-10-18 Claude API Docs(prompt-caching)原文1-hour cache write tokens are 2 times the base input tokens price出典を開く確認 2026-10-18 |
| キャッシュの外(キャッシュを使わない入力) | キャッシュに保存しないで送った部分 | 通常の入力の料金 |
Claude Code で測った 2 ターン目(約 5.4 万トークンの会話)では、トークンの 93% はキャッシュから読まれましたが、費用の 75% は新しく足した 3,802 トークンのキャッシュへの書き込みでした。では、キャッシュはいつ書き込まれ、いつ消えるのでしょうか。
キャッシュは、いつ書き込まれ、いつ読まれ、いつ消えるのか?
キャッシュは、新しく足した部分を送ったときに書き込まれ、次のターンで先頭が同じなら読まれ、最後に使ってから保持時間(TTL)を過ぎると消えます。1 ターン目は資料と指示を初めて書き込み、2 ターン目からは前と同じ先頭を読んで、足した分だけを書き込みます。使うたびに保持時間が延びるので、作業を続けている間は消えません。 出典を開く確認 2026-10-25Claude API Docs(prompt-caching)原文
By default, the cache has a 5-minute lifetime. The cache is refreshed for no additional cost each time the cached content is used.
Claude Code のサブスクリプション(保持時間 1 時間)では、65 分あけた 4 ターン目は履歴を全部キャッシュへ書き直し、キャッシュから読めた場合の約 11 倍の費用になりました(会話の間とキャッシュの保持時間)。では、各社のモデルで、キャッシュが効く条件と割引率はどう違うのでしょうか。
各社のモデルで、キャッシュが効く条件と割引率はどう違うのか?
| 提供元・モデル | 効き方 | 最小量 | キャッシュから読む料金 | キャッシュへの書き込みの料金 | 保持時間 |
|---|---|---|---|---|---|
| Claude Sonnet 5.5・Opus 5.5 | 自動か、区切りを最大 4 か所 | 512 トークン Claude API Docs(prompt-caching)原文512 tokens for Claude Fable 5.1, Claude Mythos 5.1, Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5.5, Claude Fable 5, Claude Mythos 5, and Claude Haiku 5.5出典を開く確認 2026-10-25 |
入力の 0.05 倍 Claude API Docs(pricing)原文0.1x base input price (0.025x on Claude Fable 5.1 and Claude Mythos 5.1; 0.05x on Claude Opus 5.5 and Claude Sonnet 5.5)出典を開く確認 2026-10-18 |
5 分保持 1.25 倍・1 時間保持 2 倍 | 5 分(既定)か 1 時間 Claude API Docs(prompt-caching)原文By default, the cache has a 5-minute lifetime. The cache is refreshed for no additional cost each time the cached content is used.出典を開く確認 2026-10-25 |
| Claude Haiku 5.5 | 同上 | 512 トークン | 入力の 0.1 倍 | 同上 | 同上 |
| OpenAI GPT-5.6 以降 | 既定で自動 OpenAI Docs(prompt-caching)原文Prompt caching is enabled by default for supported OpenAI models.出典を開く確認 2026-10-25 |
1,024 トークン OpenAI Docs(prompt-caching)原文The minimum cacheable prompt length is 1,024 tokens for GPT-5.6 and later and varies by request settings for earlier models.出典を開く確認 2026-10-18 |
入力の 0.1 倍(GPT-6.1 Sol は 0.05 倍) | 1.25 倍 OpenAI Docs(prompt-caching)原文For GPT-5.6 and later, cache writes cost 1.25× the standard, uncached input-token rate. Subsequent reads cost 0.1× that rate on most of these models and 0.05× on GPT-6.1 Sol.出典を開く確認 2026-10-18 |
最後に使ってから 30 分 OpenAI Docs(prompt-caching)原文A cached prefix remains eligible for reuse for 30 minutes after its most recent write or reuse, though OpenAI may retain it longer.出典を開く確認 2026-10-25 |
| Gemini 3.8 Flash(暗黙のキャッシュ) | 既定で自動・キャッシュヒットの保証は無い | 4,096 トークン | 入力の 0.1 倍($0.75 → $0.075) | 料金なし | 公開されていない |
| Gemini(明示的なキャッシュ) | 利用者がキャッシュを作る | — | 同上 | 保存料(1M トークン・1 時間あたり $0.50)Gemini API Docs(pricing)原文$0.50 / 1,000,000 tokens per hour (storage price) through December 31, 2026.出典を開く確認 2026-10-25 |
既定 1 時間・変えられる |
キャッシュから読む料金は、Claude Sonnet 5.5・Opus 5.5 が入力の 0.05 倍、Claude Haiku 5.5・GPT-5.6 以降・Gemini 3.8 Flash が 0.1 倍です。料金は 1M トークンあたりの米ドルで、Gemini 3.8 Flash は 2026 年 12 月 31 日までの料金です(2027 年 1 月 1 日からキャッシュから読む料金は $0.15)。公式の最小量と、実際にキャッシュヒットした量は違うことがあります。Antigravity の Gemini 3.8 Flash では、1 回の入力が 17,459 トークン以下の回は 1 度もキャッシュヒットしませんでした(6 方式の測定)。では、利用者は何を制御できるのでしょうか。
利用者は、何をどうやって制御できるのか?
利用者が制御できるのは、下の表の 5 つです。キャッシュヒットするかどうかはサーバーが決めますが、キャッシュヒットしやすくする手と、保持時間を選ぶ手は利用者にあります。
| 制御できること | 方法 |
|---|---|
| 先頭を変えない | 毎回変わる日時・乱数を、指示ファイルやプロンプトの先頭に書かない。変わらない物を先頭に置く。OpenAI Docs(prompt-caching)原文Put stable developer instructions and shared reference material first.出典を開く確認 2026-10-25 |
| 保持時間を選ぶ | Claude Code は promptCacheTtl(5m・1h)、Claude の API は cache_control の ttl、OpenAI は prompt_cache_options.ttl(GPT-5.6 以降は 30m だけ)、OpenAI Docs(prompt-caching)原文Use prompt_cache_options.ttl to control the minimum cache lifetime. The only supported value, 30m, is also the default.出典を開く確認 2026-10-25 ttl |
| キャッシュする範囲を決める | Claude の API は cache_control の区切り、OpenAI は区切りを明示するか任せる、OpenAI Docs(prompt-caching)原文you can choose where to place cache breakpoints explicitly, or let OpenAI choose their locations implicitly.出典を開く確認 2026-10-25 |
| 切れる前に小さくする | 作業が一段落して、保持時間を超えて中断する前に /compact する(compact とは) |
| 効いているかを確かめる | Claude Code は /usage の「Prompt cache (main)」、API は返事の usage(キャッシュから読んだ数・書き込んだ数) |
制御できないのは、キャッシュヒットの保証と料金の倍率です。OpenAI の 出典を開く確認 2026-10-25prompt_cache_key も、キャッシュヒットを保証しません。OpenAI Docs(prompt-caching)原文
Keys influence routing; they do not pin requests to a machine or guarantee a cache hit.
ここから先は調査の詳細です(約 6 分)。上のカードだけで決められます。調べた 1 件ずつの記録は IT連携マップ に、出典 URL と調査日つきで公開しています。
調査の詳細
検証は、各社の最新 API 仕様および Claude Code 2.1.302、Codex 0.163.0、Antigravity CLI 1.4.2 を用いて実施しました。
製品ごとの効き方(会話を分けた場合と続けた場合)
IT連携マップ編集部は指示ファイル(20KB)を配置した作業フォルダにおいて、同じ質問「ok と答えて」を 5 回送信し、入力トークンがどれだけキャッシュから読み取られたかを、各製品の記録(usage)で確かめました。
| AI エージェント | 会話を分けた場合(10 秒おき) | 同じ会話で 5 ターン続けた場合 |
|---|---|---|
| Claude Code 2.1.302 | 2 回目から 99.99% がキャッシュから読み取られた | 2 ターン目 86%、3 ターン目以降 99.7% |
| Codex 0.163.0 | 試行により 0〜65% | 2 ターン目以降 97.4%(1 回分) |
| Antigravity 1.4.2 | 会話を分けると 0% | 2 ターン目以降 約 88% |
Claude Code は、会話を終えて、同じフォルダで新しい会話を始めても(10 秒後・5 分後・40 分後)、2 回目からはシステムプロンプトや指示ファイルのほぼ全量がキャッシュから読み取られました。Codex と Antigravity は、同じ会話を続けている間だけ、9 割前後がキャッシュから読み取られました。
処理速度(レスポンス時間)は速くなるのか
IT連携マップ編集部は、入力が約 2.6 万トークン、返事が 1 語(ok)の条件で、API の返事にかかった時間(中央値)を測りました。
| キャッシュ | 回数 | 返事にかかった時間(中央値) |
|---|---|---|
| キャッシュから読み取った回 | 37 回 | 4.1 秒 |
| キャッシュに 1 万トークン以上を書き込んだ回 | 37 回 | 2.1 秒 |
この実験の量(入力 約 2.6 万トークン・返事は ok の 1 語)では、キャッシュヒットした回の方が速いという差は見えませんでした。キャッシュの効き目は、まず料金と使用量で見ます。
他の会社に自社の会話データが漏れる心配はないのか
Anthropic と OpenAI は、プロンプトキャッシュは組織をまたいで共有されないと文書に書いています。
| 提供元 | 公式ドキュメントのセキュリティ規定 |
|---|---|
| Anthropic | 「いかなる場合でも、同一の文章や指示であっても、組織の境界を越えてキャッシュが共有されることは決してない」 Anthropic 開発者向け文書(Prompt caching)原文In every case, caches are never shared across organizations, even for identical prompts.出典を開く確認 2026-09-21 |
| OpenAI | 「キャッシュは組織をまたいで共有されず、地理的な処理境界(リージョン)を越えて再利用されることもない」 OpenAI 開発者向け文書(Prompt caching・Cache location)原文Caches are not shared across organizations and cannot be reused across regional processing boundaries出典を開く確認 2026-09-21 |
2 社の文書のとおりなら、他の会社のキャッシュに自社のプロンプトが使われることはありません。Anthropic の API では、同じ組織の中でも、キャッシュはワークスペースごとに分かれています(分離の単位)。
実機検証の測定パラメータ
| 項目 | 詳細条件 |
|---|---|
| 配置ファイル | 各製品が読み込む指示ファイル(CLAUDE.md、AGENTS.md、GEMINI.md)に白書本文 20,000 バイトを配置 |
| 質問内容 | Reply with the word ok. |
| セッション別検証 | 同一ディレクトリで新規セッションを 10 秒・5 分・40 分間隔で 5 回起動(40 分は Claude Code だけ) |
| 同一セッション検証 | 会話継続機能(--resume など)を用いて 5 ターンの対話を実施 |
| 参照ログ | Claude Code: cache_read_input_tokensCodex: cached_input_tokensAntigravity: cache_read_tokens |
セッション間隔を変えて測った、キャッシュから読み取られた割合は以下のとおりでした。
| AI エージェント | 送信間隔 | 1 回目 | 2 回目 | 3 回目 | 4 回目 | 5 回目 |
|---|---|---|---|---|---|---|
| Claude Code | 10 秒 | 43.68% | 99.99% | 99.99% | 99.99% | 99.99% |
| Claude Code | 5 分 | 43.68% | 99.99% | 99.99% | 99.99% | 99.99% |
| Claude Code | 40 分 | 43.67% | 99.99% | 99.99% | 99.99% | 99.99% |
| Codex | 10 秒 | 64.67% | 0% | 64.67% | 53.66% | 64.67% |
| Antigravity | 10 秒 | 0% | 0% | 0% | 0% | 0% |
| Antigravity | 5 分 | 0% | 0% | 0% | 0% | 0% |
Claude Code は、1 回目の送信でも 11,227 トークンがキャッシュから読み取られました。この数はフォルダが違っても同じで、システムプロンプトと組み込みツールの説明の部分にあたると見られます。
効かなくなる操作の実験
| 実行した操作 | 1 回目 | 2 回目 | 3 回目 |
|---|---|---|---|
| 何も変更しない | キャッシュから読む 11,227・キャッシュへの書き込み 14,474 | キャッシュから読む 25,701 | キャッシュから読む 25,701 |
| 指示ファイルの先頭に動的タイムスタンプ | キャッシュから読む 11,227・キャッシュへの書き込み 14,493 | キャッシュから読む 14,946・キャッシュへの書き込み 10,774 | キャッシュから読む 14,946・キャッシュへの書き込み 10,774 |
| 指示ファイルの末尾に動的タイムスタンプ | キャッシュから読む 11,227・キャッシュへの書き込み 14,496 | キャッシュから読む 14,947・キャッシュへの書き込み 10,776 | キャッシュから読む 14,947・キャッシュへの書き込み 10,776 |
| 3 回目に MCP サーバーを 1 つ追加 | キャッシュから読む 11,227・キャッシュへの書き込み 14,617 | キャッシュから読む 25,844 | キャッシュから読む 22,198・キャッシュへの書き込み 3,786 |
| 3 回目に MCP サーバーの順番を入れ替え | キャッシュから読む 11,227・キャッシュへの書き込み 14,763 | キャッシュから読む 25,990 | キャッシュから読む 25,990 |
| 3 回目にモデルを変更(Claude Sonnet 5.5 に切り替え) | キャッシュから読む 11,227・キャッシュへの書き込み 14,617 | キャッシュから読む 25,844 | キャッシュから読む 11,227・キャッシュへの書き込み 12,764 |
各社ドキュメントにおける仕様規定
| 提供元 | 公式ドキュメントの記述 |
|---|---|
| Anthropic | プレフィックスは「ツール → システムプロンプト → 会話メッセージ」の順序で構築され、上位層が 1 文字でも変わると下位層はすべてキャッシュ無効化される Claude API Docs(prompt-caching)原文the cache follows the hierarchy: tools → system → messages. Changes at each level invalidate that level and all subsequent levels.出典を開く確認 2026-10-18 |
| Claude Code | プレフィックスの完全一致のみが判定され、ファイル単位やセクション単位の部分キャッシュ機構は存在しない Claude Code Docs(prompt-caching)原文The match is exact, so a change anywhere in the prefix recomputes everything after it. There is no per-file or per-segment caching.出典を開く確認 2026-10-18 |
| OpenAI | キャッシュが有効化される最小入力トークン長は、GPT-5.6 以降で 1,024 トークン OpenAI Docs(prompt-caching)原文The minimum cacheable prompt length is 1,024 tokens for GPT-5.6 and later and varies by request settings for earlier models.出典を開く確認 2026-10-18 |
暗黙的キャッシュ(Implicit Caching)は Gemini 2.5 以降で標準有効 Gemini API Docs(caching)原文Implicit caching is enabled by default for all Gemini 2.5 and newer models.出典を開く確認 2026-10-18 |
分離の単位と残る時間
| 項目 | 公式ドキュメントの記載内容 |
|---|---|
| 分離単位(Anthropic API) | ワークスペース(Workspace)単位で完全分離 Anthropic 開発者向け文書(Prompt caching・Cache storage and sharing)原文Caches are isolated per workspace, ensuring data separation between workspaces within the same organization.出典を開く確認 2026-09-21 |
| 分離単位(Bedrock / Vertex AI) | クラウドの組織・テナント単位で完全分離 Anthropic 開発者向け文書(Prompt caching・Cache storage and sharing)原文Bedrock and Google Cloud maintain organization-level cache isolation出典を開く確認 2026-09-21 |
| キャッシュキー生成 | 指定地点までのプロンプト全文の暗号学的ハッシュ値から生成 Anthropic 開発者向け文書(Prompt caching)原文Cache keys are generated using a cryptographic hash of the prompts up to the cache control point. This means only requests with identical prompts can access a specific cache.出典を開く確認 2026-09-21 |
| 保持期間(TTL) | Anthropic は 5 分または 1 時間(1 時間の方がキャッシュへの書き込みの料金が高い)。Claude API Docs(prompt-caching)原文1-hour cache write tokens are 2 times the base input tokens price出典を開く確認 2026-10-18 OpenAI Docs(prompt-caching)原文A cached prefix remains eligible for reuse for 30 minutes after its most recent write or reuse, though OpenAI may retain it longer.出典を開く確認 2026-10-25 OpenAI Docs(prompt-caching)原文Entries typically remain active for around 5 to 10 minutes of inactivity, up to one hour.出典を開く確認 2026-10-25 OpenAI 開発者向け文書(Prompt caching・Data retention)原文Organizations without Zero Data Retention enabled default to 24h . Organizations with Zero Data Retention enabled default to in_memory .出典を開く確認 2026-09-21 |