プロンプトキャッシング
プロンプトキャッシングとは、モデルの提供元が直前に処理したプロンプトの冒頭部分について、その処理を再利用する仕組みです。まったく同じテキストで始まる次のリクエストは大幅な割引価格で課金され、応答も速くなります。この仕組みが何よりも報いる習慣は一つです。すべてのリクエストの冒頭を同一に保ち、変わる部分は末尾に置くことです。
キャッシュヒットの仕組み
言語モデルは、どのリクエストも最初のトークンから読みます。タスクの途中にあるAIエージェントは、指示、ツール定義、それまでの会話全体を呼び出しのたびに毎回送るため、長いタスクでは、この繰り返しの読み込みが支払いの大半を占めます。プロンプトキャッシングを使うと、提供元は直前に済ませた処理を省けます。リクエストの冒頭が最近のリクエストの冒頭とトークン単位で一致していれば、その区間は提供元が保持していたものから処理され、キャッシュ用の料金で課金されます。
それが起きるかどうかは、三つの細部で決まります。
- 前方一致である。 キャッシュの対象は、最初のトークンから最初の相違点までのすべてで、それより後ろは一切含みません。冒頭近くの一文字を変えれば、その位置より下のトークンはすべて、もう一度満額で読まれ、満額で課金されます。
- 期限切れになる。 エントリが残るのは数日ではなく、操作のない数分間です。その時間枠は提供元やモデルによって異なるため、長い間を空けたあとのリクエストは、中身が何一つ変わっていなくても満額を払います。
- 下限がある。 一定のプロンプト長を下回ると何もキャッシュされず、その最小値はモデルごとに決まっています。古いブログ記事から写した数字ではなく、提供元の最新ドキュメントで確認してください。
2026年9月時点で、Anthropic、OpenAI、Google はいずれも、現行モデルでのキャッシュ読み取りを通常の入力料金の約 10 分の 1 で課金しています。Google と OpenAI はキャッシュを自動で適用します。Anthropic はリクエスト内で指定したブレークポイントまでをキャッシュし、エントリの書き込みには割増料金がかかります。十対一という差は大きく、エージェントの実行コストを決めるのは、プロンプトの大きさよりも入力のうちキャッシュされた割合であることが少なくありません。
コンテキストを削ったら、エージェントのコストが上がった理由
私たちは顧客のウェブサイトを構築・編集する長時間稼働のエージェントを運用しており、あるサイト構築セッションが、上限のないコンテキストの代償を見せてくれました。4 時間弱のあいだに 622 回のモデル呼び出しを行い、そのあいだ毎回読み直す会話は、およそ 310,000 トークンまで膨らみました。モデルが実際に書き出したテキストは、請求額の約 6% にすぎません。残りはすべて、同じ履歴をもう一度読むための費用でした。
わかりやすい解決策は刈り込みでした。毎回の呼び出しの前に、エージェントがすでに対応を終えた古いツール結果を取り除くのです。自社のテスト用ワークスペースで、合計 366 回の実際のモデル呼び出しを測定しました。刈り込みが実際に作動した区間では、1 回あたりのプロンプトから削れたのはおよそ 23,000 トークンにとどまる一方で、1 回あたりのコストは約 28% 上がりました。刈り込み処理は最も古い結果から順に進むため、呼び出しのたびに、提供元が直前にキャッシュしたプレフィックスの内側で、少しずつ後ろの位置を書き換えていたのです。1 回あたりのキャッシュされない入力は 2,000〜8,000 トークンから 5,000〜25,000 トークンに増え、十対一の価格比のもとでは、それが節約分を飲み込みました。この計算は覚えておく価値があります。キャッシュ済みのプレフィックスの内側を変更するなら、損益分岐に届くだけでも、無効にするトークンのおよそ 9 倍を削らなければなりません。
代わりに効いたのは、削ることではなく上限を設けることでした。エージェントが蓄積できるコンテキストを 200,000 トークンに制限し、その上限に近づいたところで履歴を一度にまとめて圧縮するようにしました。呼び出しのたびに少しずつ編集するのをやめ、呼び出しごとの刈り込みはオフにしたのです。一度書き換えたあとは追記するだけの呼び出しが長く続く、という形こそ、キャッシングが報いる形です。私たちが得た教訓は、何かの変更でお金が浮いたと信じる前に、呼び出しごとにキャッシュされた入力とされなかった入力を読むことです。プロンプトの大きさだけを見ていたら、請求額が示すのとは正反対の結論になっていたからです。
キャッシュヒットを保つには
節約の大半は、設定ではなく並べ方から生まれます。モデル API の上で開発しているなら、次の四つの習慣でほぼすべてをカバーできます。
- 変わらないものを先に、変わるものを最後に。 指示、ツール定義、参照文書は冒頭に置き、呼び出し間でバイト単位まで同一に保ちます。システムプロンプトの冒頭近くにタイムスタンプ、ユーザー名、リクエスト ID があると、すべてのリクエストで人知れずキャッシュが無効になります。
- 編集せず、追記する。 新しいターンは会話の末尾に加えます。以前のターンをその場で書き換えたり、並べ替えたり、要約したりすると、編集箇所より後ろがすべて無効になります。私たちの刈り込みが一歩ずつ犯していたのが、まさにこの誤りです。
- 書き換えはまれに、一度にまとめて。 履歴を縮める必要があるなら、自分で決めた上限で一回の圧縮として行ってください。高くつく呼び出し一回と引き換えに、そのあと安い呼び出しが長く続きます。
- 大きさではなく内訳を測る。 提供元は、各レスポンスの使用量データで、キャッシュされた入力とされなかった入力を分けて報告しています。プロンプトは短くなったのにキャッシュされない入力が増えたなら、プロンプト長が何を示していようと、その変更はコストを上げています。
ここまでの数字は、AgentCeres(agentceres.com の AI Growth Officer)の運用から得たものです。そこでは専門エージェントのチームがページ、投稿、アウトリーチの草案を書き、外に出ていく仕事は既定で人の承認を待ちます。こうした呼び出しの上に成り立つ製品の価格を決めるなら、測定した呼び出しあたりのコストがなぜ価格の土台にあるべきかをAI製品の価格の決め方で解説しています。
FAQ
- プロンプトキャッシングは、モデルの回答をキャッシュすることと同じですか?
- 違います。レスポンスキャッシュは完成した回答を保存し、同一の質問に対してそれを再生するものですが、リクエストが同一になることのないエージェントにはほとんど役立ちません。プロンプトキャッシングが保持するのは提供元による入力の処理なので、モデルは毎回新しい回答を書きます。安く速くなるのは、共通する冒頭部分の読み込みだけです。
- 使うためにコードを変更する必要がありますか?
- 場合によります。Google と OpenAI は、プロンプトが十分に長ければ現行モデルで自動的に適用するので、作業の中心は変わらない内容を先頭に置くことです。Anthropic では、キャッシュするプレフィックスがどこで終わるかをリクエスト自体の中で指定する必要があります。いずれの場合も、ヒットしていると決めつけず、実際のレスポンスの使用量データを見て確かめてください。
- プロンプトキャッシングがあれば、長いコンテキストは無料になりますか?
- なりません。キャッシュされたトークンは安くなるだけで無料ではなく、非常に長い履歴を送り直すエージェントは、そのすべてに対して、呼び出しのたびに割引後の料金を払います。ある長さを超えると、保持するコンテキストを減らすほうが安上がりになります。だからこそ私たちにとっては、どんな刈り込みよりも、蓄積するコンテキストの上限のほうが重要でした。呼び出しごとに増えていくコストが、製品に付けられる価格をどう形づくるかは従量課金で解説しています。
An AI growth team that runs this for you
AgentCeres is a managed AI marketing team — you approve what ships. 14-day free trial, from $39/month.