利用 AI + 遠端開發提升生產力

2025年5月27日,作者:Brigit MurtaughChristof MartiJosh SpicerOlivia Guzzardo McVicker

讓 VS Code 如此靈活且強大的功能之一就是遠端開發 (Remote Development)。無論是從本地桌面連接到安全的虛擬機器 (VM)、透過平板電腦連接到效能強大的電腦,還是使用包含專案所需所有依賴項的容器化環境,VS Code 實現隨時隨地開發任何事物的能力,幾乎可以協助各種開發設置。

現在將這些功能與 VS Code 中 AI 的靈活性和強大效能相結合,您將擁有一個極其通用的開發環境。您可以確保聊天對話具備遠端工作區的上下文,獲得 AI 在設置與偵錯遠端連接方面的協助,並為代理模式 (agent mode) 的自主運作提供更隔離的空間。

在本部落格中,我們將探討如何增強您現有的遠端設置,使其與 AI「完美協作」,並介紹一些更客製化的 AI + 遠端工作流程,包括自訂指令 (custom instructions)、聊天參與者 (chat participants) 以及代理自動批准 (agent auto-approvals)。

什麼是遠端開發?

當我們描述 VS Code 遠端開發時,指的是五種主要的體驗:

  • Remote - SSH - 透過 SSH 開啟遠端機器/虛擬機器上的資料夾,連接到任何位置。
  • Dev Containers - 在容器內(或掛載到容器中)使用獨立的工具鏈或基於容器的應用程式進行開發。
  • WSL - 在 Windows Linux 子系統 (WSL) 中獲得 Linux 驅動的開發體驗。
  • Remote - Tunnels - 透過安全通道連接到遠端機器,無需設定 SSH。
  • GitHub Codespaces - 為您託管的遠端開發環境。

Remote architecture

如何在遠端環境中使用 AI?

我們致力於讓 VS Code 中的 AI 編碼體驗盡可能無縫,無論您是在本地機器上工作,還是連接到遠端環境。如果您已經在本地使用 GitHub Copilot,我們會自動將其安裝到遠端。GitHub Codespaces 也已經進行了相關配置!

雖然在遠端環境中使用 AI 可以直接運作,但還有一些額外的 AI 功能可以讓您的遠端工作流程更加強大:

  • 自訂指令 (Custom instructions) - 為您的遠端環境量身打造 AI 體驗
  • 聊天參與者 (Chat participants) - 使用聊天功能來設置與疑難排解您的遠端環境
  • 工具批准 (Tool approvals) - 在遠端環境中安全地執行自主編碼工作階段

為您的遠端環境量身打造 AI 體驗

我們從使用者在使用 LLM 時收到的熱門請求之一是:如何協助 LLM 更好地理解我的程式碼與編碼實踐?您可以透過自訂指令來實現,這些指令描述了通用準則或規則,以獲得符合您特定編碼實踐與技術堆疊的回應。與其在每次 AI 聊天查詢中手動加入這些上下文,不如使用自訂指令在每次聊天請求中自動納入這些資訊(在我們的近期部落格文章中了解更多)。

在我們團隊近期的自我託管經驗中,我們發現使用自訂指令不僅能讓 Copilot 了解我們的程式碼與編碼實踐,還能提供有關我們所連接遠端環境類型的更多資訊,例如:

  • 這是哪種遠端環境(例如:Dev Container 與虛擬機器)?
  • 安裝了哪些語言或工具鏈?它們的用途是什麼?
  • 工具鏈安裝在哪裡(例如:它們是否在 PATH 中可用)?

以下是我們團隊認為實用的指令範例:

This is a dev container that includes `python3` and `pip3` pre-installed and available on the `PATH`, along with the Python language extensions for Python development.

若要在遠端環境中使用自訂指令,您可以直接在遠端使用您已在本地使用的相同指令檔案

為您的 Dev Container 配置 AI

Dev Containers 透過預先配置所有工具與依賴項,讓專案開發更容易上手。透過加入自訂指令,您可以確保 LLM 針對該環境量身調整,而非提供通用的回答。例如,用於 Python 開發的 Dev Container 可以包含關於安裝了哪些工具,或應遵循哪些編碼準則的自訂指令(如上述範例所示)。

