が利用可能になりました!11月の新機能と修正についてお読みください。

Visual Studio Code でエージェントを使用する

エージェントは、AI を活用した自律コーディングを可能にし、単純なコード提案やチャットのやり取りを超えたマルチステップ タスクを実行します。Visual Studio Code では、ローカルまたはクラウドで、対話型またはバックグラウンドで実行されるエージェント セッションを作成できます。いつでも、さまざまなエージェント タイプ間でタスクをオフロードして、それぞれの独自の強みを活用できます。VS Code の統合されたチャット ビューでは、実行場所に関係なく、すべてのエージェント セッションを一元的に管理および監視できます。

この記事では、さまざまなエージェントの種類、エージェント セッションの作成と管理方法、エージェント間のタスクの委任、およびそれらの進行状況の追跡について概説します。

Screenshot of an agent session in VS Code showing code changes and chat interaction.

エージェントとは?

エージェントは、コードを提案したり質問に答えたりするだけでなく、エンドツーエンドのコーディング タスクを処理し、時間を節約します。プロジェクトを理解し、複数のファイルにまたがる変更を行い、コマンドを実行し、取得した結果に基づいて適応します。

たとえば、テストが失敗したとします。エージェントは、修正を提案するだけでなく、エラー メッセージを読み取り、複数のファイルにわたる根本原因を特定し、関連するコードを更新し、テストを再度実行して修正が機能することを確認し、さらには変更をコミットすることもできます。

エージェントに高レベルのタスクを与えると、それらはステップに分解され、さまざまなツールを使用してそれらのステップを実行し、エラーやテストの失敗に遭遇したときに自己修正します。

VS Code では、エージェントはワークフローに合わせてさまざまな環境で実行できます。対話型タスクの場合は VS Code 内でローカルに、自律作業の場合はローカル マシンでバックグラウンドで、チーム コラボレーションの場合はクラウドでリモートで実行されます。コーディング タスクを実行し、ターミナル コマンドを実行し、ツールを連携させて目標を達成します。一部のエージェントは、リアルタイムでプロンプトに応答して、機能の計画やターゲット編集の支援を行いますが、他のエージェントは、マルチステップの変更を実装するために独立して機能します。

カスタム エージェントとエージェントの違いは何ですか?

カスタム エージェントを使用すると、エージェントがタスクに対してコード レビュアー、テスター、またはセキュリティ専門家のような特定の役割またはペルソナを想定できます。カスタム エージェントは、エージェントの動作方法、使用できるツール、および使用するモデルを定義する構成です。

たとえば、「コード レビュアー」カスタム エージェントは、潜在的なバグの特定と、チームのコーディング標準および業界のベスト プラクティスに基づいた改善の提案に焦点を当てるように構成される場合があります。カスタム エージェントはコードベースへの読み取り専用アクセスのみを持ち、レビューのコンテキストとして特定のレポジトリまたはドキュメントを使用します。カスタム エージェントの結果は、テンプレートに基づいた詳細なコード レビュー レポートになります。

カスタム エージェントは、さまざまなエージェント タイプ (ローカル、バックグラウンド、クラウド) で再利用して、さまざまな環境で同じ役割またはペルソナを想定させることができます。

カスタム エージェントを使用すると、カスタム エージェント定義でオフロードを指定して、ユーザーが別のエージェントでフォローアップ アクションを実行できるようにする構造化ワークフローを実装することもできます。たとえば、「コード レビュアー」カスタム エージェントは、組み込みエージェントにオフロードし、提案された変更を実装するように依頼するように構成される場合があります。

カスタム エージェントの作成の詳細をご覧ください。

サブエージェントとエージェントの違いは何ですか?

サブエージェントにより、エージェントは複雑なタスクを分解し、分離されたコンテキストで実行できます。サブエージェントは、エージェント セッションの一部として開始される自律エージェントですが、独立して動作し、独自のコンテキスト ウィンドウを持ちます。サブエージェントは、リサーチや分析のような複雑なマルチステップ タスクのコンテキスト管理を最適化するのに役立ちます。エージェントは、単一のユーザー要求のさまざまな部分を処理するために複数のサブエージェントを作成できます。

たとえば、エージェントにトピックをリサーチして結果を要約するように依頼した場合、リサーチ部分を処理するためにサブエージェントを作成できます。サブエージェントは情報を収集、処理し、最終的な要約のみをメイン エージェントに返して、メイン コンテキストをプライマリ会話に集中させます。

エージェント自体と同様に、サブエージェントもカスタム エージェントを利用して、タスクに対して特定の役割またはペルソナを想定できます。サブエージェントがリサーチを実行する必要がある場合は、「リサーチャー」カスタム エージェントを使用して、情報の収集、分析、要約に最適化できます。

