コスト最適化読了時間 9分出典:Admesh 技术团队

Prompt Caching 完全ガイド:仕組み、コストモデル、実践的な導入方法

Prompt caching を使うと、繰り返し現れるプレフィックスの入力 Token コストを1桁台まで下げられます。本記事では Anthropic と OpenAI のキャッシュ実装の違い、本当にコスト削減になるシナリオ、そして統一ゲートウェイを使って複数モデルで同じキャッシュ戦略を再利用する方法を解説します。

Prompt caching が解決する課題

ほとんどの LLM 呼び出しの入力には、毎回同じ部分がかなり含まれています。システムプロンプト、few-shot の例、検索で取得した固定ドキュメント、ツール定義(tool schema)などです。通常の課金では、こうした繰り返しの内容に対して毎回入力 Token の料金を払い、毎回 attention を計算し直すことになります。

Prompt caching の考え方はシンプルです。サーバー側でこのプレフィックスの計算結果を保存しておき、次のリクエストでプレフィックスが完全に同じであればそのまま再利用し、新しく追加された部分だけを再計算します。Anthropic は [prompt caching のドキュメント](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)でこれをレイテンシとコストを下げる手段として位置づけており、OpenAI 側では自動 prompt caching や batch 割引などの仕組みが対応します。

本当にコスト削減になるシナリオ

Prompt caching は「オンにすれば節約できる」スイッチではありません。明確な損益分岐点があります。同じプレフィックスが再利用される回数 × プレフィックス長 > キャッシュ書き込みの追加コスト です。

  • 長いシステムプロンプト + マルチターン対話:システムプロンプトが数千 Token、会話のターン数が多い場合はほぼ確実に得になります。
  • RAG + 固定ドキュメント集:変わらないポリシードキュメントやナレッジベースをプレフィックスに置き、ユーザーの質問だけを変化させます。
  • コード Agent / ツール呼び出し:ツール schema やリポジトリ構造の説明は通常、毎回の呼び出しで繰り返されます。
  • 単発・短いプレフィックスの呼び出し:キャッシュ書き込みのコストが節約額を上回る可能性があるため、無理にキャッシュしないでください。

キャッシュを無効化する5つのよくあるミス

  • プレフィックスにタイムスタンプやランダム ID を混入させる:固定位置に1つでも Date.now() を置くと、プレフィックス全体が変わってしまいます。
  • システムプロンプトを動的に結合する:ユーザーごとに異なるプレフィックスになると、キャッシュヒット率はほぼ 0 まで薄まります。
  • 履歴メッセージを要約圧縮する:毎ターン書き換えるとプレフィックスが不安定になります。
  • ユーザー入力を先頭に置く:最もよくある構造上のミスです。変数はできるだけ後ろに寄せるべきです。
  • 請求額だけを見てヒット率を見ない:ヒット率の指標がないと、キャッシュの効果をまったく帰属分析できません。

複数モデル間で同じキャッシュ戦略を再利用する

製品で Claude と GPT を併用している場合、キャッシュのセマンティクスはベンダー間で完全には一致しません(誰がキャッシュのブレークポイントを宣言するか、TTL の長さ、課金方法など)。この適配を1つの統一ゲートウェイの背後にまとめておくと、ビジネスコードはプロンプト構造を1つだけ維持すればよく、モデルを切り替える際に書き直す必要がありません。

Admesh のゲートウェイは下流に対して OpenAI 互換プロトコルを維持しているため、同じプロンプト構造のまま model フィールドだけを変えてベンダー間を切り替えられます。キャッシュヒット時の課金基準は請求の usage 明細に統一的に反映されるため、ベンダーごとに課金基準を個別に接続する必要はありません。

Admeshの最新料金(抜粋)

料金はAdmeshの最新設定に基づくUSD建て、100万トークンあたりの価格です。全リストはモデルカタログをご覧ください。

Admesh.ai モデル価格表:8 個の有効化済みモデルの価格とコンテキストウィンドウ
モデル名とIDコンテキストウィンドウ価格を入力 / 1M販売価格 / 1Mキャッシュヒット / 1M
Claude Fable 5anthropic/claude-fable-5
1M$3.25 / 1M$16.25 / 1M$0.325 / 1M
Claude Fable 5.1anthropic/claude-fable-5-1
1M$3.25 / 1M$16.25 / 1M$0.08125 / 1M
Claude Haiku 4.5anthropic/claude-haiku-4-5-20251001
200K$0.325 / 1M$1.625 / 1M$0.0325 / 1M
Claude Haiku 5.5anthropic/claude-haiku-5-5
1M$0.0325 / 1M$0.1625 / 1M$0.00325 / 1M
Claude Opus 4.5anthropic/claude-opus-4-5-20251101
200K$1.625 / 1M$8.125 / 1M$0.1625 / 1M
Claude Opus 4.6anthropic/claude-opus-4-6
1M$1.625 / 1M$8.125 / 1M$0.1625 / 1M
Claude Opus 4.7anthropic/claude-opus-4-7
1M$1.625 / 1M$8.125 / 1M$0.1625 / 1M
Claude Opus 4.8anthropic/claude-opus-4-8
1M$1.625 / 1M$8.125 / 1M$0.1625 / 1M

上記は標準のパブリックチャネルの単価であり、Tokenの実際の使用量に基づいて精算されます。 モデル一覧をすべて表示する

課金単位とキャッシュ Token の説明を見る →

実践チェックリスト

  1. プロンプトを「安定プレフィックス / 半安定部分 / ユーザー入力」の3段に分割し、安定部分を先頭に置く。
  2. 安定プレフィックスにタイムスタンプ、乱数、ユーザー ID が含まれないことを確認する。
  3. 請求の中でキャッシュの読み書き Token を個別に集計し、実際のヒット率に換算する。
  4. 固定の評価リクエストセットで定期的にリグレッションを行い、プロンプト変更でヒット率が崩れていないことを確認する。
  5. キャッシュ効果に下限を設ける(例:5% を下回ったらプロンプト構造をロールバックする)ことで、最適化のための最適化を避ける。

よくある質問

Prompt caching でどれくらい節約できますか?
プレフィックスの再利用回数とプレフィックス長に依存し、汎用的な数字はありません。経験上、システムプロンプトが 2K Token を超える場合、同じセッションが3ターンを超える場合、または同じドキュメントが繰り返し検索される場合に節約効果が最も顕著です。請求のキャッシュ Token 数 ÷ 総入力 Token 数で実際のヒット率を算出し、プロンプト構造の調整が必要か判断することをおすすめします。
キャッシュされた出力結果が他のユーザーに読まれますか?
いいえ。キャッシュされるのは同じ API Key / アカウント配下のプレフィックス計算状態であり、テナント間で共有されることも、あるレスポンスの結果が他のアカウントに露出することもありません。ただしセキュリティ上の理由から、再利用される可能性のあるプロンプトプレフィックスに機密データを置くことは推奨しません。
モデルを変えたらキャッシュは残りますか?
残りません。キャッシュの粒度は「モデル + プレフィックス」であり、モデルを切り替えることはキャッシュ空間を丸ごと変えることになるため、再ウォームアップが必要です。これが、マルチモデル切り替えが頻繁なアプリでキャッシュヒット率が低くなりがちな理由でもあります。

参考資料

これらのモデルを1つのゲートウェイ経由で呼び出す

Admeshは統一されたOpenAI互換APIを提供します。Claude、GPT、DeepSeekなどを1つのBase URLと1つのキーで利用可能。新規アカウントには期限のないトライアルクレジットを進呈。