VS Code 1.106 版本技術摘要:AI Agent 深度整合與核心編輯器開源

筆記x備忘

這是一份由 NotebookLM 生成的文章內容,介紹 VSCode V_106 升級的細節摘要。

簡介

本文件旨在為內部開發與產品團隊提供 Visual Studio Code 1.106 版本的深度技術解析。本次更新標誌著兩項重大的架構性演進:一是透過全新的「Agent HQ」實現 AI Agent 的深度整合與統一管理,這項變革提供了一個 AI 互動的統一控制平面,解決了以往 Agent 會話分散且難以追蹤的挑戰;二是將核心的「行內建議」功能開源,並整合至統一的 Copilot 擴充套件中,這是一項對平台開放性具有深遠影響的戰略舉措。本摘要將聚焦於這些變更的技術實現細節、對現有開發工作流程的影響,以及平台 API 的重要更新,以利團隊進行後續的技術評估與產品規劃。

——————————————————————————–

1. 核心架構演進:AI Agent 整合與管理 (Agent HQ)

VS Code 1.106 版本在 AI 整合方面最核心的架構性變革,是引入了一個統一的 Agent 管理中心——Agent HQ。本章節將深入分析 Agent HQ 的核心組件、新引入的 Agent 工作流程,以及跨環境整合的技術實現,解析這些變革如何為開發者提供更集中、更強大的 AI 協作能力。

1.1 Agent HQ 核心功能解析:Agent Sessions view

「Agent Sessions view」是管理所有 AI 互動的核心介面,其設計目標是提供一個單一入口,以監控和審查所有進行中的 Agent 會話。

  • 集中式管理:此視圖整合了本地(在 VS Code 內部啟動的 Chat)與遠端背景執行的 Agent 會話,涵蓋了如 GitHub Copilot CLI、OpenAI’s Codex 等多種來源。
  • 預設啟用與配置:該視圖現已預設啟用,開發者可透過 chat.agentSessionsViewLocation 設定進行客製化。值得注意的是,single-view 選項可將所有提供者的會話合併至單一視圖中,提供更緊湊的體驗。
  • 高效搜尋:新增的搜尋功能 (⌥⌘F / Ctrl+Alt+F) 對於需要管理大量並行 AI 任務的開發者而言極其實用,能快速定位特定會話。

這種集中式模型是一次關鍵的架構轉變,它降低了開發者的認知負荷,並為未來編排複雜的多 Agent 工作流程提供了基礎層,超越了簡單的單次互動模式。

1.2 新增 Agent 類型與工作流程:Plan Agent

本次版本引入了一種全新的「Plan Agent」,其策略價值在於將 AI 的介入時機提前至程式碼撰寫之前,專注於任務的規劃與分解。

  • 工作流程分析:此 Agent 首先透過一系列引導性問題來釐清複雜任務的需求,隨後生成一份詳細的實施計畫。該計畫必須經過開發者審批後,才會交由 Copilot 執行。
  • 對開發流程的影響:這種「先規劃,後執行」的模式,有助於在專案初期就發現潛在的需求缺口或決策遺漏。這不僅能大幅減少後期的重工,更能從源頭上提升最終交付的程式碼品質。
  • 可自訂性:團隊可透過「Configure Custom Agent」功能,複製內建的 Plan Agent 作為模板,量身打造符合團隊特定開發流程與工具鏈的規劃 Agent。一旦計畫被批准,Copilot 可以在 VS Code 本地執行,或透過雲端 Agent 來完成實施。

1.3 跨環境 Agent 整合

Agent HQ 的架構設計充分考慮了跨環境協作的需求,特別是在雲端與命令列工具的整合上。

Agent 類型技術整合重點
Cloud AgentsCopilot coding agent 的核心整合邏輯已從 GitHub Pull Request 擴充套件遷移至 Copilot Chat 擴充套件。此項架構簡化提供了更原生的體驗,並為 VS Code 與 GitHub Mission Control 之間的無縫互動奠定基礎。
CLI Agents本次版本實現了與 Copilot CLI 的初步整合。使用者現在可以直接在 VS Code 的聊天編輯器或整合式終端機中,建立或恢復 CLI Agent 的會話,實現了 GUI 與 CLI 工具鏈的無縫銜接。

1.4 術語統一與自訂 Agent 增強