サブエージェントは現在、VS Code のローカル エージェント セッションでのみサポートされています。

エージェントの種類

VS Code は、さまざまなユースケースと対話レベルに合わせて設計された 4 つの主要なエージェント カテゴリをサポートしています。

Diagram showing agent types by environment and interaction.

ローカル エージェント

ローカル エージェントは、ローカル マシン上の VS Code 内で直接実行されます。ローカル エージェントは、チャットを通じて対話的に操作し、プロンプトに対する即時結果を得ます。ローカル エージェントはワークスペース上で動作し、VS Code で利用可能なすべてのツールとモデルにアクセスできます。コード レビュアー、テスター、またはドキュメント ライターのようなタスクのために、エージェントが特定の役割またはペルソナを想定するように、カスタム エージェントを作成できます。

ローカル エージェントは VS Code のチャット インターフェイスで動作します。チャット セッションを閉じると、ローカル エージェントはアクティブなままで、セッション ビューで追跡できます。

最適な用途:

  • ブレーンストーミング、計画、またはまだ完全に定義されていないタスクなど、即時フィードバックを必要とする対話型会話
  • 他のチーム メンバーとのコラボレーションを必要としないタスク
  • リンター エラー、スタック トレース、単体テスト結果など、開発環境からのコンテキストを必要とするタスク
  • VS Code 拡張機能または MCP サーバーからの特定のツールにアクセスする必要があるタスク、または BYOK モデルのような特定のモデルを使用する必要があるタスク

主な特徴:

  • ローカル マシン上の VS Code 内で実行され、現在のワークスペースで動作します。
  • リアルタイムのフィードバックとイテレーションのための対話型チャット ベースのインターフェイス。
  • ワークスペース、ファイル、およびコンテキストへのフルアクセス。
  • VS Code で構成されたすべてのア​​イエント ツール (組み込みツール、MCP ツール、拡張機能提供ツールなど) にアクセスできます。
  • BYOK モデルや他のプロバイダーからのモデルなど、VS Code で利用可能なすべてのモデルを使用できます。

VS Code でのチャットの使用方法については、こちらをご覧ください。

バックグラウンド エージェント

Copilot CLI のようなバックグラウンド エージェントは、ローカル マシンでバックグラウンドで非対話的に実行される CLI ベースのエージェントです。バックグラウンド エージェントは、コードの変更が現在のワークスペースに干渉しないように、Git ワークツリーを使用して分離モードで作業できます。バックグラウンド エージェントを現在のワークスペースで実行することを選択できますが、同じファイルで積極的に作業している場合は競合が発生する可能性があります。バックグラウンド エージェントは MCP または拡張機能提供ツールを使用できず、CLI によって提供されるモデルに限定されます。バックグラウンド エージェントの動作をカスタマイズするには、ワークスペースのカスタム エージェントを再利用して、特定の役割またはペルソナを想定させることができます。

最適な用途:

  • 計画の実装など、明確に定義されたスコープを持ち、必要なすべてのコンテキストを持つ非対話型タスク。
  • 他のチーム メンバーとのコラボレーションを必要としないタスク。
  • 失敗したテストやテキスト選択など、VS Code の組み込みツール、MCP ツール、または実行時コンテキストへのアクセスを必要としないタスク。

主な特徴:

  • ローカル マシンでバックグラウンドで非対話的かつ自律的に実行されます。
  • Git ワークツリーを使用して、メイン ワークスペースから分離して作業できます。
  • 明示的に追加されない限り、VS Code の組み込みツールや実行時コンテキストに直接アクセスできません。
  • MCP サーバーにアクセスできません。
  • CLI ツール経由で利用可能なモデルに限定されます。

VS Code でのバックグラウンド エージェントの使用方法については、こちらをご覧ください。

クラウド エージェント

クラウド エージェントは、リモート インフラストラクチャで実行され、AI を活用したコーディング タスクを実行します。Copilot コーディング エージェントのようなクラウド エージェントは、GitHub リポジトリやプル リクエストと統合され、チーム コラボレーションやコード レビューを可能にします。クラウド エージェントは、干渉を防ぐために、ブランチやプル リクエストを通じてローカル ワークスペースから分離して動作します。クラウド エージェントは VS Code の組み込みツールや実行時コンテキストにアクセスできませんが、リモート環境で構成された MCP サーバーにはアクセスできます。ワークスペースのカスタム エージェントを再利用して、クラウド エージェントにタスクの特定の役割またはペルソナを想定させることができます。

最適な用途:

  • 計画の実装など、明確に定義されたスコープを持ち、必要なすべてのコンテキストを持つ非対話型タスク。
  • 他のチーム メンバーとのコラボレーションを必要とするタスク。
  • 失敗したテストやテキスト選択など、VS Code の組み込みツール、MCP ツール、または実行時コンテキストへのアクセスを必要としないタスク。

