Visual Studio Code 1.120
發布日期:2026 年 5 月 13 日
下載:Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 1.120 版本。此版本將「代理程式 (Agents)」視窗納入穩定版,提升了 BYOK (自帶金鑰) 模型的能見度與控制力,並帶來了 Markdown 的使用體驗優化及代理程式安全功能。以下為本版本的重點摘要:
-
穩定版代理程式視窗:透過全新的「代理程式」視窗,以代理程式優先的方式處理您所有專案的工作。
-
BYOK 優化:追蹤並優化 Token 使用量,並為您的 BYOK 模型設定思考效能 (thinking effort)。
-
Markdown 優化:透過差異比較 (diff) 的 Markdown 預覽功能,檢視 Markdown 內容而非原始語法。
-
指令風險評估:在執行終端機指令前評估其風險。
-
Token 優化:透過壓縮大型終端機輸出,減少內容視窗 (context window) 的佔用。
祝您開發愉快!
代理程式
透過代理程式視窗跨專案協調任務 (預覽版)
雖然已有數百萬名開發人員使用 VS Code 進行代理程式輔助編碼,但其編輯器佈局主要針對單一任務、單一工作區的工作流程進行了優化。為了讓我們(以及我們自己!)能夠跨多個專案使用多個代理程式,我們創建了一種新型視窗:代理程式 (Agents)。
全新的代理程式視窗是您熟悉的編輯器的輔助工具:專為代理程式驅動的開發而打造,提供專屬空間來探索、迭代並審核跨多個專案的任務,並能流暢地在它們之間切換。由於 VS Code 是為開發者的選擇與彈性而設計,代理程式視窗允許您選擇代理程式框架 (harness)、在遠端機器上執行代理程式,並依照您的需求配置環境——包括色彩佈景主題、快速鍵以及擴充功能。
代理程式視窗在過去的幾個版本中已作為 VS Code Insiders 的一部分提供,隨著此版本的發布,它現在已成為 VS Code 穩定版中的預覽功能。
您可以透過多種方式開啟代理程式視窗,包括點擊 VS Code 標題列上的「在代理程式中開啟 (Open in Agents)」按鈕。若要了解其運作方式及功能,請造訪 代理程式視窗說明文件。
有什麼新功能?
如果您已經在 Insiders 版本中使用過代理程式視窗,感謝您的參與!我們持續根據您的回饋進行改進,本週推出了以下更新:
- 偏好設定於新工作階段中持久保存:當您建立新的工作階段時,系統會保留您在代理程式框架和隔離模式等下拉式選單中的最後選擇。
- 更輕鬆地捨棄變更:您可以直接從「變更 (Changes)」面板捨棄編輯內容。
- 在新工作階段同步上游變更:檔案面板上的同步按鈕可讓您查看基礎分支的上游變更,並在代理程式開始工作前將其拉取。
- 更具確定性的變更互動:變更面板中的動作現在更具確定性,因此能更快速地完成。
- 預設檢視已完成工作階段的所有變更:當您開啟標記為「已完成」的工作階段時,您會自動概覽代理程式的所有編輯內容。
- 在近期工作階段間導覽:使用標題列左上方的箭頭按鈕,無需離開視窗即可在近期工作階段間跳轉。
- 每個視窗的覆蓋設定:代理程式視窗現在共享您所有的 VS Code 設定,當您希望該視窗有不同行為時,可以針對代理程式視窗覆蓋特定設定。
您的回饋對於塑造代理程式視窗至關重要。請透過 GitHub 提交問題 或瀏覽 現有的問題。
擴充性
僅提供靜態內容的擴充功能(如佈景主題、語法、語言和快速鍵)會自動在代理程式視窗中啟用。我們也測試了 Marketplace 前 100 名的擴充功能,其中一些在安裝於預設 VS Code 設定檔時也能啟用。
對於其他擴充功能,您可以使用 extensions.supportAgentsWindow 設定,透過 ID 選擇啟用。您以這種方式啟用的任何擴充功能,都必須安裝在您的預設 VS Code 設定檔中。
"extensions.supportAgentsWindow": {
"myextension.id": true
}
雖然我們仍在完善更廣泛的擴充功能支援,但我們期望與擴充功能開發者合作,探討在代理程式視窗中啟用擴充功能能帶來哪些可能性,以及各種擴充功能在此環境中應如何表現。無論您是想構思利用跨專案代理程式執行的新場景,還是分享您現有擴充功能在代理程式視窗中的表現回饋,我們都非常樂意透過 GitHub Issues 與您合作。
自動探索 Copilot CLI 外掛程式
代理程式外掛程式若透過 GitHub Copilot CLI 安裝,VS Code 將會自動識別,因此單一 copilot plugin install 指令即可適用於兩者。先前,您必須在 VS Code 中分別安裝相同的外掛程式,或將其路徑新增至 chat.plugins.paths 。
語言模型
透過 BYOK (自帶金鑰),您可以使用來自 Anthropic、OpenAI 等供應商的個人 API 金鑰,以利用您自己的計費方式或模型託管選項。欲了解更多資訊,請參閱 BYOK 說明文件。
檢視 BYOK 模型 Token 使用量
管理模型的內容視窗 (context window) 對於獲得良好結果及控制成本至關重要。模型可能會遺失對話中的重要細節,而 Token 使用量的增加也會導致成本上升。此版本提升了 BYOK 模型 Token 使用量的能見度,讓您可以隨時監控內容視窗的狀況。
先前,當您使用自帶 API 金鑰(Anthropic、OpenAI 或其他)與模型對話時,控制項總是顯示 0% 和零 Token 計數,因為 Token 計算功能當時僅適用於內建模型。
現在,聊天檢視中的內容視窗控制項可以顯示 BYOK 模型的準確 Token 使用量及已佔用百分比。

