チャットのやり取りをデバッグする

Visual Studio Codeには、AIにプロンプトを送信したときに何が起こるかを理解するのに役立つツールが用意されています。これらのツールを使用して、エージェントがプロンプトファイルをどのように発見し、ツールを呼び出し、言語モデルにリクエストを行い、応答を生成するかを検査できます。

VS Codeは2つの補完的なデバッグツールを提供しています

  • エージェントデバッグログパネル (プレビュー) は、ツール呼び出し、LLMリクエスト、プロンプトファイルの検出、エラーなど、チャットセッション中に発生するすべての出来事を時系列のイベントログとして表示します。
  • チャットデバッグビュー は、完全なシステムプロンプト、ユーザープロンプト、コンテキスト、ツール呼び出しのペイロードなど、各LLMリクエストと応答の生の詳細を表示します。

エージェントデバッグログパネル

注意

エージェントデバッグログパネルは現在プレビュー中です。

エージェントデバッグログパネルは、プロンプトを送信したときに何が起こるかを理解するための主要なツールです。チャットセッション中のエージェントのインタラクションの時系列イベントログを表示するため、カスタムエージェントやオーケストレーションされたサブエージェントワークフローのデバッグに特に役立ちます。

エージェントデバッグログパネルを開くには

  • 以下の設定を有効にします

    • github.copilot.chat.agentDebugLog.fileLogging.enabled Open in VS Code Open in VS Code Insiders
  • チャットビューの省略記号 (...) メニューを選択し、Show Agent Debug Logs を選択します。

  • コマンドパレットから**Developer: Open Agent Debug Logs** を実行します。

エージェントデバッグパネルでは、4つのビューを切り替えることができます

  • ログ: セッション中のイベントを時系列で表示するリストで、特定のイベントタイプに絞り込むためのフィルタリングオプションがあります。

  • エージェントフローチャート: セッション中のエージェントとサブエージェント間のインタラクションを視覚化するフローチャートです。

  • 概要: 合計ツール呼び出し数、トークン使用量、エラー数、全体期間など、セッションに関する集計統計です。

  • キャッシュエクスプローラー: 連続するモデルリクエストのサイドバイサイド差分表示で、プロンプトキャッシュミスを診断するのに役立ちます。

注意

エージェントデバッグログパネルは、現在のセッションと過去のセッションの両方を表示するようになりました。ログはローカルディスクに永続化されるため、過去のセッションを閲覧できます。

ログビュー

ログビューには、チャットセッション中に発生したイベントの時系列リストが表示されます。各イベントには、タイムスタンプ、イベントタイプ、および概要情報が含まれます。LLMリクエストの完全なシステムプロンプトや、ツール呼び出しの入力と出力など、詳細を表示するために各イベントを展開できます。

Screenshot of the list of events in Agent Logs.

フラットリスト表示と、サブエージェントごとにイベントをグループ化するツリービューを切り替えることができます。フィルターオプションを使用して、特定のイベントやイベントタイプに焦点を当てることができます。

エージェントデバッグパネルを開くと、ログビューがデフォルトビューです。概要ビューから**ログを表示**を選択してログビューに切り替えることもできます。

概要ビュー

概要ビューは、合計ツール呼び出し数、トークン使用量、エラー数、全体期間など、チャットセッションに関する集計統計を提供します。

Screenshot of the summary view in Agent Logs, showing aggregate statistics for the chat session.

概要ビューから、**ログを表示**、**エージェントフローチャート**、または**キャッシュエクスプローラー**を選択して、いずれかのビューに切り替えることができます。

概要ビューを開くには

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

  2. パネル上部のパンくずリストでセッションの説明を選択します。

エージェントフローチャートビュー

エージェントフローチャートビューは、エージェント間のイベントとインタラクションのシーケンスを視覚化し、複雑なオーケストレーションを理解しやすくします。

Screenshot of the flow chart in Agent Logs, showing the interactions between agents and sub-agents.

フローチャートをパンしたりズームしたりでき、フローチャート内の任意のノードを選択して、そのイベントの詳細を表示できます。

フローチャートビューを開くには、概要ビューから**Agent Flow Chart**を選択します。

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

  2. パネル上部のパンくずリストでセッションの説明を選択します。

  3. 概要ビューから**エージェントフローチャート**を選択します。

キャッシュエクスプローラービュー

キャッシュエクスプローラービューは、セッション内の連続するモデルターンリクエストを比較することで、プロンプトキャッシュミスを診断するのに役立ちます。プロンプトキャッシュにより、言語モデルプロバイダーは以前のリクエストと一致するリクエストのプレフィックスを再利用でき、これによりレイテンシーとトークンコストが削減されます。キャッシュヒット率が低い場合、キャッシュエクスプローラーはプロンプトプレフィックスがどこで分岐するかを正確に特定します。

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

このビューには2つのパネルがあります

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

メインコンテンツエリアには以下の情報が含まれます

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

キャッシュエクスプローラービューを開くには

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

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

  3. 選択したセッションのキャッシュエクスプローラービューを開くには、**Cache Explorer**を選択します。

デバッグイベントをチャットにアタッチする

エージェントデバッグイベントのスナップショットをチャット会話にアタッチし、現在のセッションについてAIに質問することができます。これは、トークン使用量、どのカスタマイズがロードされたか、どのようなツール呼び出しが行われたか、リクエストにどのくらいの時間がかかったかを理解するのに役立ちます。

デバッグイベントをチャットにアタッチするには

  1. チャットセッションのエージェントログビューを開きます

  2. エージェントデバッグパネルの右上にあるスパークルアイコンを選択します。これにより、デバッグイベントのスナップショットがコンテキストとしてアタッチされたチャットビューが開きます。