我們團隊採取了預先配置自訂指令的措施,讓您在使用 Dev Containers 時更加輕鬆。我們發布了 Dev Container 資源(例如映像檔與功能 Features),以簡化建立與連接 Dev Containers 的流程,現在我們也在這些檔案中加入了自訂指令。以下是您可以如何使用我們團隊加入的自訂 Dev Container 指令的範例:

  • 使用我們的映像檔或 Features 建立一個新的 Dev Container 配置。您可以手動執行此操作,或使用 Dev Containers 擴充功能提供的 Dev Containers: Add Dev Container Configuration Files... 指令。

    Dev Containers: Add Dev Container Configuration Files command in VS Code Command Palette

  • 按照快速選擇 (quick pick) 中的步驟操作。在本範例中,我們將選擇 Python 範本。

    Select Python 3 dev container config in VS Code Command Palette

  • 在 VS Code 中建置並連接到您的 Dev Container。

    VS Code notification to reopen project in dev container

  • 您所選擇並連接的環境是基於我們的 Python 範本,該範本透過 Python Feature 包含了自訂指令。嘗試在您的 Dev Container 中與 Copilot 聊天——Copilot 會自動從 Python 映像檔中提取這些自訂指令!

    AI chat using custom instructions

除了使用我們加入到映像檔與 Features 中的自訂指令外,您還可以在專案的 devcontainer.json 中加入額外的自訂指令——我們已經實現了自訂指令跨映像檔與範本的成功合併。您可以像我們在上述 Python Dev Container 配置中所做的那樣,使用 "github.copilot.chat.codeGeneration.instructions" 設定。

如果您發布了任何供他人使用的 Dev Container 配置,我們建議您探索如何將自訂指令加入其中!這裡是在 Python Dev Container Feature 中使用自訂指令的範例。

"github.copilot.chat.codeGeneration.instructions": [
    {
        "text": "This dev container includes `python3` and `pip3` pre-installed and available on the `PATH`, along with the Python language extensions for Python development."
    }
],

使用聊天功能來設置與疑難排解您的遠端環境

聊天參與者 (Chat participants) 透過提供領域特定知識(例如如何與資料庫或特定 API 互動)來增強您的聊天體驗。在聊天輸入欄位中輸入 @ 即可檢視並選擇可用的參與者清單——它們將在 Ask 模式下可用。有幾個內建的聊天參與者,例如 @workspace@vscode@terminal。擴充功能也可以提供聊天參與者。

Remote - SSH 擴充功能包含一個 Copilot 聊天參與者。您可以詢問 @remote-ssh,以尋求配置或疑難排解遠端環境要素的協助。

Using Remote - SSH participant in VS Code chat panel

該參與者也具備關於一般 SSH 與遠端開發主題的知識。

Asking Remote - SSH participant about remote auth

如果發生連接失敗,使用 Copilot 診斷 (Diagnose with Copilot) 功能提供了一種快速了解問題的方法。

Diagnose with Copilot option in notification

Copilot 將調查問題並提供可執行的見解。

在遠端環境中安全地執行自主編碼工作階段

作為完成使用者提示任務的一部分,代理模式 (agent mode) 可以執行工具與終端機指令。代理模式之所以強大,是因為它不僅能提出程式碼變更建議,還能執行終端機指令與工具。例如,它可以安裝專案依賴項或執行測試。然而,其中一些操作(如刪除檔案、修改本地配置等)可能具有破壞性。因此,您需要批准在代理模式下使用工具與終端機指令。

Agent mode tool approval options dropdown

如果您希望自動批准所有工具,現在可以使用實驗性的 chat.tools.autoApprove 設定。為了防止無意的終端機指令或工具呼叫,您可以選擇僅在 Dev Container 或遠端機器中設定此選項,以避免影響您的本地開發機器。

Auto Approve tool setting in VS Code remote settings

這將自動批准所有工具,且當語言模型希望執行工具時,VS Code 將不會要求確認。這可以透過賦予代理模式更多自主權來節省時間,但請記住,啟用此設定後,您將沒有機會取消模型可能採取的潛在破壞性操作。

請注意,屬於您本地機器(如 Dev Containers)或具有存取您憑證權限的遠端環境將構成不同程度的風險。

接下來是什麼

我們對 VS Code 中遠端開發與 AI 的未來感到興奮。我們的每月發布版本充滿了令人興奮的新功能,我們也持續關注未來的發展,例如支援在網頁版中使用 Copilot Chat(vscode.dev, github.dev)。

祝您編碼愉快(聰明且遠端地)!Brigit、Christof、Josh 與 Olivia

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