VS Code 中的 AI 擴充性
本文概述了 Visual Studio Code 中的 AI 擴充選項,協助您為您的擴充功能選擇合適的開發方式。
VS Code 包含強大的 AI 功能,可提升程式碼編寫體驗
- 程式碼完成 (Code completion):在您輸入時提供行內程式碼建議
- 代理模式 (Agent mode):使 AI 能夠透過專用工具自主規劃並執行開發任務
- 聊天 (Chat):讓開發人員透過聊天介面,以自然語言提問或對程式碼庫進行編輯
- 智慧動作 (Smart actions):在編輯器各處整合 AI 增強功能,用於處理常見的開發任務
您可以擴充並自訂這些內建功能,建立符合使用者特定需求的客製化 AI 體驗。
為什麼要擴充 VS Code 的 AI 功能?
為您的擴充功能加入 AI 能力,可為使用者帶來多項益處:
- 代理模式中的領域特定知識:讓代理模式存取您公司的資料來源與服務
- 增強的使用者體驗:提供針對您擴充功能領域量身打造的智慧協助
- 領域專精:針對特定程式語言、框架或領域建立 AI 功能
- 擴充聊天功能:在聊天介面中新增專業工具或助理,以實現更強大的互動
- 提升開發人員生產力:利用 AI 能力增強常見的開發任務,如除錯、程式碼審查或測試
擴充聊天體驗
語言模型工具 (Language model tool)
語言模型工具讓您能以領域特定的能力來擴充 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) 是專業化的助理,能讓使用者以領域專家來擴充提問模式。在聊天中,使用者可以透過 @-mention 標記來呼叫聊天參與者,並針對特定主題或領域傳送自然語言提示詞。聊天參與者負責處理整個聊天互動過程。
若要實作聊天參與者,請在您的 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 中進行深度整合
- 您希望透過 VS Code Marketplace 發佈您的工具
-
選擇「MCP 工具」的情況::
- 您希望以專業能力擴充 VS Code 中的聊天功能
- 您希望在代理模式下根據使用者意圖進行自動呼叫
- 您不需要與 VS Code API 整合
- 您的工具需要跨不同環境運作(不限於 VS Code)
- 您的工具需要在遠端或本機執行
-
選擇「聊天參與者」的情況::
- 您希望以具備領域專業知識的專業助理來擴充提問模式
- 您需要自訂整個互動流程與回應行為
- 您希望存取 VS Code API 以在 VS Code 中進行深度整合
- 您希望透過 VS Code Marketplace 發佈您的工具
-
選擇「語言模型 API」的情況::
- 您希望將 AI 能力整合到現有的擴充功能特性中
- 您正在建構聊天介面之外的使用者介面體驗
- 您需要對 AI 模型請求進行直接的程式設計控制
後續步驟
選擇最符合您擴充功能目標的方式
- 實作語言模型工具
- 在您的 VS Code 擴充功能中註冊 MCP 工具
- 使用語言模型 API 將 AI 整合至您的擴充功能中
- 實作聊天參與者
- 使用行內完成 API (Inline Completions API) 擴充程式碼完成功能
範例專案
- 聊天範例:包含代理模式工具與聊天參與者的擴充功能
- 程式碼導師聊天參與者教學:建構一個專業的聊天助理
- AI 驅動的程式碼註解教學:使用語言模型 API 的逐步指南
- MCP 擴充功能範例:註冊 MCP 工具的擴充功能