VS Code でチャットを使用する
Visual Studio Codeのチャット機能を使用すると、自然言語でAIエージェントと対話できます。コードに関する質問、複雑なロジックの理解、新機能の生成、バグの修正などを、すべて会話型インターフェイスを通じて行えます。
この記事では、チャットの操作メカニズム(リクエストの送信方法、コンテキストの追加、言語モデルの選択、効果的なプロンプトの作成、AI生成された変更の確認方法)について説明します。これらのメカニズムは、VS Code内のすべてのチャットサーフェスに適用されます。エージェントのできることやセッションの構成方法の概要については、「VS Codeでエージェントを使用して構築する」を参照してください。
VS Code でのチャットの方法
VS Codeには、エージェントと連携するための2つの主要なサーフェスと、クイックインタラクション用の軽量なオプションが用意されています。現在のタスクやワークフローに最も適したエクスペリエンスを選択し、必要に応じて切り替えることができます。
| 名前 | 説明 | 開き方 |
|---|---|---|
| [エージェント] ウィンドウ | 複数のプロジェクトにわたるタスクをオーケストレーションするための、エージェントファーストの専用ウィンドウ。高レベルなタスクと成果に焦点を当てます。 |
|
| [チャット] ビュー | ワークスペースでのコーディングタスクを支援するためにエディターのサイドバーで実行される、コードファーストのエクスペリエンス。 |
|
| インラインチャット | クイックなインプレースコード編集またはターミナルの提案。 |
|
| クイックチャット | エディターの上部にある軽量なチャットパネル。 |
|
チャットリクエストを送信する
チャット入力ボックスにメッセージを入力し、Enter キーを押すか、Send ボタンを選択します。エージェントがコードを分析して変更を加え、要約を返信します。その後、フォローアップ メッセージで会話を続けることができます。たとえば、次のようなリクエストから始めることができます。
Add input validation to the signup form
プロジェクト固有の追加のコンテキストを提供するには、# メンションを使用してファイル、シンボル、その他の情報を参照し、プロンプトにコンテキストを追加できます。
一般的なタスクでは、スラッシュコマンドを頻繁に使用するプロンプトのショートカットとして使用したり、エージェントスキルを呼び出したりできます。チャット入力に / と入力すると、利用可能なすべてのコマンドが表示されます。
複数のセッションを並行して実行し、異なるタスクに同時に取り組むことができます。新しいセッションを開始しても、前のセッションはバックグラウンドでアクティブなまま維持されるため、コンテキストを失うことなくいつでも元のセッションに戻ることができます。詳細については、「チャットセッションの管理」を参照してください。
各セッションには、エージェントタイプ、エージェント、権限レベル、言語モデルなど、エージェントの応答方法を形作る構成オプションがあります。「エージェントセッションの構成方法」を参照してください。
最良の結果を得るには、目的を具体的にし、関連するコンテキストを提供し、明確な指示を記述してください。詳細については、「より良い応答を得る」を参照してください。
リクエスト実行中にメッセージを送信する
次のメッセージを送信する前に、応答が完了するまで待つ必要はありません。リクエストの処理中、Send ボタンはドロップダウンに変化し、新しいメッセージの処理方法に関する3つのオプションを提供します。

- Add to Queue: メッセージが待機状態になり、現在の応答が完了した後に自動的に送信されます。現在の応答は中断されることなく完了します。
- Steer with Message: 現在のツールの実行が終了した後に、現在のリクエストに中断を促します。現在の応答が停止し、新しいメッセージが直ちに処理されます。エージェントが間違った方向に向かっているときに、方向を再調整するために使用します。
- Stop and Send: 現在のリクエストを完全にキャンセルし、新しいメッセージをすぐに送信します。
Send ボタンのデフォルトのアクションは構成可能です。 chat.requestQueuing.defaultAction を使用して、steer(デフォルト)または queue に設定します。
保留中のメッセージの順序を変更する
保留中のメッセージ(キューに追加されたもの、またはステアリング中のもの)が複数ある場合は、ドラッグ&ドロップして処理順序を変更できます。同じタイプのメッセージが複数保留されている場合、ホバー時にドラッグハンドルが表示されます。

プロンプトにコンテキストを追加する
適切なコンテキストを提供することで、AIがより関連性が高く正確な応答を生成しやすくなります。
-
Implicit context: VS Codeは、アクティブなファイル、現在の選択範囲、ファイル名をコンテキストとして自動的に含めます。エージェントを使用する場合、追加のコンテキストが必要かどうかはエージェントが自律的に判断します。
-
#-mentions: チャット入力で#と入力して、ファイル(#file)、フォルダー、シンボル、コードベース(#codebase)、端末の出力(#terminalSelection)、または#fetchなどのツールを明示的に参照します。 -
Vision: スクリーンショットやUIモックアップなどの画像をプロンプトのコンテキストとして添付します。
-
Browser elements: 統合ブラウザーから要素を選択して、HTML、CSS、およびスクリーンショットのコンテキストをプロンプトに追加します。
AIのコンテキストの管理の詳細については、こちらをご覧ください。
画像カルーセル (実験的機能)
imageCarousel.chat.enabled が有効になっている場合、チャット応答内の画像または動画を選択して、専用のカルーセルビューを開くことができます。ツール結果(統合ブラウザー、Playwright、その他のMCPサーバーなど)からのメディアファイルや、アシスタントメッセージにインライン表示されたメディアファイルはすべて、カルーセルからアクセスできます。