配置 BYOK 推理模型的思考效能 (thinking effort)
具備推理能力的語言模型允許您配置其「思考效能」,這是在響應品質與速度/成本之間取得平衡的方式。您可以在思考效能說明文件中了解更多。
在此版本中,您可以直接從聊天檢視的模型選擇器中配置 BYOK 推理模型的思考效能。所選的效能設定將在每次請求時轉發給模型,讓您在延遲、成本與答案品質之間進行權衡。

適用於:透過 OpenAI 相容端點(OpenAI、xAI (Grok)、OpenRouter 及自訂 OpenAI / Azure OpenAI 部署)提供的自帶金鑰 (BYOK) 推理模型。Anthropic 模型先前已支援此功能;現在該控制項在各供應商間已保持一致。
依供應商分組的模型選擇器
聊天檢視中的模型選擇器現在按供應商分組模型,當您從多個來源存取模型時,能更輕鬆地找到您要的模型。您也可以依名稱搜尋模型。
近期使用的模型現在會顯示灰色文字的供應商名稱,讓您能快速區分來自不同供應商但名稱相似的模型。
您可以在聊天輸入框中輸入 /models 來快速存取模型。
聊天
終端機工具輸出壓縮 (預覽版)
設定: chat.tools.compressOutput.enabled
來自 git diff、ls -l 和 npm install 等指令的長終端機輸出可能會佔用大量模型的內容視窗,導致留給程式碼和代理程式推理的空間減少。
當您啟用 chat.tools.compressOutput.enabled 設定後,VS Code 會在將這些輸出傳送給模型之前進行後處理。差異比較中大量未變更的部分會被摺疊,鎖定檔案與快照差異會被捨棄,ls -l 會縮減為僅保留入口名稱,而 npm install 的進度列、棄用警告和稽核摘要將會被移除。
壓縮後的輸出前會附加一個短橫幅,讓模型可以看到觸發了哪些篩選器,若需要原始文字,模型也能知道如何停用壓縮。
終端機指令風險評估 (實驗性質)
設定: chat.tools.riskAssessment.enabled
為了協助您快速決定指令是否值得進一步檢視,終端機指令確認現在包含一個風險標章,並附有由 AI 生成的指令功能說明。
每個標章顯示三個層級之一,並附帶針對該特定指令客製化的一句話總結:
- 安全 (綠色):讀取檔案或輸出資訊,不會進行修改。
- 注意 (橘色):會修改工作區、安裝套件或透過網路傳送資料。
- 仔細審核 (紅色):執行可能難以或無法復原的動作,例如強制推送 (force-push) 至遠端或刪除工作區外的檔案。

Claude 和 Copilot CLI 的規劃模式控制
設定: chat.planWidget.inlineEditor.enabled
當您使用 Claude 代理程式或 Copilot CLI 的規劃模式時,VS Code 會顯示一個內嵌規劃控制項,讓您在代理程式開始執行前審核並調整規劃。此版本對該流程進行了多項改進:
- 內嵌編輯規劃:現在可以在控制項內的編輯器直接編輯規劃,無需開啟獨立的編輯器分頁,因此您可以在不遺失上下文的情況下對規劃進行迭代。
- 更清晰的回饋模式:當您對規劃提供回饋時,控制項會更明確地顯示您目前處於回饋模式,並顯示您已加入的回饋內容。
- 停用內嵌編輯器:若您偏好在一般編輯器分頁中編輯,可以透過配置 chat.planWidget.inlineEditor.enabled 設定來退出此體驗。
語言
Markdown 的差異比較預覽 (預覽版)
當您從「原始檔控制 (Source Control)」檢視中開啟 Markdown 檔案時,您可以使用 VS Code 渲染後的 Markdown 預覽功能來檢視差異,而非原始碼。