為保持與其他開發環境術語的一致性,並增強自訂能力,平台進行了以下調整:

  • 術語統一:「Chat modes」已在整個 VS Code 中正式更名為「Custom agents」。
  • 定義檔案標準化:自訂 Agent 的定義檔案位置已統一至工作區的 .github/agents 目錄下,並使用 .agents.md 作為標準副檔名。系統為舊有的 .chatmode.md 檔案提供了平滑的遷移路徑。
  • 元數據擴展.agent.md 檔案的 frontmatter 中新增了多個關鍵屬性,以實現更精細的控制:
    • target: 描述 Agent 的目標運行環境(例如 vscode, github-copilot)。
    • name: 允許覆寫 Agent 在 UI 中顯示的標籤名稱。
    • argument-hint: 在聊天輸入框中提供參數提示,引導使用者正確與 Agent 互動。
    • handoffs: 允許將多個 Agent 串接起來,形成複雜的多步驟工作流程。handoffs 屬性尤其值得關注,它促成了可組合的 AI 工作流程。這使得我們能設計並串聯多個專責的、單一職責的 Agent,是建構複雜、企業級 AI 助理時更穩健、更易於維護的架構方法。

總結而言,Agent 架構的全面升級,從管理介面到工作流程,再到跨環境整合,為 AI 驅動的開發模式奠定了更為堅實與可擴展的基礎。接下來,我們將探討編輯器核心層面的重大演進。

——————————————————————————–

2. 編輯器核心開源與開發體驗優化

除了 AI Agent 的革新,1.106 版本在編輯器核心層面也進行了重大調整,特別是將關鍵的 AI 功能開源,這對平台的未來發展具有指標性意義。本章節將剖析「行內建議」功能的開源始末及其對 Copilot 擴充套件生態的影響,並介紹其他直接提升日常編碼效率的關鍵優化。

2.1 「行內建議」功能開源與擴充套件合併

此版本達成了一個重要的里程碑:將「行內建議 (Inline suggestions)」功能正式開源,並將其核心程式碼合併至 vscode-copilot-chat 儲存庫。

  • 策略意圖分析:此舉的核心目標是將原先獨立的 GitHub CopilotGitHub Copilot Chat 兩個擴充套件,合併為單一的整合式體驗。未來,將由 Copilot Chat 擴充套件統一提供所有行內建議、聊天及 Agent 功能。
  • 棄用時程與行動GitHub Copilot 擴充套件計畫將於 2026 年初被棄用,這是一個關鍵的時程節點。我們的團隊必須開始規劃,在所有標準開發環境中轉換至統一的 Copilot Chat 擴充套件,以避免未來的服務中斷。
  • 回退機制:為確保平滑過渡,提供了一個 chat.extensionUnification.enabled 設定。若在遷移過程中遇到任何問題,使用者可暫時利用此設定恢復到舊的雙擴充套件行為模式。

2.2 差異比較 (Diff) 與程式碼導航功能強化

本次更新包含了多項針對開發者日常高頻操作的體驗優化。

  • Diff Editor 優化:在內嵌差異檢視 (inline diff view) 中,先前無法被選取的「已刪除程式碼區塊」現在已支援選取與複製操作。這項改進雖然細微,卻極大地提升了程式碼審查(Code Review)的便利性。
  • Go to Line 功能增強:「Go to Line」(⌃G / Ctrl+G) 命令的功能得到了顯著擴展。現在,它支援使用 :: 語法直接導航至檔案中的特定字元位置(例如 ::599 可跳轉至第 599 個字元,::-100 可跳轉至距檔案結尾 100 個字元處),這對於處理來自工具鏈的、基於字元偏移量的錯誤報告非常有用。同時,該功能對於超出範圍的行號與欄號處理也更加友好,簡化了跳轉至檔案或行首/尾的操作。

這些編輯器層面的優化直接提升了開發者的日常工作效率。接下來,我們將探討同樣重要的終端機與 Chat 工具鏈之間更深層次的整合。

——————————————————————————–

3. 終端機 (Terminal) 與 Chat 工具鏈深度整合

終端機作為開發者的核心工具,在 1.106 版本中與 AI Chat 的整合達到了新的高度。這些改進旨在將 AI 的智慧能力無縫注入到傳統的命令列工作流程中。本章節將分析 Terminal IntelliSense 的正式發布、Terminal Tool 內部解析器的重大升級,以及 Chat 與終端機之間實現的創新雙向互動。

3.1 Terminal IntelliSense 正式發布

