タイトル: ツール名を変更すると、キャッシュがすべて消失する

Anthropicの新しいキャッシュ料金体系では、たった1文字の微調整——ツールの名前変更やシステムプロンプトへのタイムスタンプの追加など——によって、安価なキャッシュヒットがフル価格のミスへと変わり、請求額が数十倍に膨れ上がることがあります。

この変化は、Anthropicの2段階のキャッシュ割引によるものです。一部のモデルでは、キャッシュされた読み取りコストは通常の入力価格のわずか 0.025倍 ですが、他のモデルでは割引率は 0.1倍 となります。この割引は、リクエストが以前にキャッシュされたエントリと完全に一致する場合にのみ適用されます。ミス(不一致)の場合は基本料金で請求されるため、ヒットとミスの差は劇的に広がります。実際には、わずかなプロンプトの変更によって、コストが予想の40倍にまで跳ね上がる可能性があります。

なぜこの変更が重要なのか

Anthropicは、同じツールセットを繰り返し呼び出すエージェントによく見られるパターンである、同一プロンプトの再利用を促すためにキャッシュ階層を追加しました。考え方はシンプルです。プロンプトとツールの組み合わせの結果を一度保存し、その後の呼び出しで安価に取得できるようにすることです。新しい乗数は「取得」側のコストを大幅に下げますが、同時に「ミス」に対するペナルティもはるかに重くしています。

安定したシステムプロンプトに基づいてエージェントを構築してきた開発者は、意図的であれ偶発的であれ、わずかな変化がキャッシュの連鎖を断ち切ってしまうことに直面しています。その結果、サービスに対する「隠れた税金」が生じます。キャッシュヒット率の低下は、そのまま運用コストの増大に直結します。

何がキャッシュを壊すのか

Anthropicのドキュメントでは、上位レベルでの変更がそれ以下のすべてを無効にする階層構造について説明されています。実用上の結論として、一見無害に見える編集が、フル価格の請求へと連鎖する可能性があります。

  • ツールの定義 – ツールの追加、削除、名前の変更、または説明の変更は、ツール、システムプロンプト、およびすべてのメッセージ履歴のキャッシュを消去します。
  • ウェブ検索の切り替え – ウェブ検索ツールを有効にするブール値を切り替えると、システムプロンプトとメッセージキャッシュがクリアされます。
  • tool-choice パラメータ – 実行するツールを選択するパラメータを微調整すると、メッセージキャッシュのみが無効になります。
  • 画像ペイロード – 画像の追加または削除は、メッセージキャッシュにのみ影響します。

開発者が意図せず引き起こしてしまう一般的なパターン:

  1. ツールの順序変更 – 一部のコードベースでは、デプロイのたびにツールの辞書をソートしています。新しい順序は異なるキャッシュキーを作成するため、毎回ミスが発生します。
  2. タイムスタンプ付きプロンプト – システムプロンプトに「generated at HH:MM:SS」という文字列を埋め込むと、すべてのリクエストがユニークになり、確実にミスが発生します。
  3. プロンプト断片のローテーション – 挨拶やバージョンバナーを入れ替えると、プロンプトのハッシュが変わり、キャッシュが壊れます。

隠れたコストを見つける

Anthropicの使用ログでは、以下の3つのフィールドを通じてキャッシュの動態を確認できます。

  • cache_read_input_tokens – キャッシュエントリから読み取られたトークン。
  • cache_creation_input_tokens – 新しいキャッシュエントリの保存を引き起こしたトークン。
  • input_tokens – 通常の料金で請求されるトークン(キャッシュ読み取り後の残りのトークン)。

cache_read_input_tokens が減少し、同時に input_tokens が急増した場合、プロンプトスタックのどこかに変化があったことを示しています。これらのメトリクスを監視することで、請求額が膨れ上がる前にチームが対応できるようになります。

開発者の対応

新しい価格体系という現実に直面し、多くのチームは現在、プロンプトの安定性を第一級のパフォーマンス指標として扱っています。一般的な戦略には以下が含まれます。

  • 静的なシステムプロンプト – プロンプトをバージョン管理されたファイルに保存し、実行時の変更なしに注入する。
  • 決定論的なツールの順序付け – 辞書の順序や外部ジェネレーターに頼るのではなく、コード内で直接ツールリストを定義する。
  • タイムスタンプの削除 – ロギングやタイミング情報を、プロンプト文字列に影響を与えない別のメタデータチャネルに移動する。
  • キャッシュを意識したテスト – フルプロンプト(システム + ツール + メッセージ)のハッシュがビルド間で一定であることを検証するユニットテストを追加する。

これらの慣行は、わずかなエンジニアリングのオーバーヘッドを伴いますが、キャッシュミスがもたらす「隠れた税金」から身を守る手段となります。

Anthropicの見解

Anthropicは、より深い割引を提供することで再利用を促し、サーバー全体の計算負荷を軽減できると主張しています。キャッシュ読み取りを劇的に安価にすることで、開発者がプロンプトを絶えず作り直すのではなく、同じツールセットを繰り返し呼び出すエージェントを設計することを期待しています。そのトレードオフとして、再利用できない呼び出しに対するペナルティは高くなりますが、同社はこれが開発者をより適切な「プロンプトの衛生管理(prompt hygiene)」へと促すものだと述べています。

批評家たちは、実世界の多くのエージェントは、コンテキストやタイムスタンプの追加、あるいは動的なツールの選択など、プロンプトを即座に調整する必要があることを指摘しています。こうしたワークロードにおいては、キャッシュヒットの有無にかかわらず一律料金を適用するプロバイダーと比較して、Anthropicの新しい価格設定は魅力が低下する可能性があります。

今後の注目点

  • 価格改定 – コミュニティからのフィードバックにより、キャッシュのヒットとミスの差が大きすぎると判断された場合、Anthropicは倍率を微調整する可能性があります。
  • キャッシュ制御機能 – 将来的なAPIのアップデートにより、プロンプトのどの部分をキャッシュキーから除外するかを開発者が指定できるようになり、中間的な解決策が提供される可能性があります。
  • 競合他社の対応 – 他のLLMプロバイダーも、より平準化された価格設定を提供したり、よりきめ細かなキャッシュ制御を公開したりすることで、競争力を維持するために独自のキャッシュモデルを調整する可能性があります。

まとめ

Anthropicの新しいキャッシュ価格設定により、プロンプトのキャッシュミスによるコストは、もはや些細な不便ではありません。それはプロジェクトの予算を劇的に変動させ得る財務的な要因となります。システムプロンプト、ツールの定義、および関連するメタデータを不変(immutable)に保つことは、効率的なコードを書くことと同じくらい重要になっています。プロンプトの決定性を測定可能な指標として扱うチームは、予期せぬ請求を回避し、AIエージェントの費用をコントロールし続けることができるでしょう。