在 VS Code 中使用 AI 的最佳實踐

本文涵蓋了充分利用 Visual Studio Code 中 AI 功能的實證做法。每個章節都提供了可執行的指導方針,並附有深入文件的連結。

針對 AI 優化您的專案

透過在配置專案與程式碼庫時考慮 AI 的需求,您可以提高 AI 回應的準確性,並確保 AI 遵循團隊的程式碼標準與慣例。

VS Code 支援多種機制來配置專案的 AI 行為。在對話中輸入 /init 即可產生初始設定檔。

機制 最適合 開始使用
自定義指令 全專案的程式碼標準與架構上下文 輸入 /init 以產生專案的常駐指令
自定義代理人 專業化工作流程或角色設定(如 TDD、安全性審查) 輸入 /create-agent <description> 以產生自訂 Agent
技能 特定領域能力(如測試、部署) 輸入 /create-skill <description> 以產生技能
工具與 MCP 伺服器 連接外部系統(如資料庫、API、CLI) mcp.json 中設定

有效專案配置的提示

  • 保持指令檔簡潔。 每次對話互動時都會載入這些指令。請專注於 AI 無法從程式碼中推斷出的資訊,例如非預設的慣例、架構決策或環境設定。
  • 使用 applyTo 模式來限縮指令範圍。 輸入 /instructions 來建立語言或資料夾專屬的指令檔,而不是將所有內容放在同一個檔案中。
  • 限制啟用的工具。 啟用的工具越少,回應速度越快且越相關。僅在任務需要時才啟用相關工具。

完整的設定細節,請參閱自訂概覽

為任務選擇正確的工具

VS Code 中的 AI 提供多種互動模式。為當前任務選擇正確的模式可以節省時間並產生更好的結果。

工具 最適合 範例
內嵌建議 撰寫程式碼時保持流暢 行內建議、變數命名、樣板程式碼
提問 (Ask/Chat) 問題詢問、腦力激盪、探索想法 「這個專案中的身份驗證是如何運作的?」
內嵌聊天 無需切換上下文的目標式原地編輯 重構函式、新增錯誤處理
代理程式 需要自主規劃與工具使用,涉及多個檔案的變更 端到端地實作功能
規劃 實作前的結構化規劃 設計架構或遷移策略
智慧動作 內建的專業化單步驟任務 產生提交訊息 (commit messages)、修復錯誤、重新命名符號

選擇正確的 Agent 類型

與 Agent 協作時,請選擇符合您任務與工作流程的 Agent 類型。每種類型在互動性、速度與隔離性之間都有不同的取捨。

  • 使用本機 Agent 進行互動式工作。 本機 Agent 在您的編輯器中執行,可完整存取您的工作區、工具與延伸模組。當您需要快速迭代、即時審查變更,或使用如整合瀏覽器或 MCP 伺服器等 VS Code 專屬工具時,請選擇此類別。

  • 將明確的任務委派給背景 Agent。 當任務明確到不需要監控每個步驟時,請使用 Copilot CLI雲端 Agent

  • 使用雲端 Agent 進行團隊協作。 雲端 Agent 在遠端執行並可建立提取請求 (Pull Request),這使它們成為需要團隊審查任務,或當您想將 GitHub Issue 直接指派給 Agent 時的理想選擇。

  • 針對獨立任務執行平行對話區段。 啟動多個 Agent 對話區段,跨越本機、背景與雲端環境,以同時處理不相關的任務。您可以從對話區段列表進行監控。

  • 在不同 Agent 類型之間進行交接。 先透過本機 Agent 進行互動式探索與規劃,然後交接給背景或雲端 Agent 進行實作。對話紀錄會保留下來。

如需更多資訊,請參閱使用 AgentAgent 教學課程

撰寫有效的提示詞 (Prompts)

