Claude Codeの開発から学んだこと:プロンプトキャッシングがすべて
原題: Lessons from building Claude Code: Prompt caching is everything
📝 要約
Anthropic のClaudeチームが、AI会話システム「Claude Code」の開発で学んだプロンプトキャッシング(過去の計算結果を再利用する技術)の最適化方法を紹介しています。キャッシングは「前方一致マッチング」という仕組みで、リクエストの最初から最後まで同じ内容が続くほど、より多くの計算結果が再利用できます。そのため、システムプロンプトなどの固定部分を最初に配置し、会話メッセージなどの変わる部分を最後に配置することが重要です。また、セッション中にモデルやツールを変更するとキャッシュが無効になるため、避けるべきです。キャッシュ率を監視し、コンテキストウィンドウが満杯になった時の圧縮処理でもキャッシュを保つことが、コスト削減と応答性能の向上に直結します。
📌 ポイント
- プロンプトキャッシングは前方一致マッチングで動作するため、リクエストの最初の部分が同じほど効率的にキャッシュが機能する
- 固定部分(システムプロンプト)を最初に、変動部分(会話)を最後に配置することで、最大のキャッシュ効果が得られる
- セッション中にモデルやツールセットを変更するとキャッシュが全て無効になるため、ツールを使って状態遷移を表現する方が良い
- 日付変更など情報更新が必要な場合は、システムプロンプトを変更せず会話メッセージに含める方法が推奨される
- キャッシュ率を監視することは稼働率監視と同じくらい重要で、数パーセント低下するだけでコストと遅延が大きく増加する
💡 わかりやすく言うと…
プロンプトキャッシングは、図書館で毎回同じ基本参考資料(辞書など)をコピーするのではなく、開架に置きっぱなしにして、新しい質問が来るたびに基本部分は共用し、その質問に関連する新しい情報だけを追加していく、というようなものです。最初の部分が全く同じなら、コピー作業なしにすぐ使えます。