主な特徴:

  • リモート インフラストラクチャで非対話的に実行されます。
  • ブランチおよびプル リクエストを通じてメイン ワークスペースから分離して作業します。
  • プル リクエストを介したチーム コラボレーションをサポートできます。
  • VS Code の組み込みツールおよび実行時コンテキストにアクセスできません。
  • リモート環境で構成された MCP サーバーにアクセスできます。
  • クラウド エージェント サービスで利用可能なモデルに限定されます。

VS Code でのクラウド エージェントの使用方法については、こちらをご覧ください。

サードパーティ エージェント

サードパーティ エージェントは、OpenAI Codex など、他のプロバイダーによって開発され、VS Code エージェント エクスペリエンスに統合されたバックグラウンド エージェントです。これらのプロバイダーのエージェント セッションは、ローカル、バックグラウンド、およびクラウド エージェントと同様の方法で管理できます。

最適な用途: サードパーティ AI エージェントを既に利用しており、それらを VS Code ワークフローに統合したい場合。

エージェント セッションの管理

VS Code のチャット ビューは、実行場所に関係なく、エージェント セッションを管理するための統一されたインターフェイスを提供します。すべてのア​​イエント セッション、そのステータス、およびファイル変更などの主要な詳細、およびそれらのタイプ (ローカル、バックグラウンド、クラウド、または Codex) を確認できます。ステータス インジケーターは、アクティブ、完了、失敗したセッション、または入力が必要なセッションをすばやく特定するのに役立ちます。

セッションのリストはワークスペースにスコープされています。ワークスペースが開かれていない場合、リストはワークスペース全体のエージェント セッションを表示します。

チャット ビューは 2 つのモードで動作します。

  • コンパクト:

    コンパクト ビューでは、新しいチャット セッションを開くと、直近 3 つのセッションがコンパクトなリストで表示されます。すべてのセッションを表示を選択すると、エージェント セッションの完全な履歴が開きます。すべてのセッションを表示している場合は、検索およびフィルター オプションを使用して特定のセッションを見つけます。

    Screenshot of the Chat view in compact mode showing recent agent sessions.

    リストからセッションを選択すると、チャット ビューがそのセッションに切り替わります。リンクにより、以前のビューに戻ることができます。

  • サイドバイサイド

    サイドバイサイド ビューでは、チャット ビューはエージェント セッションの完全なリストをチャット ビューと直接並べて表示します。検索およびフィルター オプションを使用して特定のセッションを見つけます。コンパクト モードとサイドバイサイド モードを切り替えるには、チャット ビューの右上隅にあるトグル コントロールを使用します。

    Screenshot of the Chat view in expanded mode showing full agent session history.

    リストからセッションを選択すると、チャット ビューはそのセッションの詳細を表示しますが、セッション リストは表示されたままになります。

    ヒント

    チャット ビューを広くすると、サイドバイサイド モードに自動的に切り替わります。セッション リストを右クリックして、デフォルトの動作を変更するセッションの向きを選択します (chat.viewSessions.orientation)。

リスト内のセッションを右クリックすると、セッションの詳細を開くさまざまなオプション、セッションのアーカイブ、またはプル リクエストをチェックアウトするエージェント タイプ固有のアクション (クラウド エージェント セッションの場合) など、追加のアクションが表示されます。

チャット ビューからセッション リストを非表示にするには、空のチャットで右クリックし、セッションを表示の選択を解除します。

専用のエージェント ビュー (プレビュー) を希望する場合は、chat.agentSessionsViewLocation 設定を view または single-view に設定します。

注意

拡張機能開発者は、提案された API chatSessionsProvider を使用して、エージェント ビューと統合する方法を学ぶことができます。この API は現在提案段階であり、変更される可能性があります。

エージェント セッションのフィルター

セッション リストにすべてのセッションが表示されている場合、検索とフィルターを使用して特定のエージェント セッションを見つけることができます。デフォルトでは、アーカイブされたセッションを除き、すべてのセッションが表示されます。エージェント タイプ、ステータス、読み取り状態、およびアーカイブ状態によってセッションをフィルター処理します。

Screenshot of the agent sessions view filter dropdown.

リセットを選択して、フィルターをデフォルト値にリセットします。

エージェント セッションのアーカイブ

セッション リストを整理された状態に保つために、完了した、または非アクティブなセッションをアーカイブできます。アーカイブされたセッションはデフォルトで非表示になりますが、アーカイブ済みフィルターを適用することでアクセスできます。

セッションをアーカイブするには、セッション リストでセッションにカーソルを合わせ、アーカイブを選択します。セッションをアーカイブすると、リストから消えます。逆に、同じ方法でセッションのアーカイブを解除することもできます。

Screenshot of archiving an agent session in the sessions view.

エージェント セッションの作成