AI 回應的品質取決於您提示詞的清晰度與具體程度。這些技巧有助於您獲得更好的結果。

  • 對輸入、輸出與限制條件保持具體。 說明您想要使用的程式語言、框架與函式庫。描述預期的行為,或包含輸入與輸出的範例。

    Write a TypeScript function that validates email addresses.
    Return true for valid addresses, false otherwise. Don't use regex.
    Example: validateEmail("user@example.com") returns true
    Example: validateEmail("invalid") returns false
    
  • 將複雜任務拆解。 與其一次要求完成整個功能,不如將其分解為更小、範圍更明確的步驟。這種方法能產生更可靠的結果,並更容易在早期發現問題。

  • 包含預期輸出以供驗證。 提供測試案例、預期結果或驗收標準,以便 AI 可以驗證自己的工作。這是您可以採取的最有效作法之一。

    Implement a rate limiter using the token bucket algorithm.
    Write unit tests that verify: 10 requests/second allowed,
    11th request rejected, bucket refills after 1 second.
    Run the tests after implementing.
    
  • 避免模糊的提示詞。 像「讓它變得更好」這樣的提示詞不會給 AI 任何方向。請指定「更好」的含義,例如「降低時間複雜度」或「新增 null 值的輸入驗證」。

  • 透過後續提示詞進行迭代。 透過在後續訊息中加入限制條件或修正,來優化回應,而不是重寫整個提示詞。

  • 儘早修正方向。 如果 AI 偏離了方向,請透過後續訊息引導它,以重定向當前請求、加入排隊的後續請求,或停止並傳送新的提示詞。

  • 請 AI 提出釐清問題。 如果任務不明確,請指示 AI 在進行前先向您提問。這比猜測需求能產生更準確的結果。

  • 平行任務。 如果您有多個獨立任務,請要求 AI 平行執行以節省時間。例如:「請平行針對 X 與 Y 進行獨立研究,並總結研究發現。」

如需更多資訊,請在 GitHub Copilot 文件中搜尋實用的提示詞範例

提供正確的上下文 (Context)

當 AI 具備相關上下文時,回應會更準確。請使用這些技巧將 AI 指向正確的資訊。

  • AI 會自動執行程式碼搜尋以收集相關上下文。當您的提示詞不明確時,您可以使用 #<file>#<folder>#<symbol> 在提示詞中參考特定檔案、資料夾或符號來引導 AI。

  • 若要從網頁或 GitHub 儲存庫擷取資訊,請使用 #fetch 為 AI 提供您程式碼庫以外的最新資訊,或使用來自 GitHub MCP 等 MCP 伺服器的工具。

  • 參考 VS Code 環境上下文,例如原始碼控制變更、終端機輸出或測試失敗,以幫助 AI 理解專案的當前狀態並提供更相關的回應。

  • 新增圖片或截圖,讓 AI 分析視覺內容。

  • 使用整合瀏覽器預覽您的應用程式,並選擇網頁元素作為上下文。

如需更多資訊,請參閱在聊天提示詞中加入上下文配置工具

選擇正確的模型

每個 AI 模型都有不同的優勢。有些擅長推理,有些則擅長程式碼產生或更快速的回應。為您的任務選擇正確的模型可改善結果。

  • 依任務複雜度匹配模型。 使用快速模型處理簡單的補全與樣板程式碼。針對規劃、除錯或架構決策,請切換至針對推理優化的模型。

  • 使用最新模型。 較新的模型通常具備改良的能力。VS Code 持續增加對新模型與模型版本的支援。請查看可用模型並使用最新版本。

  • 在提示詞檔案與 Agent 中鎖定模型。 在您的提示詞檔案或自訂 Agent 定義中指定偏好的模型,確保特定任務能持續使用正確的模型。

  • 實驗並比較。 如果您對回應不滿意,請嘗試不同的模型。對於相同的提示詞,不同模型可能會產生顯著不同的結果。

  • 調整推理模型的思考力度。 使用模型選擇器中的思考力度控制,為複雜任務增加思考力度,或為簡單任務減少思考力度。

  • 使用 BYOK(自備金鑰)以獲得額外控制權。 攜帶您自己的 API 金鑰以選擇更多模型與託管選項。

  • 考量點數消耗。 能力更強的模型會消耗更多每個 Token 的 AI 點數。自動模型選擇會自動平衡品質與成本。如需更多提示,請參閱優化 AI 點數使用

如需更多資訊,請參閱選擇 AI 模型Copilot Chat 可用模型

先規劃,再實作

針對跨越多個檔案的複雜變更,請將規劃與實作分開。這種方法可防止 AI 解決錯誤的問題,並避免將 AI 點數浪費在最終需要捨棄的程式碼上。

  1. 探索。 在變更之前,使用提問模式 (ask mode) 或子 Agent 閱讀相關程式碼並了解其運作方式。
  2. 規劃。 使用 Plan Agent 建立結構化的實作計畫。在執行前審查並精煉計畫。
  3. 實作。 切換至 Agent 模式並根據計畫進行實作。包含測試或預期輸出,以便 Agent 可以驗證自己的工作。針對較長的任務,可交接給背景 Agent雲端 Agent
  4. 審查。 使用檢查點 (Checkpoints) 來審查進度,若 Agent 偏離軌道則倒回,或針對產生的提取請求要求 Copilot 進行程式碼審查

