Visual Studio Code 1.121
发布日期:2026 年 5 月 20 日
下载:Windows: x64 Arm64 | Mac: 通用版 Intel Silicon | Linux: deb rpm tarball Arm snap
欢迎使用 Visual Studio Code 1.121 版本。此版本增加了内置的 Mermaid 和 HTML 预览功能,简化了代理终端工具的行为,并允许您在远程机器上运行代理会话。
-
远程代理:从“代理”窗口中监视和控制远程机器上的代理会话。
-
模型可配置性:配置哪些模型用于处理生成提交消息、标题等轻量级任务。
-
Mermaid 图表预览:直接在 Markdown 预览和笔记本中渲染 Mermaid 图表。
-
HTML 文件预览:无需安装扩展即可在集成浏览器中预览本地 HTML 文件。
-
终端工具优化:通过更多的输出压缩和后台终端清理,消耗更少的资源和 Token。
编码愉快!
代理
代理窗口(预览)
我们继续改进代理窗口,这是我们在上个版本中引入 VS Code 稳定版的代理驱动配套窗口。
您可以通过多种方式打开代理窗口,包括点击 VS Code 标题栏中的在代理中打开按钮。要了解其工作原理及功能,请访问代理窗口文档。
您的反馈对于塑造代理功能非常有帮助。如果您一直在使用它并提供了反馈,谢谢!请继续在 GitHub 上提交问题 或浏览 现有问题。
我们也在继续完善代理窗口中更广泛的扩展故事,包括扩展启用后会解锁哪些功能,以及各类扩展在此环境中的行为。无论您是想构思利用跨项目运行代理的新场景,还是想分享现有扩展在代理窗口中的行为反馈,我们都希望能通过 GitHub Issues 与您协作。
远程代理(预览)
代理窗口现已提供实验性支持,允许在您拥有的并可通过 SSH 或开发隧道连接的远程机器上运行代理会话。在我们的文档中了解更多关于远程代理会话的内容。

连接到远程机器
您可以通过两种方式将代理窗口连接到远程机器:
- SSH:从您现有的
~/.ssh/config条目中选择,或输入user@host。 - 开发隧道 (Dev Tunnels):从您通过在目标机器上运行
code tunnel命令创建的隧道中选择。
工作原理
此功能类似于但不同于 VS Code 的远程开发扩展。代理窗口连接到远程机器,并下载并安装 VS Code CLI (SSH),或连接到您启动的开发隧道中正在运行的 CLI 服务器。它会启动一个称为“代理主机 (agent host)”的轻量级进程,该进程承载基于 Copilot SDK 构建的新代理循环。
需要注意的一点是,远程代理主机是一个长驻进程。即使客户端断开连接,正在运行的会话也会继续在远程机器上运行,因此您可以合上笔记本电脑,而远程代理会继续工作。
代理主机协议
代理窗口与代理主机之间的连接是一种名为代理主机协议 (AHP)的新开放协议。我们正在以独立规范的形式公开开发它。
AHP 的核心设计原则是支持多个客户端同时协调代理会话。这正是它与 ACP 等其他协议的区别所在。代理主机管理权威状态,将其同步到每个已连接的客户端,并通过纯 Reduce 函数对所有变更进行排序。
由于 AHP 是一个开放协议,任何人都可以构建连接到 VS Code CLI 代理主机的客户端,或者构建 VS Code 可以连接的 AHP 代理主机。
使用 OpenTelemetry 和 Grafana 进行代理可观测性
通过与 Azure Managed Grafana 团队合作,现在为 VS Code 中代理发出的 OpenTelemetry 信号提供了预构建的 Azure Managed Grafana 仪表板。将 VS Code 指向转发到 Azure Application Insights 的 OTel 收集器,然后导入 Azure Managed Grafana 仪表板,即可可视化代理操作、Token 使用量、聊天会话、工具调用以及每个模型的响应时间和首个 Token 时间 (TTFT)。
请参阅 使用 Grafana 监控 AI 编码代理 了解端到端的设置,并查看 使用 OpenTelemetry 监控代理使用情况 以启用从 VS Code 导出。

Claude 代理自动权限模式(预览)
设置: github.copilot.chat.claudeAgent.allowAutoPermissions
Claude 代理现在支持自动模式,允许 Claude 在无需权限提示的情况下执行操作。独立的分类器请求会在操作运行前进行审查,拦截任何超出您请求范围、针对未知基础设施或看起来由有害内容驱动的操作。对于长时间运行的任务,这很有用,既能减少提示疲劳,又能保持后台安全检查。

