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

透過 AI + 遠端開發提高生產力

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

讓 VS Code 如此靈活和強大的功能之一是遠端開發。無論你是從本地桌面連線到安全的虛擬機器,從平板電腦連線到效能強勁的計算機,還是連線到包含專案所需所有依賴項的容器化環境——VS Code 能夠*隨時隨地開發任何東西*的能力,幾乎可以在任何設定中提供幫助。

現在,將這些功能與 VS Code 中 AI 的靈活性和強大功能相結合,你將擁有一個極其通用的開發環境。你可以確保聊天對話具有關於遠端工作區的上下文,獲得 AI 幫助來設定和除錯遠端連線,併為代理模式提供一個更隔離的空間以自主工作。

在這篇部落格中,我們將探討如何增強你現有的遠端設定,使其能夠與 AI “無縫協作”,以及一些更定製化的 AI + 遠端工作流,包括自定義指令、聊天參與者和代理自動批准。

什麼是遠端開發?

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

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

Remote architecture

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

我們希望讓在 VS Code 中的 AI 編碼體驗儘可能無縫,無論你是在本地機器上工作還是連線到遠端環境。如果你已經在本地使用 GitHub Copilot,我們會自動將其遠端安裝。GitHub Codespaces 也已配置好它!

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

  • 自定義指令 - 為你的遠端環境量身定製 AI 體驗
  • 聊天參與者 - 使用聊天來設定和排查你的遠端環境問題
  • 工具批准 - 在遠端環境中安全地執行自主編碼會話

為你的遠端環境量身定製 AI 體驗

我們從使用者那裡聽到的關於使用 LLM 的首要請求之一是:我如何幫助 LLM 更好地理解我的程式碼和編碼實踐?你可以透過**自定義指令**來實現這一點,這些指令描述了通用的指南或規則,以獲得符合你特定編碼實踐和技術棧的響應。自定義指令會自動將這些資訊包含在每個聊天請求中,而不是在每個 AI 聊天查詢中手動包含此上下文(在我們的近期部落格文章中瞭解更多)。

在我們團隊最近的自託管實踐中,我們發現使用自定義指令不僅可以告訴 Copilot 關於我們的程式碼和編碼實踐,還可以提供更多關於我們所連線的遠端環境型別的資訊,例如:

  • 這是哪種型別的遠端環境(例如,是開發容器還是虛擬機器)?
  • 安裝了哪些語言或工具鏈?它們的用途是什麼?
  • 工具鏈安裝在哪裡(例如,它們是否在 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.

要在遠端環境中開始使用自定義指令,你可以遠端使用與本地相同的指令檔案

為你的開發容器配置 AI

開發容器透過預先配置所有工具和依賴項,使專案入門變得更加容易。透過新增自定義指令,你可以確保 LLM 是為該環境量身定製的,而不是提供通用的答案。例如,一個用於 Python 編碼的開發容器可能會有關於安裝了哪些工具或應遵循哪些編碼指南的自定義指令(如上例所示)。

我們團隊已採取措施預配置自定義指令,讓你在使用開發容器時更加輕鬆。我們釋出開發容器資源(如映象和功能),以簡化建立和連線到開發容器的過程,現在我們還在這些檔案中包含了自定義指令。以下是如何使用我們團隊新增的自定義開發容器指令的示例:

  • 使用我們的一個映象或功能建立一個新的開發容器配置。你可以手動完成,也可以透過開發容器擴充套件提供的 **Dev Containers: Add Dev Container Configuration Files...** 命令來完成。

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

  • 按照快速選擇中的步驟操作。在本例中,我們將選擇 Python 模板。

    Select Python 3 dev container config in VS Code Command Palette

  • 在 VS Code 中構建並連線到你的開發容器。

    VS Code notification to reopen project in dev container

  • 你已選擇並連線的環境基於我們的 Python 模板,該模板透過 Python 功能包含了自定義指令。嘗試在你的開發容器內與 Copilot 聊天——Copilot 會自動從 Python 映象中提取自定義指令!

    AI chat using custom instructions

除了使用我們新增到映象和功能中的自定義指令外,你還可以在專案的 devcontainer.json 中新增額外的自定義指令——我們已經確保了自定義指令可以在映象和模板之間成功合併。你可以使用 "github.copilot.chat.codeGeneration.instructions" 設定,就像我們在上面描述的 Python 開發容器配置中所做的那樣。

如果你釋出了任何供他人使用的開發容器配置,我們建議你探索如何向其中新增自定義指令!這裡是在 Python 開發容器功能中使用自定義指令的示例。

"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."
    }
],

使用聊天來設定和排查你的遠端環境問題

聊天參與者透過提供特定領域的知識(例如如何與資料庫或特定 API 互動)來增強你的聊天體驗。在聊天輸入欄位中鍵入 @ 檢視並從可用參與者列表中選擇——它們將在提問模式下可用。有幾個內建的聊天參與者,如 @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

如果發生連線失敗,**Diagnose with Copilot** 功能提供了一種快速理解問題的方法。

Diagnose with Copilot option in notification

Copilot 將調查問題並提供可操作的見解。

在遠端環境中安全地執行自主編碼會話

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

Agent mode tool approval options dropdown

如果你想自動批准*所有*工具,現在可以使用實驗性的 chat.tools.autoApprove 設定。為了給你提供一定程度的保護,防止無意的終端命令或工具呼叫,你可以選擇只在開發容器或遠端機器中設定此項,以防止你的本地開發機器受到影響。

Auto Approve tool setting in VS Code remote settings

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

請注意,作為你本地機器一部分的遠端環境(如開發容器)或可以訪問你憑據的環境將帶來不同程度的風險。

下一步計劃

我們對 VS Code 中遠端開發和 AI 的未來感到興奮。我們的每月釋出都充滿了激動人心的新功能,我們也在不斷展望未來,比如支援 Copilot Chat 在 Web 上vscode.devgithub.dev)的使用。

祝你編碼愉快(智慧且遠端)!Brigit、Christof、Josh 和 Olivia