仕組み
モデルはプロンプトを先頭から読みます。新しいリクエストの冒頭が最近のリクエストと同じトークンなら、プロバイダーは処理をやり直さずに再利用し、そのトークンに安いキャッシュ料金を適用できます。対象になるのは先頭から一致する部分だけです。1トークンでも変わると、それ以降はすべて新規入力になります。
エージェント、チャットアプリ、文書Q&Aは、同じ指示、ツール定義、文書を繰り返し送信します。そのため、入力料金よりキャッシュ料金のほうが重要です。
キャッシュ済みトークンの料金
| モデル | 入力 / 1M | キャッシュ / 1M | キャッシュ料金の割合 |
|---|---|---|---|
| Claude Opus 5.5 | $1.40 | $0.07 | 5% |
| Claude Sonnet 5.5 | $0.79 | $0.079 | 10% |
| GPT-6 Astra | $2.50 | $0.25 | 10% |
| GPT-6 Sol | $0.50 | $0.05 | 10% |
| Gemini 3.1 Pro | $0.50 | $0.08 | 16% |
| Gemini 3.8 Flash | $0.22 | $0.032 | 14.5% |
| DeepSeek V4.1 Flash | $0.03 | $0.00074 | 2.5% |
| Qwen 3.8 Max | $1.20 | $0.15 | 12.5% |
Zurelayの現在の料金です。各モデルのページで料金一覧を確認できます。
Claudeは指定した部分をキャッシュします
Claudeはcache_controlで指定したブロックを5分間キャッシュします。"ttl": "1h"を使うと1時間です。キャッシュへの書き込み料金は、5分間なら入力料金の1.25倍、1時間なら2倍です。Anthropicでの読み取り料金は、旧モデルでは入力料金の10分の1、OpusとSonnet 5.5では0.05倍、Fable 5.1では0.025倍です。Zurelayでのキャッシュ料金は各モデルのページで確認できます。Claude Codeはプロンプトのキャッシュ対象を自動で指定します。ほかのほとんどのモデルは、繰り返される冒頭部分を自動でキャッシュします。
キャッシュを有効に使う方法
- 変わらない内容を先頭に置きます。指示、ツール定義、参考文書の順に置き、その後に会話と新しい質問を続けます。
- 先頭部分をバイト単位で同じに保ちます。冒頭のタイムスタンプやリクエストID、ツール一覧の並び順が変わると、毎回キャッシュが効かなくなります。
- 続きのリクエストは早めに送ります。キャッシュは数分で期限切れになります。短時間に続けて送ればキャッシュが効きますが、1時間後のリクエストでは最初から処理されます(Claudeで1時間のキャッシュを指定した場合を除きます)。
動作を確認する
各レスポンスの使用量を見ると、キャッシュから読み込まれた量がわかります。Chat Completions では usage.prompt_tokens_details.cached_tokens、Anthropic の Messages API では cache_read_input_tokens と cache_creation_input_tokens です。リクエストを繰り返してもキャッシュの値がゼロのままなら、プロンプトの冒頭で何かが変わっています。
キャッシュが月間コストに与える影響は、LLM コスト計算ツールでキャッシュの割合を設定して確認できます。