VS CodeにおけるAI拡張機能
この記事では、Visual Studio CodeにおけるAI拡張機能のオプションの概要を説明し、拡張機能に最適なアプローチを選択するのに役立ちます。
VS Codeには、コーディングエクスペリエンスを向上させる強力なAI機能が含まれています
- コード補完: 入力中にインラインコードの提案を提供します
- エージェントモード: AIが専門的なツールを使用して開発タスクを自律的に計画および実行できるようにします
- チャット: 開発者がチャットインターフェースを介して、自然言語で質問したり、コードベースを編集したりできるようにします
- スマートアクション: エディター全体に統合された、一般的な開発タスクにAI強化アクションを使用します
これらの組み込み機能のそれぞれを拡張およびカスタマイズして、ユーザーの特定のニーズを満たすように調整されたAIエクスペリエンスを作成できます。
VS CodeでAIを拡張する理由
拡張機能にAI機能を追加すると、ユーザーにいくつかのメリットがもたらされます
- エージェントモードにおけるドメイン固有の知識: エージェントモードが会社のデータソースとサービスにアクセスできるようにします
- 強化されたユーザーエクスペリエンス: 拡張機能のドメインに合わせたインテリジェントな支援を提供します
- ドメイン特化: プログラミング言語、フレームワーク、またはドメインに特化したAI機能を作成します
- チャット機能の拡張: より強力な対話のために、専門的なツールまたはアシスタントをチャットインターフェースに追加します
- 開発者の生産性の向上: デバッグ、コードレビュー、テストなどの一般的な開発タスクをAI機能で強化します
チャットエクスペリエンスを拡張する
言語モデルツール
言語モデルツールを使用すると、ドメイン固有の機能でVS Codeのエージェントモードを拡張できます。エージェントモードでは、これらのツールはユーザーのチャットプロンプトに基づいて自動的に呼び出され、専門的なタスクを実行したり、データソースまたはサービスから情報を取得したりします。ユーザーは、チャットプロンプトでツールを#で参照することで、これらのツールを明示的に参照することもできます。
言語モデルツールを実装するには、VS Code拡張機能内でLanguage Model Tools APIを使用します。言語モデルツールは、すべてのVS Code拡張機能APIにアクセスし、エディターと深く統合できます。
主なメリット:
- 自律的なコーディングワークフローの一部としてのドメイン固有の機能
- ツール実装は拡張機能ホストプロセスで実行されるため、VS Code APIを使用できます
- Visual Studio Marketplaceを介した簡単な配布とデプロイ
主な考慮事項:
- リモートデプロイには、拡張機能がクライアントサーバー通信を実装する必要があります
- 異なるツール間での再利用には、モジュール設計と実装が必要です
MCPツール
モデルコンテキストプロトコル(MCP)ツールは、標準化されたプロトコルを使用して、外部サービスと言語モデルを統合する方法を提供します。エージェントモードでは、これらのツールはユーザーのチャットプロンプトに基づいて自動的に呼び出され、専門的なタスクを実行したり、外部データソースから情報を取得したりします。
MCPツールは、ユーザーのマシン上でローカルに、またはリモートサービスとしてVS Codeの外部で実行されます。ユーザーはJSON設定を介してMCPツールを追加したり、VS Code拡張機能でプログラムで設定したりできます。MCPツールは、さまざまな言語SDKとデプロイオプションを介して実装できます。
MCPツールはVS Codeの外部で実行されるため、VS Code拡張機能APIにアクセスできません。
主なメリット:
- 自律的なコーディングワークフローの一部としてドメイン固有の機能を追加
- ローカルおよびリモートデプロイオプション
- 他のMCPクライアントでMCPサーバーを再利用
主な考慮事項:
- VS Code拡張機能APIへのアクセスなし
- 配布とデプロイには、ユーザーがMCPサーバーを設定する必要があります
チャット参加者
チャット参加者は、ユーザーがドメイン専門知識を持つ専門アシスタントで質問モードを拡張できるようにする専門アシスタントです。チャットでは、ユーザーはチャット参加者を@でメンションし、特定のトピックまたはドメインに関する自然言語プロンプトを渡すことで、チャット参加者を呼び出すことができます。チャット参加者は、チャットインタラクション全体を処理する責任があります。
チャット参加者を実装するには、VS Code拡張機能内でChat APIを使用します。チャット参加者は、すべてのVS Code拡張機能APIにアクセスし、エディターと深く統合できます。
主なメリット:
- エンドツーエンドのインタラクションフローを制御
- 拡張機能ホストプロセスで実行すると、VS Code拡張機能APIにアクセスできます
- Visual Studio Marketplaceを介した簡単な配布とデプロイ
主な考慮事項:
- リモートデプロイには、拡張機能がクライアントサーバー通信を実装する必要があります
- 異なるツール間での再利用には、モジュール設計と実装が必要です
独自のAI搭載機能を構築する
VS Codeは、AIモデルへの直接的なプログラムアクセスを提供し、拡張機能でカスタムAI搭載機能を作成できます。このアプローチにより、チャットインターフェースに依存することなく、AI機能を使用するエディター固有のインタラクションを構築できます。
言語モデルを直接使用するには、VS Code拡張機能内でLanguage Model APIを使用します。これらのAI機能を、コードアクション、ホバープロバイダー、カスタムビューなど、あらゆる拡張機能に組み込むことができます。
主なメリット:
- AI機能を既存の拡張機能に統合したり、新しい機能を構築したりする
- 拡張機能ホストプロセスで実行すると、VS Code拡張機能APIにアクセスできます
- Visual Studio Marketplaceを介した簡単な配布とデプロイ
主な考慮事項:
- 異なるエクスペリエンス間での再利用には、モジュール設計と実装が必要です
どのオプションを使用するかを決定する
VS Code拡張機能でAIを拡張するための正しいアプローチを選択する際には、次のガイドラインを考慮してください
-
次の場合は言語モデルツールを選択してください:
- 専門的な機能でVS Codeのチャットを拡張したい場合
- エージェントモードでユーザーの意図に基づいて自動的に呼び出したい場合
- VS Codeで深く統合するためにVS Code APIにアクセスしたい場合
- VS Code Marketplaceを通じてツールを配布したい場合
-
次の場合はMCPツールを選択してください:
- 専門的な機能でVS Codeのチャットを拡張したい場合
- エージェントモードでユーザーの意図に基づいて自動的に呼び出したい場合
- VS Code APIとの統合が必要ない場合
- ツールが異なる環境(VS Codeだけでなく)で動作する必要がある場合
- ツールがリモートまたはローカルで実行される必要がある場合
-
次の場合はチャット参加者を選択してください:
- ドメイン専門知識を持つ専門アシスタントで質問モードを拡張したい場合
- インタラクションフロー全体と応答動作をカスタマイズする必要がある場合
- VS Codeで深く統合するためにVS Code APIにアクセスしたい場合
- VS Code Marketplaceを通じてツールを配布したい場合
-
次の場合は言語モデルAPIを選択してください:
- AI機能を既存の拡張機能に統合したい場合
- チャットインターフェースの外部でUIエクスペリエンスを構築している場合
- AIモデルリクエストをプログラムで直接制御する必要がある場合
次のステップ
拡張機能の目標に最も適したアプローチを選択してください
サンプルプロジェクト
- チャットサンプル: エージェントモードツールとチャット参加者を含む拡張機能
- コードチューターチャット参加者チュートリアル: 専門チャットアシスタントの構築
- AI搭載コードアノテーションチュートリアル: 言語モデルAPIの使用に関するステップバイステップガイド
- MCP拡張機能サンプル: MCPツールを登録する拡張機能