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