Skill · Anthropic Claude Blog
プロンプトキャッシュでClaude APIのコストを90%削減
写真: Growtika Unsplashより
API呼び出しのたびに同一のシステムプロンプトやコンテキストを再処理するのはやめよう。プロンプトキャッシュは、繰り返し現れるプロンプトのプレフィックスを保存し、リクエスト間で再利用することで、標準の入力料金から90%割引を適用し、RAGシステム、マルチターンの会話、バッチワークフローのコストを大幅に削減する。
Claudeのプロンプトキャッシュ機能を使うと、プロンプトの一部(通常はシステム指示、ツール定義、静的なコンテキスト)をキャッシュ可能としてマークできる。これにより、APIは毎回同一のトークンを再処理する代わりに、処理済みの表現をリクエスト間で再利用する。これは、同じ大規模な指示セットやナレッジベースが繰り返し送信される本番ワークフローにおいて特に強力である。
実装するには、少なくとも1024トークンのコンテンツブロック(Sonnet/Opusモデルの場合)にcache_control: {"type": "ephemeral"}を使ってキャッシュのブレークポイントを設定する。最初のリクエストでは、Claudeはすべてを通常どおり処理する。同一のプレフィックスを持つ後続のリクエストでは、システムはキャッシュ層からキャッシュされたバージョンを取得し、新しく追加したサフィックスのトークンのみを処理する。キャッシュヒットには標準入力料金のおよそ10%を支払うことになる。
実際の例を挙げよう。20,000トークンの企業ナレッジベースを使ったカスタマーサポートチャットボットを運用する場合、顧客のメッセージごとにそのベースを送信すると、Claude Sonnet 5.5では100リクエストあたり4ドルかかる。キャッシュを使えば、同じ100リクエストのコストは約0.25ドルになる。フル料金がかかるのは、顧客の実際のメッセージ(キャッシュされないサフィックス)のみだからだ。これをBatch API(非同期処理でさらに50%の割引)と組み合わせれば、トークンコストで95%以上の節約が見込める。
なお、キャッシュされたプレフィックスはデフォルトで5分後に失効し、キャッシュヒットのたびにリフレッシュされるため、このTTLはあなたのトラフィックパターンにとって重要である。高頻度のワークロードでは、デフォルトの5分で通常は問題ない。クエリが少ない場合は、1時間のTTLオプション(APIリクエストでttl: "1h"を指定することで利用可能)を検討するとよい。
情報源とクレジット
元の情報源: Anthropic Claude Blog