DEV Community 日本語
フォロー
Claude プロンプト キャッシュ: エージェント ループが 20 ブロックのルックバックを逃す理由
Claudeのプロンプトキャッシングは、キャッシュエントリの20ブロックのルックバックウィンドウによって妨げられます。複数のツール呼び出しを伴うエージェント的なターンは、この制限をすぐに超える可能性があり、キャッシュミスや高価なフルプロンプトの書き直しを引き起こします。キャッシングを維持するために、末尾に単一のマーカーを置くのではなく、約15ブロックごとにローリングブレークポイントを配置してください。リクエストごとに4つのブレークポイントの予算があり、1つはシステムとツール用に予約されています。各新しいリクエストの前に、古いブレークポイントがクリアされていることを確認してください。思考ブロックはキャッシュアンカーとして機能できないため、代わりにキャッシュ可能なコンテンツタイプを選択してください。キャッシュ無効化は階層化されており、ツール定義の変更やモデルの切り替えを除き、変更された階層とその後のもののみに影響します。システムメッセージをトップレベルのシステムプロンプトを編集するのではなく、メッセージリストに追加することで、キャッシュが保持されます。キャッシュパフォーマンスを正確に診断するために、input_tokens、cache_creation_input_tokens、cache_read_input_tokensの3つの使用フィールドすべてをログに記録してください。並列リクエストを行う場合、キャッシュ書き込みを活用するために、最初の要求がストリーミングを開始した後にのみ後続の要求を開始してください。ツール呼び出しのレイテンシが5分を超えると、キャッシュエントリが期限切れになる可能性があり、より長いTTLが必要になります。最小キャッシュ可能プレフィックス長はモデルによって異なるため、短いプレフィックスはまったくキャッシュされない場合があります。