參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

自定義聊天以適應您的工作流

您可以在 Visual Studio Code 中自定義聊天,以匹配您的編碼習慣和專案要求。設定持久化配置,將您的首選上下文、工具和指南自動應用於每次對話。這樣可以節省時間,並確保響應一致,無需在每個聊天請求中手動提供相同的資訊。

自定義選項

在 Visual Studio Code 中自定義聊天主要有五種方式。這些選項可以獨立工作,也可以組合使用以實現更全面的自定義。

自定義指令

自定義指令允許您在一個 Markdown 檔案中為生成程式碼、執行程式碼審查或生成提交訊息等任務定義通用指南或規則。透過自定義指令,您可以描述應如何執行特定任務。VS Code 可以自動應用這些指令,您也可以選擇在特定的聊天請求中包含它們。

使用自定義指令可以:

  • 指定編碼規範、首選技術或專案要求,使生成的程式碼符合您的標準
  • 提供關於如何構建提交訊息或拉取請求標題和描述的指南
  • 為程式碼審查設定規則,例如檢查安全漏洞、效能問題或是否遵守編碼標準

提示檔案

提示檔案允許您在一個 Markdown 檔案中為常見和可重複的開發任務定義可重用的提示。提示檔案是獨立的提示,您可以直接在聊天中執行。您可以包含特定於任務的上下文和關於如何執行任務的指南。將提示檔案與自定義指令結合使用,可確保複雜任務的一致執行。

使用提示檔案可以:

  • 為常見的編碼任務建立可重用的提示,例如搭建新元件、API 路由或生成測試
  • 為執行程式碼審查定義提示,例如檢查程式碼質量、安全漏洞或效能問題
  • 為複雜流程或專案特定模式建立分步指南
  • 為生成實施計劃、架構設計或遷移策略定義提示

聊天模式

聊天模式是一種為特定角色或任務(如資料庫管理員、前端開發或規劃)建立專業助理的方式。在聊天模式的 Markdown 檔案中,您可以描述其範圍和能力、可以訪問的工具以及首選的語言模型。

使用聊天模式可以:

  • 建立一個用於規劃的聊天模式,其中 AI 對程式碼庫具有隻讀訪問許可權,並且只能生成實施計劃
  • 定義一個研究聊天模式,其中 AI 可以訪問外部資源以探索新技術或收集資訊
  • 建立一個前端開發者聊天模式,其中 AI 只能生成和修改與前端開發相關的程式碼

語言模型

語言模型讓您可以從為特定任務最佳化的不同 AI 模型中進行選擇。您可以在不同模型之間切換,以在程式碼生成、推理或視覺處理等專門任務中獲得最佳效能。您也可以使用自己的 API 金鑰來訪問更多模型或對模型託管有更多控制權。

使用不同的語言模型可以:

  • 使用快速模型進行快速程式碼建議和簡單的重構任務
  • 切換到功能更強大的模型,以進行復雜的架構決策或詳細的程式碼審查
  • 使用您自己的 API 金鑰來訪問實驗性模型或使用本地託管的模型

MCP 和工具

MCP 和工具允許您透過模型上下文協議 (MCP) 連線外部服務和專業工具。這將聊天功能從程式碼擴充套件到與資料庫、API 和其他開發工具的互動。

使用 MCP 和工具可以:

  • 連線資料庫工具,無需離開開發環境即可查詢和分析資料
  • 與外部 API 整合以獲取即時資訊或執行操作

使用場景

不同的自定義方法最適合不同的場景。下表列出了常見用例和推薦的方法

用例 方法
專案範圍的編碼標準 自定義指令
特定語言或框架的規則 帶 glob 模式的自定義指令
可重用的開發任務 提示檔案
在規劃或研究模式下使用聊天 自定義聊天模式
定義專業工作流 自定義聊天模式
複雜的推理和分析 語言模型
使用您自己的模型 語言模型
整合外部服務 MCP 和工具

入門

您可以逐步實施聊天自定義,從最簡單的選項開始,根據需要逐漸增加複雜性。

1. 嘗試不同的語言模型

首先嚐試不同的語言模型,以便為不同型別的工作獲得更好的結果。使用聊天中的模型選擇器在模型之間切換——為簡單任務嘗試更快的模型,為複雜推理嘗試功能更強大的模型。這無需設定,並能立即提供結果。

2. 設定基本指南

建立自定義指令,以在所有聊天互動中獲得一致的結果。建立一個包含您的編碼標準和偏好的 .github/copilot-instructions.md 檔案。這會自動改進所有聊天響應,無需額外努力。使用 glob 模式為程式碼庫的不同部分建立不同的指令檔案,以針對特定的語言或框架。

3. 新增任務自動化

一旦發現重複性任務,就為常見工作流(如元件生成、程式碼審查或文件任務)建立提示檔案。這些檔案可以節省時間並確保團隊間的一致性。

4. 擴充套件功能

當您需要連線外部服務或執行專業操作時,新增 MCP 伺服器和工具,將聊天功能擴充套件到基本程式碼輔助之外。

5. 建立專業工作流

對於高階用法,構建自定義聊天模式,為特定角色或專案階段結合特定的工具、指令和上下文。