經過長達 1.5 年的預覽階段,Terminal IntelliSense 功能現已正式發布,並將分階段向所有穩定版使用者預設啟用。

  • 核心價值:此功能為 PowerShell、bash、zsh 和 fish 等主流 shell 提供了類似程式碼編輯器的智慧提示與自動補全體驗。
  • 智慧提示來源:其補全建議來源多樣,具備高度上下文感知能力:
    • 路徑補全:由 VS Code 核心提供,反應靈敏。
    • 指令規格:能根據指令語義提供智慧建議,例如,在輸入 git 相關指令時,能自動提取當前的分支名稱作為補全選項。
    • 新增支援:本次更新後,copilotazd CLI 已被納入支援範圍,具備開箱即用的補全功能。
  • 高度可配置:該功能提供了豐富的配置選項,開發者可透過 terminal.integrated.suggest.enabled 手動啟用,並進行細粒度的行為調整。

3.2 終端機工具 (Terminal Tool) 剖析

後端用於解析和執行終端機指令的 Terminal Tool 進行了底層升級,顯著提升了其安全性與可靠性。

  • 解析器升級:在自動批准 (auto approve) 機制上,系統從過去簡單的字串分割邏輯,升級為整合了完整的 PowerShell 和 bash 文法解析器
  • 技術優勢:從粗糙的字串分割升級為正規的文法解析器,是對該工具可靠性與安全性的根本性增強,使我們能更自信地自動批准範圍更廣的複雜 shell 指令。例如,它能正確處理 echo "a|b|c" 這類包含在字串中的特殊字元,避免錯誤解析,並安全地支援括號、大括號等複雜語法。重要限制:需注意,此解析器基於 bash 文法,這意味著當 shell 語法與 bash 不同時(如 zsh 中的 ;),可能無法成功捕獲子命令。
  • 基於新解析器的實驗性功能
    • 檔案寫入/重導向偵測:可透過 chat.tools.terminal.blockDetectedFileWrites 設定,有條件地阻止 AI Agent 執行可能覆蓋檔案的寫入操作,增強安全性。
    • 禁用預設自動批准規則chat.tools.terminal.ignoreDefaultAutoApproveRules 設定允許使用者完全自訂批准規則,實現更嚴格的權限控制。
  • Shell 特定提示:終端機工具現在能為 PowerShell、bash、zsh 和 fish 提供針對性的 shell 提示,這使得 AI Agent 建議的指令更加可靠,減少了因 shell 語法差異導致的執行失敗。

3.3 Chat 與終端機的雙向互動

新的工作流程打通了終端機與 Chat 之間的資訊壁壘,實現了雙向的上下文傳遞。

  • 從終端機到 Chat:開發者現在可以從終端機命令裝飾器 (command decoration) 的右鍵選單中,將一條已執行的終端機命令作為上下文,直接附加到 Chat 會話中
  • 上下文完整性:附加的內容非常完整,包含了完整的指令、捕獲的標準輸出以及最終的結束代碼。這讓 AI Agent 能夠精確理解指令的執行情況,從而提供更具針對性的除錯建議或後續操作。
  • 輸出內嵌顯示:實驗性的 chat.tools.terminal.outputLocation 設定,允許將終端機指令的輸出直接內嵌顯示在聊天視窗中。特別是在指令執行失敗時,輸出會自動展開,極大地簡化了除錯流程。

終端機與 AI 的無縫整合,極大地提升了命令列操作的智慧化程度與安全性。下一章節將轉向平台層面,探討為擴充套件開發者提供的最新 API 與能力。

——————————————————————————–

4. 平台擴充性與 API 更新

1.106 版本不僅增強了使用者功能,也為擴充套件生態系統的發展提供了更強大的底層支援。本章節將重點介紹針對企業級應用的 MCP 協議更新、擴充套件開發者可用的核心 API 變更,以及幾項前瞻性的提案中 API,這些更新為建構更深度整合的 VS Code 體驗開闢了新的可能性。

4.1 MCP (Model Context Protocol) 企業級支援與驗證更新

針對企業環境中的模型與工具管理,MCP 進行了多項關鍵升級:

  • 企業級註冊中心:VS Code 現已支援透過 GitHub 組織策略來配置 MCP 註冊中心。企業可透過 chat.mcp.gallery.serviceUrlchat.mcp.access 設定,自訂可供內部安裝和啟動的 MCP 伺服器列表,實現集中化管理。
  • 工作區級別配置:安裝 MCP 伺服器時,新增了安裝到工作區配置 (.vscode/mcp.json) 的選項。這使得團隊成員可以輕鬆共享專案所需的特定 MCP 伺服器配置。
  • 驗證流程升級
    • CIMD 支援:新增了對 Client ID Metadata Document (CIMD) 驗證流程的支援,這是一種更安全、可擴展性更強的 OAuth 驗證標準,提升了與現代授權伺服器整合的安全性。
    • 動態權限提升:支援透過 WWW-Authenticate 標頭進行動態範圍 (scope) 提升。此機制遵循最小權限原則,允許應用程式僅在執行特定操作需要時才請求提升權限,而非在初始連接時便要求所有權限。