要在权限模式选择器中查看“自动”选项,请启用 github.copilot.chat.claudeAgent.allowAutoPermissions。
注意:如果您希望进行完全无人值守且无安全检查的执行(“YOLO 模式”),请启用 github.copilot.chat.claudeAgent.allowDangerouslySkipPermissions 以显示“绕过所有权限”选项。
语言模型
此版本在您如何配置和管理 VS Code 中的语言模型方面做了多项改进,让您能更好地控制在 VS Code 内不同任务中使用的模型。在我们的文档中了解更多关于语言模型的内容。
配置实用工具模型
设置:chat.utilityModel, chat.utilitySmallModel
VS Code 在后台使用实用工具模型来处理聊天相关任务,如生成标题、摘要、提交消息、重命名建议、提示分类和意图检测。默认情况下,这些任务使用 GitHub Copilot 提供的实用工具模型。
您可以为这些流程使用您自己可用的模型,包括“自带密钥 (BYOK)”模型。
- chat.utilityModel:覆盖用于常规实用工具流程的模型。
- chat.utilitySmallModel:覆盖用于快速、轻量级实用工具流程的模型。建议为该设置使用快速且经济高效的模型。
如果不进行配置,这两个设置都会使用默认值,即保留 GitHub Copilot 提供的实用工具模型。
BYOK 自定义端点提供程序(Insiders 版)
我们现在发布了一个新的 BYOK 提供程序——自定义端点提供程序,它允许您通过单个配置将任何兼容 Chat Completions、Responses 或 Messages 的端点接入 Copilot Chat。它取代了已标记为弃用的旧版 OpenAI 兼容 (customoai) 提供程序,后者仅支持 Chat Completions。

添加来自此提供程序的模型时,您可以选择其所属的 API 系列(chat-completions、responses 或 messages)。

注意:自定义端点提供程序目前处于预览阶段,仅在 VS Code Insiders 中提供。
集成浏览器
在集成浏览器中快速打开 HTML 文件
以前,预览 HTML 文件需要安装扩展,对于如此常见的操作来说,这显得多余。现在,您可以通过右键单击文件资源管理器中的文件,或在文件打开时右键单击编辑器选项卡,选择在集成浏览器中打开来轻松预览本地 HTML 文件。当 HTML 文件处于活动状态时,您还可以选择编辑器标题栏中的预览图标。

改进了向聊天添加元素的操作体验
我们重构了元素选择 UI,以支持更丰富的功能和主题。
选择元素范围
您现在可以点击并拖动以选择一系列元素,从而更轻松地定位共享容器元素。
从上下文菜单中附加元素
您现在可以右键单击页面上的任何位置,快速将元素附加到聊天中。

