エージェントモード: 全ユーザーが利用可能、MCPをサポート
2025年4月7日 by Isidor Nikolic
エージェントモードが、すべてのVS Codeユーザーに展開中です!エージェントは、自律的なペアプログラマーとして機能し、コードベースの分析、ファイル編集の提案、ターミナルコマンドの実行など、あなたの指示に応じて複数ステップのコーディングタスクを実行します。コンパイルエラーやリントエラーに応答し、ターミナルの出力を監視し、タスクが完了するまでループ内で自動修正を行います。エージェントは、提供されたツールも使用でき、外部のMCPサーバーやVS Code拡張機能と連携して、多種多様なタスクを実行できます。
すべてのユーザーが利用可能
チャットビューを開き、GitHubにサインインし、設定でchat.agent.enabledを有効にして、チャットモードのドロップダウンからエージェントを選択してください。この設定が表示されない場合は、最新バージョンに更新後、VS Codeを再読み込みしてください。今後数週間で、この機能はすべてのユーザーにデフォルトで展開される予定で、設定は不要になります。
エージェントモードは、次のようなシナリオで役立ちます
- タスクに複数のステップが含まれる場合。エージェントはコードを編集し、ターミナルコマンドを実行し、エラーを監視し、発生した問題を解決するために反復処理を行います。
- 変更の範囲が不明確な場合。エージェントは関連するファイルとコンテキストを自動的に特定します。
- タスクが外部アプリやデータとの連携を必要とする場合。エージェントはMCPサーバーやVS Code拡張機能と統合されます。
一方、タスクの範囲が明確に定義されている場合、迅速な対応を求める場合、またはLLMリクエストの数をより細かく制御したい場合は、編集モードを使用してください。
私たちは、チャットビューと編集ビューを統合した、統一されたチャット体験を構築しました。これにより、セッション履歴、チャットの別ウィンドウへの移動、作業セットビューの簡素化といった利点がもたらされます。これらはすべて、エージェントモードでも利用可能になりました。
私たちは引き続き素晴らしいユーザーフィードバックをいただいており(ぜひ今後もお寄せください!)、それが私たちが行った多くの改善のきっかけとなっています。特に注目すべき点は以下の通りです
- 元に戻す(undo)アクションで、最後のファイル編集ツールの呼び出し時点まで変更を戻せるようになりました
- 同じワークスペースで複数のエージェントセッションをサポート(編集セッションが同じファイルを変更しない場合に最適)
- エージェントがノートブックを作成・編集できるようになりました
- ツール呼び出しを自動承認する機能(ターミナルの自動承認は4月に提供予定)
- 多数のQoL(生活の質)向上とバグ修正
質問(ask)と編集(edit)の両方の体験は、エージェントと同様にツールを活用するアーキテクチャへと進化しています。私たちは、質問/編集/エージェントの各モードをすべてエージェント的なものに統一し、全体的なユーザー体験をよりスムーズにすることを目指してこの変更を行っています。これにより、編集モードは速度向上のためにedit_file
ツールを使用でき、編集モードと質問モードはエージェント的なコードベース検索である#codebase
を使用できるようになります。その結果、ツール呼び出しをサポートしない言語モデルは、編集モードでは利用できなくなります。
エージェントの仕組みについてさらに詳しく知りたい方は、以前の投稿をご覧ください。
拡張可能: MCPサーバーとVS Code拡張機能
VS Code拡張機能によって特定のワークフローをカスタマイズできるように、エージェントの拡張性によって、エージェントをあなたのニーズに合わせて調整できます。拡張性により、エージェントはブラウザアクションの実行(AIによるWebデバッグ)、チャットやメモアプリへの接続、データベースとの連携、デザインシステムからのコンテキスト取得、GitHubからのIssueやリポジトリのコンテキスト取得、そしてクラウドプラットフォームとの統合が可能になります。エージェントモードの力は、利用可能なツールの多様性と、ユーザーとしてツールを追加・削除できる柔軟性にあります。私たちは、この拡張性をプレビュー版として、すべてのユーザーに公開します。
エージェントモードは以下のツールを使用できます
- VS Codeが提供する組み込みツール(図の青色)。これにより、エージェントはワークスペースの検索、コード変更の適用、ターミナルコマンドの実行、エディターからのコンパイルエラーやリンティングエラーの取得、Webサイトコンテンツの取得(手動でトリガーするには
#fetch
)などが可能です。 - MCPサーバーが提供するツール(図の緑色)。
- VS Code拡張機能が提供するツール(図の緑色)。
VS Codeチームが2016年にLanguage Server Protocol(LSP)を発明したときの目標は、言語サーバーが開発ツールと通信する方法を標準化することでした。LSPが広く採用される標準となり、私たちのビジョンを実現できたことを誇りに思います。最近、LSPの背後にあるアイデアが新しいプロトコル、Model Context Protocol(MCP)にインスピレーションを与えました。これは、アプリケーションがLLMにコンテキストを提供する方法を標準化するものです。VS CodeのエージェントモードがMCPサーバーから提供されるツールを使用することで、私たちは再びVS Codeへと一周して戻ってきました。
開発者による制御が重要
すべてのタスクが、エージェントモードに追加したすべてのツールを必要とするわけではありません。そして、あらゆるAIワークフローと同様に、具体的に指示することでより良い結果が得られます。各シナリオで必要なツールを管理・有効化するためにツールUIを使用するか、プロンプトで#
と入力して明示的にツールを参照することをお勧めします。
完全な制御を提供するため、すべてのツール呼び出しはUIに透過的に表示され、(読み取り専用の組み込みツールを除き)あなたの承認が必要です。特定のツールを現在のセッション、ワークスペース、または将来のすべての呼び出しに対して許可できます。エージェントに常にすべてのツールを使用させることで中断を最小限に抑えつつ、セキュリティを維持したい場合は、Dev Containers拡張機能の使用を検討してください。これにより、エージェントによるすべての変更がコンテナー環境内に隔離されます(ただし、例えばリモートへの変更のプッシュを許可すれば、その限りではありません)。
利用開始
ワークフローに合わせてエージェントをカスタマイズするには、チャット入力欄のツールアイコンを選択し、Add More Tools…(ツールを追加)のフローに従ってください。あるいは、MCPサーバーのドキュメントをお読みください。そこでは設定フォーマット、MCPサーバーの追加方法、Claude Desktopのような既存のMCPクライアントアプリからMCPサーバーをインポートする方法が説明されています。VS Codeは、MCPサーバーのトランスポートとして、ローカルの標準入出力(stdio
)とServer-Sent Events(sse
)をサポートしています。
MCPの公式サーバーリポジトリは、MCPの多様性を示す公式およびコミュニティ提供のサーバーを探すのに最適な出発点です。ツールを提供する拡張機能をインストールするには、拡張機能ビューを開き、@tag:language-model-tools
というタグを使用して検索してください。
開発者として、MCPサーバーを作成することでエージェントを拡張できます。また、拡張機能の作者であれば、あなたのVS Code拡張機能にツールを提供することができます。ツールの作成に関するガイダンスとベストプラクティスについては、こちらのドキュメントを参照してください。
今後の予定
エージェントモードは日々改善されています。いち早くその恩恵を受けるには、VS Code Insidersのインストールを検討してください。VS Code Insidersを使用し、私たちのリポジトリでフィードバックを提供していただくことが、製品を改善するための最善の方法です。次に、私たちは以下の点に取り組む予定です
- カスタムツールセットと指示(instructions)を持つカスタムモードのサポート
- より高速なコード適用体験
- MCPサポートをツールからプロンプト、リソース、および最新の仕様更新へと拡張
- 速度向上のため、変更されたコードブロックに限定した編集内容のストリーミング
- エージェントモードセッションの特定のステップに簡単に戻れるチェックポイント
- 全体的なパフォーマンスとサービス品質の向上
最新のVS Code Stable版を使用していることを確認し、設定でchat.agent.enabledを有効にし、モードのドロップダウンからエージェントを選択してください。ぜひ今日お試しいただき、ご感想をお聞かせください!ドキュメントはこちらでご覧いただけます。
ハッピーな気分でコーディングを(これからはMCPと拡張機能と共に)!
IsidorとVS Codeチーム