VS Codeのエージェントモードを拡張するには、を試してください!

VS Codeでaskモードを使用する

Visual Studio Codeのチャットでは、自然言語を使って大規模言語モデル(LLM)と対話し、コードに関する助けを得ることができます。チャットのaskモードは、コードベース、コーディング、および一般的な技術概念に関する質問をするために最適化されています。askモードは、コードベースの理解を深めたり、アイデアをブレインストーミングしたり、コーディングタスクのヘルプを得たりするのに特に役立ちます。

前提条件

なぜaskモードを使用するのですか?

askモードは、コードベース、コーディング、および一般的な技術概念に関する質問に答えるために最適化されています。これを使用して、以下のことができます:

  • コードベースに関する質問をします。例えば、「データベース接続文字列はどこで定義されていますか?」や「ソート関数を説明してください」などです。
  • アイデアをブレインストーミングします。例えば、「アプリケーションのパフォーマンスを向上させるにはどうすればよいですか?」や「検索機能を実装する3つの異なる方法を提案してください」などです。
  • コーディングタスクのヘルプを得ます。例えば、「新しいReactコンポーネントを作成するにはどうすればよいですか?」や「ファクトリーパターンを実装するにはどうすればよいですか?」などです。

askモードでは、応答にコードブロックが含まれることがあり、それをコードベースに適用できます。これは、単一ファイル内の小さな編集にはうまく機能します。ただし、複数のファイルにまたがる大きな変更や、より複雑なコーディングタスクには、editモードagentモードの方が適しています。

askモードを使用する

VS Codeでaskモードを開始するには、次の手順に従ってください:

  1. チャットビューを開き (⌃⌘I (Windows、LinuxではCtrl+Alt+I))、チャットモードセレクターからAskを選択します。

    Screenshot showing the Chat view, showing the mode dropdown with "Ask" selected.

    VS Codeの安定版またはInsiders版で直接askモードを開きます。

  2. チャット入力フィールドに質問を入力し、送信 () を選択して送信します。

    開始するために、これらの質問例のいくつかを試してみてください:

    • 「ファクトリーデザインパターンとは何ですか?」
    • 「JavaScriptでfetch APIを使用するにはどうすればよいですか?」
    • 「新しいReactコンポーネントを作成するにはどうすればよいですか?」
  3. コンテキストを追加を使用するか、特定のワークスペースファイルや#codebaseのような事前定義されたコンテキスト項目を#-メンションすることで、チャットプロンプトにコンテキストを追加します。

    コンテキストを追加することで、より関連性の高い応答を得ることができます。例えば、現在のプロジェクトに固有の質問をするには、#codebaseコンテキスト項目を使用できます。チャット入力フィールドに#を入力すると、利用可能なコンテキスト項目の一覧が表示されます。

    コンテキストを使用したプロンプトの例をいくつか示します:

    • 「#codebaseのどこでDB接続文字列が定義されていますか?」
    • 「#calculator.test.jsではどのテストフレームワークが使用されていますか?」
    • 「#changesでの変更点を要約してください」

    チャットプロンプトへのコンテキストの追加について詳しく学んでください。

  4. 質問に応じて、応答にはコードブロック、ターミナルコマンド、リンク、コード内のシンボルへの参照など、さまざまな種類のリッチコンテンツが含まれる場合があることに注意してください。

    コードブロックを適用したり、統合ターミナルで直接ターミナルコマンドを実行したりする方法を学んでください。

チャットからコードブロックを適用する

チャットの応答にコードブロックが含まれている場合、それらを個別にワークスペース内の対応するファイルに適用できます。VS Codeはスマート適用を実行し、ファイル内の適切な場所に変更を挿入します。

コードブロックをコードベースに適用するには、コードブロックにカーソルを合わせ、エディターに適用ボタンを選択します。VS Codeは提案された変更を既存のコードに適用しようとします。

Screenshot of a chat code block response, highlighting the actions to apply changes.

あるいは、コードをコピーしたり、現在のカーソル位置に挿入したりすることもできます。コードブロックにカーソルを合わせ、対応するアクションを選択します。

言語拡張機能によっては、チャット応答のコードブロックがエディターでの体験と同様にIntelliSenseをサポートする場合があります。

コードブロックにシェルコマンドが含まれている場合、ターミナルに挿入 (⌃⌥Enter (Windows、LinuxではCtrl+Alt+Enter)) アクションで統合ターミナルで直接実行できます。

Chat code block to list files with Insert into Terminal option visible

ヒント

チャット: 次のコードブロック (⌥⌘PageDown (Windows、LinuxではCtrl+Alt+PageDown)) とチャット: 前のコードブロック (⌥⌘PageUp (Windows、LinuxではCtrl+Alt+PageUp)) コマンドでコードブロック間を移動します。

クイックチャット

クイックチャットを使用して、サイドで本格的なチャットセッションを開始することなく、簡単な質問をします。クイックチャットは、クイックピックを開いて質問できる軽量なチャット体験です。

クイックチャットを開くには、タイトルバーのCopilotメニューからクイックチャットを選択するか、⇧⌥⌘L (Windows、LinuxではCtrl+Shift+Alt+L) キーボードショートカットを使用します。

クイックチャットで質問し、会話を続けたい場合は、チャットビューで開くボタンで本格的なチャットセッションに昇格させることができます。

特別なキーワード

プロンプトでは、より関連性の高い応答を得るために特別なキーワードを使用できます:

  • #-メンション: チャットプロンプトにコンテキストを追加するために使用されます。例えば、コードベース全体を参照するための#codebase、またはワークスペース内の特定のファイル、フォルダー、シンボルを参照するための#<ファイル | フォルダー | シンボル>などです。チャット入力フィールドに#を入力すると、コンテキスト項目の一覧が表示されます。チャットプロンプトへのコンテキストの追加について詳しく学んでください。

  • @-メンション: チャット参加者を参照するために使用され、データベースとの対話など特定のトピックに関する質問に答えるのに役立ちます。チャット入力フィールドに@を入力すると、利用可能な参加者の一覧が表示されます。@terminalのような組み込みの参加者や、拡張機能が提供する参加者から選択します。

  • スラッシュコマンド: /fixで問題の修正を提案したり、/explainで選択したコードの動作を説明したりするなど、一般的に使用される指示へのショートカットを提供します。チャット入力フィールドに/を入力すると、利用可能なスラッシュコマンドの一覧が表示されます。