這使得識別有意義的變更(如更新的標題、新增章節、修改後的圖片或重組的清單)變得容易許多,無需逐行閱讀 Markdown 語法。
差異比較 Markdown 預覽同時支援並排 (side-by-side) 檢視與內嵌 (inline) 檢視。

若要嘗試,請從原始檔控制(或任何差異編輯器)開啟 Markdown 差異,並使用重新開啟編輯器 (Reopen Editor With...) 切換至 Markdown 預覽差異檢視。您也可以透過 workbench.diffEditorAssociations 設定,將其預設為在 Markdown 預覽中開啟差異。
"workbench.diffEditorAssociations": {
"*.md": "vscode.markdown.preview.editor"
}
此功能目前為預覽階段,因此可能會遇到一些問題。我們認為它特別適合用於檢視代理程式所做的文件變更或提取請求 (pull requests)。
Markdown 預覽預設變更
VS Code 的內建 Markdown 預覽功能已存在一段時間,部分原始功能已不再那麼必要。本次迭代中,我們決定預設停用其中兩項功能:
-
markdown.preview.doubleClickToSwitchToEditor :在預覽中按兩下會切換回原始編輯器。使用者常覺得此功能容易混淆,因為他們傾向用按兩下來選取文字。我們現在已有「以…重新開啟 (Reopen With)」等功能,已大致取代此需求。
-
markdown.preview.markEditorSelection :標記編輯器中目前選取的行。我們認為這對現代工作流程的效用已降低。
如果您喜歡先前的行為,可以重新啟用這些設定。
Markdown 路徑自動完成與驗證對 HTML id 的支援
我們內建的 Markdown 路徑自動完成 與 連結驗證 現在可以識別 Markdown 檔案中 HTML 元素的 id 屬性。
<div id="install-guide">...</div>
See the [installation steps](#_install-guide) for details.
這些 ID 的連結現在會出現在自動完成建議中。

它們也用於連結驗證。

Markdown 表格的智慧選取
Markdown 表格現在支援基本的 智慧選取 (smart selection)。使用展開選取 (Expand Selection) (⌃⇧⌘→ (Windows, Linux Shift+Alt+Right)) 可將選取範圍從儲存格展開至整列,再到整個表格;使用縮小選取 (Shrink Selection) (⌃⇧⌘← (Windows, Linux Shift+Alt+Left)) 則可逐步縮小選取範圍。
提議的 API
自訂編輯器差異比較 (diffs)
新的 customEditorDiffs API 提案允許自訂編輯器使用專用的差異 UI 來呈現差異。這正是驅動差異檢視中 Markdown 預覽功能的核心,並在底層原始碼的文字差異不具意義時,提供了更好的比較體驗。
自訂編輯器提供者可以透過在 CustomReadonlyEditorProvider 或 CustomTextEditorProvider 上實作以下其中一項或兩項來選擇加入:
-
resolveCustomEditorInlineDiff(documents, webviewPanel, token):在單一 WebView 中呈現差異,讓擴充功能能夠存取原始文件與修改後的文件。 -
resolveCustomEditorSideBySideDiff(documents, webviewPanels, token):使用兩個 WebView 呈現差異,每個側邊各一個,由 VS Code 協調佈局與捲動同步。
結合 diffEditorPriority,擴充功能現在擁有完整的控制權,決定其自訂編輯器是否處理差異,以及如何呈現這些差異。請參閱 issue #138525 以追蹤進度並提供回饋。
區分自訂編輯器的差異與合併優先級
自訂編輯器擴充功能現在可以為檔案類型的編輯、差異比較與合併設定不同的預設優先級。customEditors 貢獻項目除了現有的 priority 外,現在接受兩個新的選填欄位:diffEditorPriority 與 mergeEditorPriority。
"contributes": {
"customEditors": [
{
"viewType": "myExtension.editor",
"displayName": "My Custom Editor",
"selector": [
{ "filenamePattern": "*.custom" }
],
"priority": "default",
"diffEditorPriority": "option",
"mergeEditorPriority": "option"
}
]
}
上述貢獻讓開啟 *.custom 檔案時使用自訂編輯器,但從原始檔控制開啟差異時則使用一般文字差異檢視。
此 API 仍在提案階段。歡迎試用並在 issue #292379 分享您的回饋。
文件差異 (Document diff)
新的 documentDiff API 提案透過 workspace.getTextDiff(original, modified, options?) 將 VS Code 內建的差異比較演算法公開給擴充功能。它會傳回串流式 async 可迭代項目,包含行層級的變更,以及包含摘要資訊(相同、可能不完整、選擇性的移動偵測)的 complete Promise。每個變更都包含字元層級的範圍。
這對於自訂差異編輯器(參閱 自訂編輯器差異)特別有用,讓它們無需自行實作演算法,即可呈現與內建編輯器完全相同的差異。
const diff = vscode.workspace.getTextDiff(originalDoc, modifiedDoc, {
ignoreTrimWhitespace: true,
computeMoves: false
});
for await (const change of diff.changes) {
// change.originalRange, change.modifiedRange, change.innerChanges
}
const { identical, mayBeIncomplete, moves } = await diff.complete;
在 issue #315174 追蹤進度並提供回饋。
對擴充功能的貢獻
GitHub Pull Requests
GitHub Pull Requests 擴充功能取得了更多進展,使您能夠處理、建立和管理提取請求與問題。新功能包括:
- 透過複製/貼上及上傳按鈕將圖片上傳至提取請求註解。
- 在工作樹 (worktree) 中檢出 (checkout) 提取請求時,提供更具描述性的資料夾名稱。
"githubIssues.issueBranchTitle"現在支援${issueType}範本變數。
請參閱擴充功能的 0.144.0 版本變更記錄,以了解該版本的所有更新。
已棄用的功能與設定
本版新增的棄用項目
即將棄用的項目
值得注意的修正
- microsoft/vscode #314545 在整合瀏覽器 localhost 目標中包含 All-Interfaces 連結
謝謝您
對我們議題追蹤的貢獻:
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @albertosantini (Alberto Santini)
對 vscode 的貢獻:
- @damonxue (DamonXue): 右鍵點擊非作用中編輯器分頁時,「新增檔案至聊天」功能無反應 PR #315197
- @davidwengier (David Wengier): 更新 Razor 儲存庫的路徑 PR #313011
- @Dmitriusan: 修復子檔案中的 gitignore 否定規則無法覆蓋父級/全域規則的問題 PR #300613
- @EhabY (Ehab Younes): 透過 keepalive 超時偵測失效連線 PR #310131
- @JeffreyCA
- 更新 Azure Developer CLI (azd) 的 Fig 規範 PR #308613
- 整合終端機 - 修復過時的 OSC 8 連結懸停提示問題 PR #309539
- @kevin-m-kent
- 在 response.* 事件及子代理程式迴圈中發出 parentRequestId PR #314309
- 為聊天請求新增 X-Interaction-Type 標頭與 requestKind 遙測屬性 PR #312262
- 發布穩定版符號工具描述 PR #315686
- @Larsjep (Lars Jeppesen): 修復 https://github.com/microsoft/vscode/issues/291188 PR #314713
- @n-gist (n-gist): 確保 TreeDataProvider.getChildren() 的回傳值不會被 vscode 變動 PR #306955
- @Pengkun-ZHU (pzhu): Pzhu/feature 自訂稍後提醒時間 PR #298934
- @pranavvaid-ac
- 更新延遲錨點解析後的聊天內嵌參考 PR #314281
- 利用 tree-sitter 後備機制改進連結符號錨點 PR #314864
- @ruryu (ruryu): fix(agentHost): 等待 dbClose 以解決不穩定的工作階段資料庫測試 PR #313810
- @ShehabSherif0 (Shehab Sherif): 修復範圍偵測中不正確的 inspect 屬性使用 PR #301472
- @SimonSiefke (Simon Siefke): fix: utilityProcessWorkerMainService 中的記憶體洩漏 PR #294005
- @Tyriar (Daniel Imms)
- 將模稜兩可的選項放入介面 PR #313953
- 移除未使用的 export const PR #315244
- @yemohyleyemohyle: Yemohyle/response 成功 GDPR 封鎖 PR #315128
- @yogeshwaran-c (Yogeshwaran C): 從終端機快速挑選器過濾比對中移除 codicons PR #313197
對 vscode-pull-request-github 的貢獻
- @MaxDNG (Maxime Guitet): 修復:重新為拉取的目錄子項目建立父級關係,以確保勾選框正確重新整理 PR #8679
我們非常感謝大家在第一時間體驗我們的新功能,請經常回來查看,了解最新消息。
如果您想閱讀先前 VS Code 版本的發布說明,請前往 code.visualstudio.com 上的 Updates 頁面。