如需更多資訊,請參閱上下文工程工作流程

審查並驗證 AI 輸出

AI 產生的程式碼可能包含錯誤、安全性問題或細微的邏輯錯誤。請務必將 AI 輸出視為需要審查的起點。

  • 接受前請先審查。 在接受變更之前,請詳讀產生的程式碼。請留意邊界條件、錯誤處理以及 AI 可能做出的假設。

  • AI 變更後執行測試。 在提示詞中加入測試案例,以便 AI 可以驗證自己的工作。如果 AI 沒有自動執行測試,請在繼續之前自行執行。

  • 使用檢查點進行倒回。 如果 Agent 偏離軌道,請使用檢查點還原到已知良好的狀態,而不是嘗試修復連鎖錯誤。

  • 檢查安全性問題。 針對常見漏洞(如注入攻擊、硬編碼的金鑰或缺失的輸入驗證)審查 AI 產生的程式碼。避免將憑證或敏感資料貼入提示詞中。

如需更多資訊,請參閱 GitHub Copilot 安全性GitHub Copilot 信任中心

管理上下文與對話區段

當對話中充斥不相關的上下文時,AI 的回應品質可能會下降。請主動管理您的對話區段。

  • 針對不相關的任務啟動新對話區段。 不要將不相關的問題堆疊在同一個對話中。上下文污染會降低回應品質,並在不相關的歷史紀錄上浪費 Token。

  • 移除不相關的歷史紀錄。 刪除不再相關的過往問題與回應,或開啟全新的對話區段。

  • 精簡上下文。 使用 /compact 並提供指令以選擇性地精簡上下文,僅保留最相關的資訊。精簡可以減少後續請求傳送的 Token 數量,這有助於管理 AI 點數使用

  • 使用子 Agent 進行調查。 透過子 Agent 引導 AI 在隔離環境中進行研究與探索,這樣研究發現就不會干擾您的主要上下文。

  • 選擇正確的對話區段類型。 使用本機對話處理當前程式碼中需要即時關注的快速任務;使用背景任務處理可與主上下文隔離並在背景運行的任務;使用雲端對話區段以利於團隊協作。

  • 以平行對話區段進行擴展。 為獨立任務執行多個平行對話區段以節省時間並保持上下文分離。您可以同時運行多個對話區段(跨越本機、背景與雲端環境),並透過 VS Code 中的對話區段列表在它們之間切換。

  • 使用分岔 (Fork) 而非重新提示。 使用 /fork 來探索替代方案而不丟失上下文,而不是重新開始並從零建立上下文。

如需更多資訊,請參閱對話區段管理工作區索引優化 AI 點數使用

處理大型程式碼庫

Copilot 旨在與大型、複雜且具備多根目錄 (multi-root) 的工作區有效協作。請使用這些實踐以在規模化場景下獲得最佳結果。

  • 使用工作區索引。 VS Code 會自動利用語意搜尋、語言智慧與 GitHub 的程式碼搜尋來索引您的專案,以便進行深度的跨檔案推理。這適用於小型專案與大型企業級程式碼庫。對於大型儲存庫,請使用遠端索引,以在您的儲存庫以及 GitHub 上相關的儲存庫中獲得快速且全面的結果。

  • 使用多根目錄工作區來限制工作範圍。 對於 Monorepos(單體儲存庫)或包含多個服務的專案,請使用多根目錄工作區為 AI 提供明確的邊界與聚焦的上下文。

  • 提供專案層級的指令。 使用自訂指令來描述您的專案架構、模組邊界以及 AI 無法單從程式碼中推斷出的慣例。這為 AI 處理架構層級的變更提供了所需的上下文。

  • 針對獨立變更執行平行對話區段。 將大型任務分解為獨立的子任務,並在平行對話區段中執行,每個區段專注於程式碼庫的不同部分。

  • 針對跨領域變更使用 Plan Agent。 對於橫跨許多檔案或模組的變更,請先使用 Plan Agent 在執行前建立結構化的實作計畫。

如需更多資訊,請參閱工作區上下文Agent

© . This site is unofficial and not affiliated with Microsoft.