または、/troubleshoot スラッシュコマンドを使用して、まずエージェントデバッグパネルを開かずに、チャットセッションについて直接質問することもできます。例えば、/troubleshoot list all paths you tried to load customizations/troubleshoot how many tokens did you use in #session と入力します。

注意

/troubleshoot コマンドを使用するには、 github.copilot.chat.fileLogging.enabled VS Codeで開く VS Code Insidersで開く 設定が有効になっている必要があります。

セッションのエクスポートとインポート

デバッグセッションをOpen Telemetry JSON (OTLP形式) ファイルにエクスポートして、他のユーザーと共有したり、オフラインで分析したりできます。以前にエクスポートしたファイルをインポートして、エージェントデバッグパネルで表示することもできます。

セッションをエクスポートするには

  1. エージェントデバッグログパネルを開き、エクスポートしたいセッションに移動します。

  2. パネルの右上ツールバーにある**エクスポート**アイコン (ダウンロード) を選択します。

  3. JSONファイルを保存する場所を選択します。

セッションが選択されていない場合、VS Codeはエクスポートするアクティブなデバッグセッションがないという通知を表示します。

セッションをインポートするには

  1. エージェントデバッグログパネルの右上ツールバーにある**インポート**アイコン (アップロード) を選択します。

  2. 以前にエクスポートされたJSONファイルを選択します。

インポートされたセッションは、ライブセッションと同様に、概要とメトリックとともにエージェントデバッグログパネルで開きます。

注意

50 MBを超えるファイルをインポートすると、実際のファイルサイズとともに警告ダイアログが表示されます。この警告が表示された場合は、ファイルをトリミングするか、より短いセッションをエクスポートすることを検討してください。

チャットデバッグビュー

チャットデバッグビューは、各AIリクエストと応答の生の詳細を表示します。言語モデルに送信および受信された正確なシステムプロンプト、ユーザープロンプト、コンテキスト、またはツール応答ペイロードを検査する必要がある場合に使用します。

チャットデバッグビューを開く

チャットデバッグビューを開くには

  • チャットビューのオーバーフローメニューを選択し、**Show Chat Debug View** を選択します。
  • コマンドパレットから**Developer: Show Chat Debug View** コマンドを実行します。

Screenshot of the Chat Debug view, showing the details of a chat request and response.

デバッグ出力の読み取り

チャットデバッグビューの各インタラクションには展開可能なセクションが含まれています

セクション 表示内容 確認すべき点
システムプロンプト AIの動作、機能、制約を定義する指示。 カスタム指示やエージェントの説明が正しく表示されていることを確認します。
ユーザープロンプト モデルに送信されたプロンプトの正確なテキスト。 #-メンションが実際のコンテンツに解決されているかを含め、プロンプトが期待通りに送信されたことを確認します。
コンテキスト リクエストにアタッチされたファイル、シンボル、その他のコンテキスト項目。 期待されるファイルとコンテキストが表示されていることを確認します。ファイルが見つからない場合は、インデックス化されていないか、コンテキストウィンドウが満杯になっている可能性があります。
応答 推論を含む、モデルの応答の全文。 生応答を確認して、モデルがリクエストをどのように解釈したかを理解します。
ツール応答 リクエスト中に呼び出されたツールの入力と出力。 ツールが正しい入力を受け取り、期待される出力を返したことを確認します。MCPサーバーのデバッグに役立ちます。

各セクションを展開して詳細を確認できます。エージェントを使用している場合、単一のリクエストの一部として複数のツールが呼び出される可能性があるため、これは特に役立ちます。

よくあるトラブルシューティングシナリオ

AIがワークスペースファイルを無視する

AIがコードベースを参照せずに一般的な情報で応答する場合

  1. エージェントログを開き、**Discovery** イベントを確認して、ワークスペースファイルがインデックス化されたことを確認します。
  2. チャットデバッグビューを開き、**コンテキスト** セクションを確認して、ワークスペースファイルがコンテキストに表示されていることを確認します。表示されていない場合は、ワークスペースインデックス作成がアクティブであることを確認します。
  3. 適切なファイルが確実に含まれるように、明示的な#-メンション(#file#codebase など)を追加してみてください。コンテキストの管理について詳しく学びましょう。

MCPツールが呼び出されない

AIが期待されるツールを呼び出さない場合

  1. エージェントログを開き、**ツール呼び出し**フィルターを確認して、ツールが呼び出されたかスキップされたかを確認します。
  2. チャットデバッグビューを開き、**システムプロンプト**セクションを確認して、ツールが利用可能なツールにリストされていることを確認します。
  3. ツールが見つからない場合は、MCPサーバーが実行されており、正しく構成されていることを確認します。
  4. プロンプトで#tool-nameを使用してツールを明示的に言及してみてください。

AIの応答が不完全または途中で切れる

応答が途中で切れているように見える場合

  1. エージェントログで**LLMリクエスト**イベントを確認し、トークンの使用状況を確認します。
  2. コンテキストウィンドウが満杯になると、モデルが応答を途中で切り詰める可能性があります。新しいチャットセッションを開始してコンテキストをリセットしてください。

プロンプトファイルが適用されない

カスタム指示やプロンプトファイルが有効にならない場合

  1. エージェントログを開き、**Discovery** イベントを確認して、ファイルがロードされたか、スキップされたか、検証に失敗したかを確認します。
  2. ファイルの場所とapplyToパターンが現在のコンテキストと一致することを確認します。
  3. エラーの詳細については、チャットカスタマイズ診断を確認してください。
© . This site is unofficial and not affiliated with Microsoft.