VS Code 中的 AI 擴充能力
本文概述了 Visual Studio Code 中的 AI 擴充選項,協助您為您的擴充功能選擇合適的開發方式。
VS Code 包含強大的 AI 功能,可提升編碼體驗:
- 程式碼補全:在您輸入時提供行內程式碼建議
- 代理模式 (Agent mode):使 AI 能夠透過專用工具自主規劃並執行開發任務
- 聊天 (Chat):讓開發人員能夠使用自然語言提問,或透過聊天介面在程式碼庫中進行編輯
- 智慧動作 (Smart actions):在編輯器中整合 AI 增強的動作,以處理常見的開發任務
您可以擴充並自訂這些內建功能,以打造符合使用者特定需求的 AI 體驗。
為什麼要擴充 VS Code 的 AI 功能?
為您的擴充功能加入 AI 能力可為使用者帶來多項優勢:
- 代理模式中的特定領域知識:讓代理模式存取您公司的資料來源與服務
- 增強使用者體驗:提供針對您擴充功能領域量身打造的智慧協助
- 領域專精:建立針對特定程式語言、框架或領域的 AI 功能
- 擴充聊天能力:將專用工具或助理加入聊天介面,以實現更強大的互動
- 提升開發人員生產力:利用 AI 能力增強常見的開發工作,例如除錯、程式碼審查或測試
擴充聊天體驗
語言模型工具
語言模型工具 (Language model tools) 讓您能夠以特定領域的能力來擴充 VS Code 的代理模式。在代理模式中,這些工具會根據使用者的聊天提示詞自動調用,以執行特定任務或從資料來源/服務中檢索資訊。使用者也可以在聊天提示詞中透過 #-提及 (mention) 該工具來明確呼叫它們。
若要實作語言模型工具,請在您的 VS Code 擴充功能中使用 語言模型工具 API。語言模型工具可以存取所有 VS Code 擴充功能 API,並提供與編輯器的深度整合。
主要優勢:
- 作為自主編碼工作流程一部分的特定領域能力
- 由於工具實作運行於擴充功能宿主處理程序中,因此可以使用 VS Code API
- 透過 Visual Studio Marketplace 輕鬆進行發佈與部署
關鍵考量:
- 遠端部署需要擴充功能自行實作客戶端與伺服器間的通訊
- 跨不同工具的重複使用需要模組化的設計與實作
MCP 工具
模型上下文協定 (Model Context Protocol, MCP) 工具提供了一種使用標準化協定將外部服務與語言模型整合的方式。在代理模式中,這些工具會根據使用者的聊天提示詞自動調用,以執行特定任務或從外部資料來源檢索資訊。
MCP 工具運行於 VS Code 之外,可以是使用者機器上的本機服務或遠端服務。使用者可以透過 JSON 設定檔新增 MCP 工具,或者由 VS Code 擴充功能以程式設計方式進行設定。您可以透過各種語言的 SDK 與部署選項來實作 MCP 工具。
由於 MCP 工具運行於 VS Code 之外,因此無法存取 VS Code 擴充功能 API。
主要優勢:
- 作為自主編碼工作流程一部分的特定領域能力
- 支援本機與遠端部署選項
- 可在其他 MCP 客戶端中重複使用 MCP 伺服器
關鍵考量:
- 無法存取 VS Code 擴充功能 API
- 發佈與部署需要使用者自行設定 MCP 伺服器
聊天參與者
聊天參與者 (Chat participants) 是專業的助理,使使用者能夠以領域專家擴充問答模式 (Ask mode)。在聊天中,使用者可以透過 @-提及該參與者並傳遞關於特定主題或領域的自然語言提示詞來調用它。聊天參與者負責處理整個聊天互動流程。
若要實作聊天參與者,請在您的 VS Code 擴充功能中使用 聊天 API。聊天參與者可以存取所有 VS Code 擴充功能 API,並提供與編輯器的深度整合。
主要優勢:
- 控制端對端的互動流程
- 運行於擴充功能宿主處理程序中,可存取 VS Code 擴充功能 API
- 透過 Visual Studio Marketplace 輕鬆進行發佈與部署
關鍵考量:
- 遠端部署需要擴充功能自行實作客戶端與伺服器間的通訊
- 跨不同工具的重複使用需要模組化的設計與實作
建置您自己的 AI 驅動功能
VS Code 為您提供直接的程式設計存取權限,以使用 AI 模型來建立擴充功能中的自訂 AI 功能。此方式讓您能夠在不依賴聊天介面的情況下,建置使用 AI 能力的編輯器特定互動。
若要直接使用語言模型,請在您的 VS Code 擴充功能中使用 語言模型 API。您可以將這些 AI 能力整合到任何擴充功能功能中,例如程式碼動作 (Code actions)、懸停提示提供者 (Hover providers)、自訂視圖等。
主要優勢:
- 將 AI 能力整合至現有的擴充功能功能,或建置全新的功能
- 運行於擴充功能宿主處理程序中,可存取 VS Code 擴充功能 API
- 透過 Visual Studio Marketplace 輕鬆進行發佈與部署
關鍵考量:
- 跨不同體驗的重複使用需要模組化的設計與實作
決定使用哪種選項
在為您的 VS Code 擴充功能選擇正確的 AI 擴充方式時,請參考以下準則:
-
選擇「語言模型工具」的情況::
- 您希望以專業能力擴充 VS Code 中的聊天功能
- 您希望在代理模式中根據使用者意圖進行自動調用
- 您需要存取 VS Code API 以進行深度整合
- 您希望透過 VS Code Marketplace 發佈您的工具
-
選擇「MCP 工具」的情況::
- 您希望以專業能力擴充 VS Code 中的聊天功能
- 您希望在代理模式中根據使用者意圖進行自動調用
- 您不需要與 VS Code API 整合
- 您的工具需要在不同環境中運作(不僅限於 VS Code)
- 您的工具需要在遠端或本機執行
-
選擇「聊天參與者」的情況::
- 您希望以具備領域專業知識的專屬助理來擴充問答模式
- 您需要自訂整個互動流程與回應行為
- 您需要存取 VS Code API 以進行深度整合
- 您希望透過 VS Code Marketplace 發佈您的工具
-
選擇「語言模型 API」的情況::
- 您希望將 AI 能力整合到現有的擴充功能功能中
- 您正在建置聊天介面以外的使用者介面體驗
- 您需要對 AI 模型請求進行直接的程式設計控制
後續步驟
選擇最符合您擴充功能目標的方案
- 實作語言模型工具
- 在您的 VS Code 擴充功能中註冊 MCP 工具
- 使用語言模型 API 將 AI 整合至您的擴充功能
- 實作聊天參與者
- 使用行內補全 API (Inline Completions API) 擴充程式碼補全功能
範例專案
- 聊天範例:包含代理模式工具與聊天參與者的擴充功能
- 程式碼導師聊天參與者教學:建置專業聊天助理
- AI 驅動的程式碼註解教學:使用語言模型 API 的逐步指南
- MCP 擴充功能範例:註冊 MCP 工具的擴充功能