Cache Explorer でプロンプト キャッシングを診断する

Visual Studio Code で AI にプロンプトを送信すると、言語モデルプロバイダーは以前のリクエストと一致するリクエストの部分を再利用できます。これをプロンプトキャッシングと呼びます。Cache Explorer ビューを使用すると、チャットセッション内の連続するモデルリクエストを比較してプロンプトのキャッシュミスを診断できるため、トークンコストとレイテンシを削減できます。

Cache Explorer は、エージェントデバッグログパネルのビューの 1 つです。

プロンプトキャッシングが重要な理由

プロンプトキャッシングを使用すると、モデルプロバイダーは以前のリクエストと一致するリクエストのプレフィックスを再利用できます。リクエストの先頭が前のリクエストと同一である場合、プロバイダーはその部分を再処理するのではなく、キャッシュから提供します。キャッシュヒット率が高くなると、レイテンシとトークンコストの両方が削減されます。

キャッシュは、リクエストの一致するプレフィックスにのみ適用されます。連続する 2 つのリクエストの内容が分岐した瞬間から、その時点より後のすべての部分がキャッシュミスになります。ツール定義の並び替えや命令の変更など、プロンプトの早い段階での小さな変更により、リクエストの残りの部分のキャッシュが無効になります。Cache Explorer は、プロンプトのプレフィックスが分岐している正確な場所を特定するため、キャッシュヒット率の低下を把握して対処するのに役立ちます。

Cache Explorer を開く

  1. チャットビューの省略記号 (...) メニューを選択し、Show Agent Debug Logs を選択して、エージェントデバッグパネルを開きます。

  2. 上部にあるパンくずリストのセッション説明を選択して、サマリービューに移動します。

  3. Cache Explorer を選択して、選択したセッションの Cache Explorer ビューを開きます。

Screenshot showing the Cache Explorer view in Agent Logs, with a side-by-side diff of two model requests.

Cache Explorer を読み解く

Cache Explorer には 2 つのパネルがあります

  • サイドパネルには、ユーザーリクエストごとにグループ化された、セッション内のすべてのモデルターンが一覧表示されます。各ターンには、キャッシュヒット率、所要時間、モデル名、タイムスタンプが表示されます。ターンを選択すると、前のターンと比較できます。
  • メインコンテンツには、現在のリクエストと前のリクエストの間のプレフィックスの左右比較 diff が表示されます。

メインコンテンツ領域には次の情報が含まれます

  • キャッシュパフォーマンス: キャッシュヒット率、および合計のうち再利用された入力トークンの数。
  • プロンプトシグネチャ: システム命令、ツール定義、メッセージなど、リクエスト内の各コンポーネントの視覚的な概要で、色分けされたステータスインジケーターが付いています。最初の分岐点は、プロンプトキャッシュが無効になる場所を示します。
  • コンポーネント: システム命令、ツール定義、および個々のメッセージの展開可能なセクションで、2 つのリクエスト間のテキストレベルの diff を示します。

キャッシュミスの原因を見つけるには、プロンプトシグネチャで最初の分岐点を見つけ、対応するコンポーネントを展開して、2 つのリクエスト間で変更された正確なテキストを確認します。

キャッシュヒット率を向上させる

プロンプトキャッシングは、リクエストの早い部分がターン間で安定している場合に最も効果を発揮します。プロンプトのプレフィックスを一定に保つには、次のプラクティスを使用します。

  • 開始前に設定を固定する: セッション中にモデル、推論エフォート、コンテキストサイズ、または有効なツールや MCP サーバーを切り替えると、キャッシュが再構築されます。これらを事前に選択するか、キャッシュの境界でのみモデルを切り替える自動モデル選択を使用します。
  • 命令を安定させる: セッション中に命令ファイルやカスタムエージェントの定義を変更すると、キャッシュが無効になります。詳細については、コンテキストエンジニアリングガイドを参照してください。
  • 変動するコンテキストは後から追加する: ファイルの添付やターミナル出力など、頻繁に変更されるコンテンツは、会話の後半に配置します。
  • サブエージェントで探索を分離する: サブエージェントで調査を実行し、親セッションのプロンプトを安定させます。
  • 休憩後は新しく始める: キャッシュは非アクティブ状態が続くと期限切れになります。新しいセッションを開始するか、/compact を実行して、完全な履歴ではなく短い要約から再構築します。
© . This website operates independently and is not affiliated with or endorsed by Microsoft. All brand names, logos, and trademarks are the property of their respective owners.