4.2 擴充套件作者 API 更新

本次釋出包含了多項穩定的 API 更新,為擴充套件開發帶來了新的能力:

  • AuthenticationSession 中的 idTokenAuthenticationSession 介面新增了一個可選的 idToken 屬性。這允許身份驗證提供者在返回 access token 的同時,也返回包含使用者身份聲明的 ID token,對於需要驗證使用者身份的場景非常有用。
  • Git Extension API:內建的 Git 擴充套件提供了一個新的 getRepositoryWorkspace API,可用於獲取與特定 Git 遠端儲存庫關聯的本地工作區資料夾,簡化了與 Git 相關的擴充套件開發。
  • Secondary Side Bar 視圖容器:擴充套件作者現在可以使用新增的 secondarySidebar 貢獻點,將自訂的視圖容器註冊到第二側邊欄中,使其擴充套件能更好地融入 VS Code 的雙側邊欄佈局。

4.3 提案中 API (Proposed APIs) 預覽

以下幾項重要的提案中 API 預示了平台未來的擴充方向:

  • Quick Pick & Quick Input 增強:提案中新增了對切換按鈕 (toggle buttons) 的支援,可在輸入框中添加互動元素。同時,也支援了提示文字 (prompt) 以及根據 resourceUri 自動顯示檔案類型圖示,豐富了快速選擇介面的互動性。
  • MarkdownString 支援MarkdownString 新增 supportAlertSyntax 屬性,可用於渲染 GitHub 風格的警示框(如 NOTE, WARNING)。此外,TreeItem 的標籤現在也支援 MarkdownString,這意味著樹狀視圖的項目可以包含 codicons 圖示和豐富的文字格式。

平台 API 的持續演進為團隊自訂和擴展 VS Code 提供了強大工具。最後一章將關注專案的工程實踐與版本維護資訊。

——————————————————————————–

5. 工程實踐與重要修復

本次版本迭代不僅帶來了功能創新,也在開發流程和平台穩定性方面有所提升。本章節將簡要介紹一項用於改善 UI 變更審查流程的內部自動化探索,並列出本次更新中重要的平台支援變更與數個關鍵問題的修復。

5.1 內部工程流程改進:自動化 UX 測試

為提升 UI 變更的審查效率,團隊正在探索一項新的自動化工作流程。

  • 流程概述:當一個 Pull Request (PR) 被標記上 ~copilot-video-please 標籤時,自動化程序將會啟動。它會自動建置該 PR 的分支版本,並利用 GitHub Copilot CLI 和 playwright-mcp 工具來模擬使用者操作,錄製一段操作影片。最終,這段影片連同 Playwright 追蹤檔案會被發佈為 PR 的一則留言。
  • 評估價值:儘管此流程尚處於早期探索階段,但它有望顯著減少審查者手動下載、建置並驗證 UI 變更所需的工作量,特別是對於小型 UI 調整,能夠提供快速直觀的驗證結果。目前,這些影片僅供團隊成員存取。

5.2 平台支援變更與關鍵問題修復

  • 平台支援行動要求:VS Code 1.106 是支援 macOS 11.0 (Big Sur) 的最終版本。 所有開發團隊必須確保其設備在下一個發布週期前升級至相容的作業系統版本,以維持技術支援。
  • 關鍵問題修復:本次更新解決了多個影響開發者體驗的問題,其中幾個較為重要的修復包括:
    • vscode#258236: 為擴充套件安裝過程新增了請求超時設定,以應對網路不穩定的情況。
    • vscode#272945: 修正了 Tasks 未能正確觸發 onDidStartTerminalShellExecution 事件的問題,恢復了任務相關擴充套件的正常運作。
    • vscode#243584: 修正了在 PowerShell/conpty 環境下,第一個鍵盤輸入有時會被忽略的錯誤。
    • vscode#274631: 網路層面:在 Windows 平台上,現在會正確加載中繼憑證授權單位,解決了部分企業網路環境下的連線問題。