终端
代理感知终端命令
命令行工具以前无法判断终端命令是由人类启动还是由 VS Code 的代理流程启动,这意味着进度动画、交互式提示和详细的格式可能会阻塞或干扰代理会话。
VS Code 现在为代理启动的终端命令设置了 VSCODE_AGENT 环境变量。CLI 可以检查此变量以切换到机器可读的输出,抑制进度动画,或跳过可能阻塞会话的提示。
如果您维护的脚本或 CLI 已经针对 CI 或其他代理调整了行为,那么您可以对从 Copilot Chat 启动的命令使用相同的模式。
终端工具的后台运行指示器
以前,当工具调用返回后聊天终端命令仍在继续运行时,聊天 UI 看起来像是命令已经结束,这让人难以察觉任务仍在进行中。
工具调用现在会在终端处于活动状态时显示正在后台运行 <command> - 显示。显示操作允许您显示并聚焦到底层终端。一旦命令完成,标题将恢复为正常的完成状态。
这使得命令仍在后台运行的状态更加清晰,特别是在异步运行或超时后被提升为后台执行的命令中。
后台代理终端的清理
以前,当您进行包含多个终端命令的长聊天会话时,可能会在每个命令完成后累积大量后台终端,导致终端列表充斥着过期条目并消耗资源。
VS Code 现在会在命令完成后自动处置聊天代理创建的后台终端,同时在聊天 UI 中保留命令输出。如果您通过显示操作查看后台终端,它将保持打开状态,以便您继续检查或与其交互。
这保持了终端列表的整洁,并减少了在多轮会话中的资源消耗。
针对终端工具输出的更广泛压缩
设置:chat.tools.compressOutput.enabled
像 pytest、jest、cargo test、tsc 和包安装流程等命令通常会在显示重要结果之前产生大量进度输出,这既浪费了 Token,又使模型更难找到相关信息。
聊天终端工具现在会在发送回模型之前压缩更多类型的详细命令输出。扩展覆盖范围包括常见的测试运行程序、构建工具、Linter、Docker 命令和包管理器,从而更频繁地剔除重复的进度信息和其他低价值输出。
现在的长终端运行更容易被模型解释,并且不太可能在样板输出上消耗 Token。
敏感的终端提示保留在终端中
终端命令中的密码、口令、PIN 或验证码提示可能会带来风险:如果代理尝试自行处理这些提示,它可能会意外捕获或重放敏感信息。
当聊天终端命令遇到敏感提示时,VS Code 现在会进行拦截。在默认权限模式下,聊天会显示一个确认对话框,允许您聚焦终端直接输入密码。在自动批准流程中,VS Code 会取消该命令并告知模型不要重试或请求敏感信息。
这使凭据保留在聊天上下文之外,并防止代理意外泄露或重放敏感输入。
编辑器
快速建议默认设置更改
Copilot 的内联建议始终与建议控件的选择保持一致。这非常有用,因为您可以快速按两次 Tab 键同时接受建议和 Copilot 的幽灵文本。
然而,我们发现随着您开始输入,在许多情况下建议控件会弹出并选择第一个(字母顺序)以键入字符开头的可用全局符号。这很少是您实际要输入的文本,而且会导致 Copilot 给您提供带有错误前缀的建议,从而使体验变得杂乱。
我们决定更改快速建议的默认设置 (editor.quickSuggestions)。如果内联补全提供程序可用(例如 Copilot),则在编辑器中键入字母将不再自动触发建议控件。在所有其他情况下,建议控件会像以前一样弹出。您可以通过配置来恢复旧行为。
"editor.quickSuggestions": {
"other": "on",
"comments": "off",
"strings": "off"
}
语言
Markdown 预览和笔记本中的 Mermaid 图表
我们已将 Matt Bierner 的 Markdown Preview Mermaid Support 扩展合并到 VS Code 中,作为名为 Mermaid Markdown Features 的新内置扩展。此扩展为 VS Code 的内置 Markdown 预览、笔记本中的 Markdown 单元格以及聊天中添加了 Mermaid 图表渲染功能。
Mermaid 图表可以使用 Markdown 中的 mermaid 围栏代码块创建。
```mermaid
flowchart LR
Sleep[Sleep] --> Wake{Awake?}
Wake -->|No| Sleep
Wake -->|Hungry| Snack[Get treat]
Wake -->|Not in in Sun?| Move[Move to sun]
Wake -->|Human is typing| Keyboard[Sleep on keyboard]
Snack --> Sleep
Move --> Sleep
Keyboard --> Sleep
```
以下是图表在 Markdown 预览中的显示效果。

渲染后的 Mermaid 图表还支持平移和缩放,这使得在不离开预览的情况下更容易检查较大的图表。您还可以右键单击图表以复制其 Mermaid 源码。
Markdown 预览中的 YAML 前言
设置:markdown.preview.frontMatter
我们增加了控制 YAML 前言 (front matter) 如何在 Markdown 预览中渲染的选项。默认情况下,VS Code 不再隐藏前言,而是将前言显示为预览顶部的表格。

您可以使用 markdown.preview.frontMatter 设置来选择前言的显示方式:
table(默认):将前言渲染为表格。codeBlock:将前言渲染为 YAML 代码块。hide:在预览中隐藏前言。
渲染后的前言还有一个上下文菜单项,用于从预览中快速打开此设置。
已弃用的功能和设置
此版本中的新弃用项
即将弃用的功能
感谢
对我们问题跟踪的贡献
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @albertosantini (Alberto Santini)
对 vscode 的贡献
- @ba-work (Brock Alberry): outputMonitor: 修复了两个导致代理循环暂停的误报系列 PR #315485
- @guomaggie: 在代码片段水合错误时返回最终答案文本 PR #316094
- @kevin-m-kent: 针对重复轮询实验性使用终端输出增量 PR #315543
- @NikolaRHristov (Nikola Hristov): 修复:恢复测试助手中 relayCreationTimeoutMs 的受保护修饰符 PR #316049
- @SebTardif (Sebastien Tardif): 修复监听器泄漏:将 onDidChangeConfiguration 移出 onDidProgressStep 回调 PR #314636
- @SimonSiefke (Simon Siefke): 修复:lifeCycleMainService 中的内存泄漏 PR #315891
- @thernstig (Tobias Hernstig): 修复:将 typescript.tsdk.desc 替换为新的 js/ts.tsdk.path PR #315268
- @thirteenflt (yutingsun): 更改 vsc promptD PR #316733
- @yavanosta (Dmitry Guketlev): 使 InlineCompletionsModel 中的 appearedInsideViewport 具有响应性 (#_289944) PR #289946
我们非常感谢大家在新功能准备就绪后立即进行试用,请经常回来查看并了解新功能。
如果您想阅读以前 VS Code 版本的发行说明,请访问 code.visualstudio.com 上的更新页面。