変更内容の確認と管理
AIがファイルに変更を加えた後、それらの変更を確認して、承認または破棄します。
-
Review inline diffs: 変更されたファイルを開いて、適用された変更のインライン差分を表示します。エディターのオーバーレイコントロールを使用して編集箇所間を移動し、個々の変更を Keep または Undo します。詳細については、「AI生成されたコード編集の確認」を参照してください。
-
Use checkpoints: VS Codeは、チャットのやり取り中の重要なタイミングでファイルのスナップショットを自動的に作成し、前の状態にロールバックできるようにします。詳細については、「チェックポイントと編集リクエスト」を参照してください。
-
Stage to accept: ソース管理ビューで変更をステージングすると、保留中の編集が自動的に承認されます。変更を破棄すると、保留中の編集も破棄されます。

チャット応答の通知を受け取る
別ウィンドウや他のアプリケーションで作業しているときに、重要なチャットイベントについてOS通知を送信できるため、確認のために何度も画面に戻る必要がなくなります。
チャットの応答を受信したときにOS通知を受け取るタイミングを構成するには、 chat.notifyWindowOnResponseReceived を使用します。通知には応答のプレビューが含まれており、選択するとチャットセッションにフォーカスが移動します。
エージェントが続行するために入力や確認を必要とする場合にOS通知を受け取るタイミングを構成するには、 chat.notifyWindowOnConfirmation を使用します。
どちらの設定にも3つの設定値があります
off: 通知を一切表示しないwindowNotFocused(デフォルト): VS Codeウィンドウにフォーカスがない場合にのみ通知を表示するalways: VS Codeウィンドウにフォーカスがある場合でも通知を表示する
バックグラウンドで長時間のエージェントタスクを実行している場合など、VS Codeの他の部分で作業しながらチャットアクティビティを把握しておきたい場合は、値を always に設定します。
リクエストと完了のタイムスタンプを表示する
チャットでは、リクエストの送信時刻と応答の完了時刻のタイムスタンプを表示できます。完了のタイムスタンプにマウスオーバーすると、応答にかかった経過時間を確認できます。
これらのタイムスタンプの有効化・無効化を切り替えるには、 chat.verbose を使用します。
チャットセッション内のプロンプト間を移動する
チャットセッション内のプロンプト間を移動するには、次のキーボードショートカットを使用します
- ⌥⌘↑ (Windows, Linux Ctrl+Alt+Up): チャットセッション内の前のプロンプトに移動します。
- ⌥⌘↓ (Windows, Linux Ctrl+Alt+Down): チャットセッション内の次のプロンプトに移動します。
- ⌥⌘PageUp (Windows, Linux Ctrl+Alt+PageUp): チャットセッション内の前のコードブロックに移動します。
- ⌥⌘PageDown (Windows, Linux Ctrl+Alt+PageDown): チャットセッション内の次のコードブロックに移動します。
より良い応答を得る
チャットには、AI応答の品質と関連性を向上させるためのいくつかの方法が用意されています
-
Write effective prompts: 目的を具体的にし、関連するファイルやシンボルを参照し、一般的なタスクには
/コマンドを使用します。プロンプトの例からインスピレーションを得たり、完全なプロンプトエンジニアリングガイドを確認したりできます。 -
Customize the AI: カスタム指示の追加、再利用可能なプロンプトファイルの作成、または特殊なワークフロー向けのカスタムエージェントの構築により、プロジェクトに合わせてAIの動作を調整します。たとえば、コードの品質やチームのコーディング標準への準拠に関するフィードバックを提供する「コードレビューアー」エージェントを作成できます。
-
Extend with tools: MCPサーバーを接続するか、ツールを提供する拡張機能をインストールして、エージェントが外部サービス、データベース、またはAPIにアクセスできるようにします。
詳細については、「VS Codeでのエージェントの動作のカスタマイズ」を参照してください。
チャットのやり取りのトラブルシューティング
プロンプトを送信したときに何が起こるかを調査するには、エージェントログとチャットデバッグビューを使用します。エージェントログには、ツール呼び出し、LLMリクエスト、プロンプトファイルの検出の時系列イベントログが表示されます。チャットデバッグビューには、各インタラクションの生のシステムプロンプト、ユーザープロンプト、コンテキスト、およびツールペイロードが表示されます。これらのツールは、AIが特定の応答をした理由を理解したり、予期しない結果のトラブルシューティングを行ったりするのに役立ちます。
サポート
GitHub Copilot ChatのサポートはGitHubによって提供されており、https://support.github.com からお問い合わせいただけます。
Copilotのセキュリティ、プライバシー、コンプライアンス、透明性の詳細については、GitHub CopilotトラストセンターのFAQをご覧ください。