VS Codeでエージェントモードを使用する
Visual Studio Codeのチャットエージェントモードを使用すると、自然言語を使用して高度なタスクを定義し、そのタスクを達成するためのエージェント的なコード編集セッションを開始できます。エージェントモードでは、Copilotは必要な作業を自律的に計画し、関連するファイルとコンテキストを特定します。その後、コードベースを編集し、ツールを呼び出して、要求したタスクを実行します。エージェントモードは、編集とツールの結果を監視し、発生する問題を解決するために反復処理を行います。
Copilotのサブスクリプションをまだお持ちでない場合は、Copilot Freeプランにサインアップして、Copilotを無料で使用し、月ごとの補完とチャットインタラクションの制限を受けることができます。
エージェントモードを使用する
エージェントモードでは、Copilotは自律的に動作し、プロンプトに関連するコンテキストを特定できます。
-
エージェントモードが有効になっていることを確認するには、chat.agent.enabled 設定を設定エディターで構成します。
-
VS CodeのタイトルバーにあるCopilotメニューからチャットを開くを選択するか、⌃⌘I (Windows、Linux Ctrl+Alt+I) キーボードショートカットを使用して、チャットビューを開きます。
-
チャットビューのチャットモードドロップダウンからアスクを選択します。
-
チャット入力フィールドに編集を行うためのプロンプトを入力し、送信 (Enter) を選択して送信します。
高度な要件を指定でき、どのファイルを操作するかを指定する必要はありません。エージェントモードでは、Copilotは関連するコンテキストと編集するファイルを自律的に決定します。
開始するには、これらのプロンプトの例を試してみてください。
ReactとNode.jsを使用して食事プランニングWebアプリを作成する
ソーシャルメディア共有機能を追加する
現在の認証をOAuthに置き換える
-
エージェントモードは、さまざまなタスクを達成するために、複数のツールを呼び出す場合があります。オプションで、ツールアイコンを選択して、リクエストへの応答に使用できるツールを構成します。
ヒントプロンプトでツールを直接参照するには、
#
の後にツール名を入力します。これは、すべてのチャットモード(アスク、エディット、エージェントモード)で実行できます。 -
ツールの呼び出しとターミナルコマンドを確認します。
ターミナルコマンドまたは組み込み以外のツールを実行する前に、Copilotは続行の確認を要求します。これは、ツールがローカルマシン上で実行され、ファイルやデータを変更する可能性のあるアクションを実行する可能性があるためです。
続行ボタンのドロップダウンオプションを使用して、現在のセッション、ワークスペース、または今後のすべての呼び出しに対して特定のツールを自動的に確認します。
プロジェクトで
tasks.json
にタスクが構成されている場合、エージェントモードは適切なタスクを実行しようとします。たとえば、ビルドタスクを定義した場合、エージェントモードはアプリケーションを実行する前にビルドタスクを実行します。github.copilot.chat.agent.runTasks 設定を使用して、ワークスペースタスクの実行を有効または無効にします。 -
オプションで、ツールを実行する前に、ツールの入力パラメーターを確認および編集します。
ツール名の横にあるシェブロンを選択して、詳細と入力パラメーターを表示します。ツールを実行する前に、入力パラメーターを編集できます。
-
Copilot Editsは、コード編集とターミナルコマンドの問題と問題を検出し、反復処理を行い、それらを解決するための追加のアクションを実行します。
たとえば、エージェントモードはコード編集の結果として単体テストを実行する場合があります。テストが失敗した場合、テスト結果を使用して問題を解決します。
Copilot Editsエージェントモードは、問題と問題を解決するために複数回反復処理を行います。chat.agent.maxRequests 設定は、Copilot Editsがエージェントモードで実行できるリクエストの最大数を制御します。
-
Copilotがリクエストを処理するにつれて、Copilotが提案されたコード編集をエディターに直接ストリーミングすることに注意してください。
チャットビューには、編集されたファイルのリストが太字で表示されます。エディターオーバーレイコントロールを使用すると、提案された編集間を移動できます。
-
提案された編集内容を確認し、提案された編集内容を承認または破棄します。
-
コード変更を反復処理して、編集内容を改良したり、追加機能実装を継続します。
エージェントモードツール
エージェントモードは、ユーザーリクエストの処理中に、特化したタスクを実行するためにツールを使用します。このようなタスクの例としては、ディレクトリ内のファイルのリスト表示、ワークスペース内のファイルの編集、ターミナルコマンドの実行、ターミナルからの出力の取得などがあります。
エージェントモードは、次のツールを使用できます。
- 組み込みツール
- MCPツール
- 拡張機能によって提供されるツール
リクエストへの応答に使用できるツールを表示および管理できます。チャットビューのツールアイコンを選択して、エージェントモードで使用可能なツールを表示および管理します。
ツールの結果に基づいて、Copilotは全体的なリクエストを達成するために他のツールを呼び出す場合があります。たとえば、コード編集によってファイルに構文エラーが発生した場合、Copilotは別のアプローチを検討し、別のコード変更を提案する場合があります。
編集を承認または破棄する
Copilotは、編集されたファイルをチャットビューの変更されたファイルリストにリスト表示します。保留中の編集があるファイルには、エクスプローラービューとエディタータブにもインジケーターが表示されます。
エディターオーバーレイコントロールを使用すると、上 () および 下 () コントロールを使用して、提案された編集間を移動できます。保持または元に戻すボタンを使用して、特定のファイルの編集を承認または拒否します。
エディターまたはチャットビューの保持または元に戻すコントロールを使用して、個々のまたはすべての提案された編集を承認または拒否します。
chat.editing.autoAcceptDelay 設定を使用すると、提案された編集が自動的に承認されるまでの遅延時間を構成できます。エディターオーバーレイコントロールにカーソルを合わせると、自動承認のカウントダウンをキャンセルできます。
VS Codeを閉じると、保留中の編集のステータスが記憶されます。VS Codeを再度開くと、保留中の編集が復元され、編集を承認または破棄できます。
編集を元に戻す
コードを編集するためのリクエストを送信しているときに、これらの変更の一部をロールバックしたい場合があります。たとえば、別の実装戦略を使用したい場合や、Copilotが編集を生成するときに誤った方向に進み始めた場合などです。
チャットビューのタイトルバーにある最後の編集を元に戻すコントロールを使用して、最後の編集を元に戻し、最後のリクエストを送信する前の状態に戻ることができます。最後の編集の元に戻すを実行した後、チャットビューのタイトルバーにある最後の編集をやり直すコントロールを使用して、それらの編集を再度やり直すことができます。
Copilot Editsビューのリクエストにカーソルを合わせたときに表示される編集を元に戻す(削除)コントロール(xアイコン)を使用して、そのリクエスト以降に行われたすべての編集を元に戻すこともできます。
エージェントモードのリクエストを中断する
進行中のリクエストを中断するには、一時停止またはキャンセルできます。リクエストを一時停止すると、Copilotはリクエストの処理を停止し、ユーザーの入力を待ちます。
リクエストを一時停止すると、現在のリクエストをキャンセルする新しいプロンプトを入力するか、現在のリクエストを再開するかを選択できます。
リクエストをキャンセルすると、Copilotはアクティブなリクエストを中断して終了します。その時点までに行われた変更を確認して承認または拒否することはできます。
設定
次のリストには、エージェントモードに関連する設定が含まれています。設定は、設定エディター (⌘, (Windows、Linux Ctrl+,)) を使用して構成できます。
- chat.agent.enabled: エージェントモードを有効または無効にする(デフォルト:
false
) - chat.agent.maxRequests: Copilot Editsがエージェントモードで実行できるリクエストの最大数(デフォルト: Copilot Freeユーザーの場合は5、他のユーザーの場合は15)
- github.copilot.chat.agent.runTasks: Copilot Editsでエージェントモードを使用する場合にワークスペースタスクを実行する(デフォルト:
true
) - chat.mcp.discovery.enabled: 他のツールで構成されたMCPサーバーの検出を有効または無効にする(デフォルト:
true
)
よくある質問
エディットモードではなくエージェントモードを使用する理由は何ですか?
エディットモードとエージェントモードのどちらかを選択するには、次の基準を考慮してください。
- 編集範囲: エージェントモードは、関連するコンテキストと編集するファイルを自律的に決定します。エディットモードでは、コンテキストを自分で指定する必要があります。
- タスクの複雑さ: エージェントモードは、コード編集だけでなく、ツールとターミナルコマンドの呼び出しも必要な複雑なタスクに適しています。
- 所要時間: エージェントモードでは、リクエストを処理するために複数のステップが必要になるため、応答を得るまでに時間がかかる場合があります。たとえば、関連するコンテキストと編集するファイルを特定したり、アクションプランを決定したりするなどです。
- 自己修復: エージェントモードは、生成された編集の結果を評価し、中間的な問題を解決するために複数回反復処理を行う場合があります。
- リクエストクォータ: エージェントモードでは、タスクの複雑さによっては、1つのプロンプトでバックエンドへの多くのリクエストが発生する可能性があります。