VS Code で新しいエージェント セッションを作成するには、さまざまな方法があります。

  • 特定のタイプの新しい空のエージェント セッションを作成する

  • 既存のセッションを委任によって別のエージェント タイプにオフロードする

  • TODO コメントや GitHub イシューなど、タスクを直接エージェントに割り当てる

新しいエージェント セッションを作成する

チャット ビューから、またはコマンド パレットの対応するコマンドを使用して、新しいエージェント セッションを作成できます。

  1. チャット ビューを開く

  2. 新しいセッションドロップダウンを選択し、作成するエージェント セッションのタイプを選択します。

    Screenshot of creating a new agent session from the Chat view.

    • 新しいチャット: チャット ビューで新しいローカル エージェント セッションを開始します。
    • 新しいチャット エディター: エディター タブとして新しいローカル エージェント セッションを開始します。
    • 新しいチャット ウィンドウ: 別個の VS Code ウィンドウで新しいローカル エージェント セッションを開始します。
    • 新しいバックグラウンド/クラウド/Codex エージェント: チャット ビューで新しいバックグラウンド、クラウド、または Codex エージェント セッションを開始します。

いつでも、チャット ビューからエージェント セッションをチャット エディターまたは新しいウィンドウに移動できます。これは、オーバーフロー メニュー (...) のアクションから実行できます。

または、コマンド パレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から次のコマンドを使用します。

  • Chat: New Chat Editor/Window: チャット エディターで新しいローカル エージェント セッションを開始します。
  • Chat: New Background Agent: チャット エディターで Copilot CLI を使用して新しいバックグラウンド エージェント セッションを開始します。
  • Chat: New Cloud Agent: チャット エディターで新しい Copilot コーディング エージェント セッションを開始します。
  • Codex: New Codex Agent: チャット エディターで新しい OpenAI Codex エージェント セッションを開始します。

セッションを別のエージェントにオフロードする

各エージェント タイプには独自の強みと機能があります。ローカル エージェントを使用すると AI とリアルタイムで対話できますが、バックグラウンド エージェントは明確に定義されたタスクを自律的に処理するのに適しており、クラウド エージェントはプル リクエストを介したチーム コラボレーションに最適です。

VS Code では、タスクの具体的な内容に応じて、既存のタスクをあるエージェントから別のエージェントにオフロード (または委任) できます。たとえば、ローカル エージェントで計画を作成し、次にバックグラウンド エージェントにオフロードして概念実証としてさまざまなバリアントを作成し、最後にクラウド エージェントで最終バージョンをプル リクエストに実装してチーム レビューを行うことができます。

セッションを委任すると、VS Code は選択したタイプの新しいエージェント セッションを作成し、会話履歴とコンテキスト全体を引き継ぎます。その後、新しいエージェントとの対話を継続してタスクを完了できます。元のセッションは、オフロード後にアーカイブされます。

チャットでローカル エージェント セッションを VS Code でオフロードするには、Continue In コントロールを使用するか、プロンプトに @cli@cloud、または @codex と入力してタスクを別のエージェント タイプに渡します。

Screenshot of the chat input box showing the Continue In button.

バックグラウンド エージェント セッションでは、チャット入力ボックスに /delegate コマンドを入力することで、クラウド エージェントに委任できます。オプションで、/delegate コマンドの後にクラウド エージェントに追加の指示を提供できます。

コーディング タスクをエージェントに割り当てる

GitHub Pull Requests 拡張機能がインストールされている場合、コード内の TODO コメントを実装するようにエージェントを割り当てることができます。

Screenshot of assigning a TODO comment to Copilot coding agent.

GitHub.com または GitHub Pull Requests 拡張機能を使用して、Issue を copilot に割り当てることで、Copilot コーディング エージェントに GitHub Issue を割り当てるか、Issue コメントまたはプル リクエストで言及してコード レビューを依頼することができます。

ファイル変更の確認と適用

エージェント セッションが完了し、プロジェクトに変更が加えられた場合、セッション リストに変更されたファイル統計が表示されます。エージェントによって行われた変更を確認するには、リストからセッションを選択してセッションの詳細を開きます。

セッションの詳細ビューには、エージェントとの完全な会話履歴と、セッション中に加えられたファイル変更が表示されます。変更されたファイルを右クリックすると、そのファイルの差分エディターが表示されます。または、すべての変更を表示アクションを選択すると、セッション中に行われたすべての変更を含むマルチファイル差分エディターが表示されます。

Screenshot of the file changes diff editor in an agent session.

エージェント タイプに応じて、エージェントによって行われた変更をローカル ワークスペースに適用する、またはエージェント セッションからブランチをチェックアウトする (クラウド エージェントの場合) 追加オプションがあります。

© . This site is unofficial and not affiliated with Microsoft.