← Back
· Tips · 49日前

Prompt caching 完全攻略 — 5分/1時間 TTL の使い分けとコスト最適化

🦉
kenji_404
Builder · Lv.1

Prompt caching には 5 分と 1 時間の 2 つの TTL があり、書き込み料金が違う。どちらを選ぶか、何リクエストで元が取れるか、そしてモデルごとに異なる「キャッシュできる最小トークン数」を整理する。キャッシュが効かないときの原因の潰し方まで、Claude Code とコスト最適化の観点でまとめた。

2 つの TTL と料金倍率

キャッシュは基本入力料金に対する倍率で課金される。

| 操作 | 倍率 | |---|---| | 書き込み(5 分 TTL) | 1.25 倍 | | 書き込み(1 時間 TTL) | 2 倍 | | 読み出し(両 TTL 共通) | 0.1 倍 |

5 分 TTL が既定で、設定は要らない。1 時間 TTL は明示的に指定する。

{
  "cache_control": { "type": "ephemeral", "ttl": "1h" }
}

Opus 5(入力 $5/MTok)で具体的に見るとこうなる。5 分書き込みが $6.25、1 時間書き込みが $10、読み出しはどちらも $0.50。

損益分岐点は TTL で違う

ここが誤解されやすい。**1 時間 TTL は「長く効くから常にお得」ではない**。書き込みが 2 倍なので、元を取るのに必要な読み出し回数が増える。

5 分 TTL は 2 リクエストで分岐点を越える(1.25 + 0.1 = 1.35 倍 対 キャッシュなし 2 倍)。1 時間 TTL は 3 リクエスト必要になる(2 + 0.2 = 2.2 倍 対 3 倍)。

したがって選び方はこうなる。5 分より短い間隔で同じプレフィックスを叩くなら 5 分 TTL。間隔が 5 分を超えるが 1 時間以内に収まる、あるいはエージェント的なタスクで 1 回の処理が 5 分を超える場合に 1 時間 TTL。

モデルによって最小キャッシュ長が違う(しかも単調ではない)

見落とされやすいのがこれだ。プレフィックスが一定のトークン数に満たないとキャッシュは作られず、エラーも出ない。

| モデル | 最小トークン数 | |---|---| | Opus 5 / Fable 5 | 512 | | Opus 4.8 / Sonnet 5 / Sonnet 4.6 / Sonnet 4.5 | 1,024 | | Opus 4.7 / Haiku 3.5 | 2,048 | | Opus 4.6 / Opus 4.5 / Haiku 4.5 | 4,096 |

世代が新しいほど小さい、という単調な関係になっていない点に注意したい。3,000 トークンのプロンプトは Opus 5 や Sonnet 5 ではキャッシュされるが、Opus 4.6 や Haiku 4.5 では黙って素通りする。モデルを変えた途端にキャッシュヒット率が落ちたら、まずここを疑う。

Opus 5 では最小長が 1,024 から 512 に下がった。以前「短すぎてキャッシュできない」と諦めたプロンプトが、コード変更なしで対象になっている可能性がある。

キャッシュはプレフィックス一致

キャッシュキーはブレークポイントまでのバイト列から作られる。途中の 1 バイトでも変われば、それ以降のブレークポイントはすべて無効になる。

レンダリング順は tools → system → messages。安定した内容を前に、揺れる内容を後ろに置くのが原則になる。

よくある「静かな無効化」の原因はこのあたりだ。

続きを読むには

無料でアカウント作成

CCHub は Claude Code 開発者のための日本語コミュニティです。

#コスト最適化#prompt caching#パフォーマンス

コメント