2025年11月(版本 1.107)
发布日期:2025年12月10日
更新 1.107.1:此次更新改进了 智能体(Agent)会话体验,添加了 智能体工作流教程,并修复了这些 问题。主要亮点包括:
- 智能体会话视图默认为并排显示,并会记住您的切换状态。
- 需要您输入的智能体会话现已得到明确标记。
- 支持在创建后台会话时复制工作区变更。
- 创建新会话时不会清除聊天提示词。
- 云端会话中的工具调用现在默认折叠。
下载:Windows: x64 Arm64 | Mac: 通用版 Intel Silicon | Linux: deb rpm tarball Arm snap
VS Code 1.107 引入了多智能体编排功能——结合使用 GitHub Copilot 和自定义智能体,以加速并并行化开发流程。
- 智能体总部(Agent HQ)为您提供了一个统一管理所有智能体的地方,让 Copilot 和自定义智能体能够在各项任务中协作。
- 后台智能体在隔离的工作区中运行,不会干扰您的日常工作,并支持同时启用多个后台任务。
- 委托跨本地、后台或云端智能体的工作,让您的工作流顺畅无阻。

观看我们的 VS Code 1.107 发布亮点视频,听听工程师们对这些功能的介绍!
编码愉快!
在线阅读发布说明,请访问 code.visualstudio.com 上的 更新(Updates) 页面。
Insiders 版本: 下载每日构建的 Insiders 版本,第一时间体验最新更新。
代理
- 从聊天中管理您的智能体(显示更多)。
- 在您的组织内共享智能体(显示更多)。
- 在聊天窗口关闭时保持智能体活跃(显示更多)。
- 将智能体会话从本地移动到云端(显示更多)。
- 在专用的 Git 工作树(worktrees)中运行智能体(显示更多)。
- 为后台智能体附加上下文(显示更多)。
- 自定义后台智能体(显示更多)。
- 跨环境复用自定义智能体(显示更多)。
- 运行自定义子智能体(显示更多)。
- 复用 Claude 技能(显示更多)。
集成智能体会话与聊天
设置: chat.viewSessions.enabled
更新 1.107.1:此更新显着改善了并排会话的体验。通过切换按钮隐藏会话后,系统会记住您的选择,让您可以随意调整聊天视图的大小。开始使用 智能体工作流教程。
智能体是代表您自主执行编码任务的关键。无论智能体在何处运行(本地 VS Code、使用 CLI 的后台、云端,或来自第三方扩展),聊天界面都是与其交互的主要方式。在我们的文档中了解更多关于 在 VS Code 中使用智能体 的信息。
在本次迭代中,我们将智能体会话集成到了聊天视图中,为您提供使用智能体时的统一体验。您可以一目了然地查看会话状态、进度和文件变更统计信息。您可以归档或取消归档会话,以便保持会话列表井然有序。
如果您正在工作区中,会话列表仅显示与当前工作区相关的会话。如果您处于空窗口中,则会显示跨工作区的所有会话。
当您从列表中选择一个会话时,它会在侧边栏的聊天视图中打开,让您查看完整的对话历史。如果愿意,您也可以将会话作为编辑器选项卡或在在新窗口中打开。右键单击会话即可看到包含这些选项的上下文菜单。

您可以通过配置 chat.viewSessions.enabled 来禁用聊天视图中的会话列表。
由于此项更改,我们默认禁用了独立的 智能体会话(Agent Sessions) 视图。如果您更喜欢继续使用独立视图,可以通过 chat.agentSessionsViewLocation 重新启用它。在未来的版本中,我们计划彻底移除独立视图。
紧凑视图
当聊天视图较窄时,开始新聊天会话时,会话列表会显示在聊天视图内。默认情况下,列表显示最近的三个非归档会话。

选择 显示所有会话 以查看包含搜索和过滤选项的完整会话列表。

您可以使用该操作切换智能体会话侧边栏,以获得更宽广的完整会话视图。
并排视图
一旦聊天视图足够宽(例如,当您将其最大化时),智能体会话列表会自动与聊天视图并排显示。此视图让您可以快速在会话之间导航,而不会丢失上下文。您还可以使用相应的控件手动切换此并排视图。

若要限制会话列表,您可以按提供程序或状态过滤会话。VS Code 会持久保存此过滤器。
方向设置
设置: chat.viewSessions.orientation
默认情况下,当聊天视图足够宽或您手动切换会话列表时,会话列表会与聊天视图并排显示。您可以使用 chat.viewSessions.orientation 设置来更改此行为。
auto(默认):如果宽度允许,则并排显示会话,否则显示在空聊天窗口上方。stacked:始终将会话显示在空聊天窗口上方。sideBySide:如果宽度允许,则并排显示会话列表,否则隐藏会话列表。
本地智能体会话关闭时保持活跃
以前,当您关闭本地聊天会话时,正在运行的智能体请求会被取消。这限制了本地智能体在长时间运行任务或同时运行多个任务时的实用性。
现在,即使没有在聊天编辑器或聊天视图中打开,本地智能体也会在后台继续运行。您可以在会话列表中查看正在运行的智能体的状态,并可以随时切换回会话以查看详细进度。
了解更多关于 在聊天中使用本地智能体 的信息。
在后台或云端智能体中继续执行任务
本地智能体非常适合在 VS Code 内进行交互式会话,您可以在其中与智能体进行来回沟通。这对于头脑风暴、执行探索性任务或制定实施计划非常有用。一旦有了清晰的计划,您就可以将任务移交给后台或云端智能体来自主执行。
在本次迭代中,我们改进了使用后台或云端智能体继续本地聊天的体验。在整个 UI 中,您现在可以使用新的 继续(Continue in) 选项无缝地继续执行任务。
当您将本地聊天继续给后台或云端智能体时,当前的聊天上下文会被传递,并且原始会话在移交后会被归档。
-
聊天视图

-
计划 Agent

-
未命名提示文件

利用 Git 工作树隔离后台智能体
后台智能体(以前称为 CLI 智能体)旨在后台自主运行,让您在专注于其他工作时卸载任务。同时运行多个后台智能体如果修改工作区中的相同文件,可能会导致冲突。
在本次迭代中,我们通过引入对 Git 工作树(Git worktrees) 的支持增强了后台智能体的隔离性。当您创建新的后台智能体时,您可以选择在当前工作区运行,或在专用的 Git 工作树中运行。

当您在工作树中运行后台智能体时,智能体会自动为该会话创建新的 Git 工作树,将其变更隔离在单独的文件夹中。这使您可以同时运行多个后台智能体而不会发生冲突。
当智能体完成任务后,您可以轻松地审查并将会话在工作树中所做的变更合并回主工作区。我们还添加了一个新的操作,可直接将工作树中的变更应用到您的工作区。

了解更多关于 在 VS Code 中使用后台智能体 的信息。
为后台智能体添加上下文
后台智能体现在支持多种类型的上下文附加。您可以将选中内容、问题、符号、搜索结果、Git 提交等附加到任何提示词中。这使得构建更丰富、更精确的提示词成为可能,从而开启更复杂和灵活的工作流。例如,附加一个报告的问题,要求智能体修复它,而无需手动指定文件路径和行号。

在您的 GitHub 组织内共享自定义智能体(实验性)
设置: github.copilot.chat.customAgents.showOrganizationAndEnterpriseAgents
以前,您只能在工作区或用户级别定义自定义智能体。如果您想在组织内共享自定义智能体,必须手动将智能体文件分发给每个用户。
在此版本中,您现在可以在 GitHub 账户的组织级别定义自定义智能体。此实验性功能使您能够在聊天中使用组织特定的智能体,以及您的个人智能体。
要启用此功能,请将 github.copilot.chat.customAgents.showOrganizationAndEnterpriseAgents 设置为 true。一旦启用,您的组织创建的自定义智能体就会出现在 VS Code 的智能体下拉菜单中。
要了解关于为您的组织创建自定义智能体的更多信息,请参阅 GitHub 文档中的 创建自定义智能体。
将自定义智能体与后台智能体结合使用(实验性)
设置: github.copilot.chat.cli.customAgents.enabled
您现在可以将自己的自定义智能体引入到后台智能体中。启用后,在 .github/agents 文件夹中定义的自定义智能体将出现在您的智能体列表中,使您能够利用针对您的工作流和要求定制的智能体。
此实验性功能可以通过 github.copilot.chat.cli.customAgents.enabled 设置来启用。

在我们的文档中了解更多关于 定义自定义智能体 的信息。
智能体工具重构
我们重构了智能体工具结构,以实现与 GitHub 自定义智能体更好的兼容性。这使您可以更轻松地在 VS Code 和 GitHub 环境之间复用自定义智能体,而无需单独配置。
作为此更改的一部分,我们重命名了某些现有的工具引用及其所属的工具集。智能体文件中现有的工具引用将继续工作,但您会看到一个代码操作(Code Action),用于将它们重命名为最新推荐的格式。这可确保您的智能体配置遵循当前的最佳实践,并在不同平台之间保持兼容性。
将智能体作为子智能体运行(实验性)
设置: chat.customAgentInSubagent.enabled
当智能体需要解决复杂问题时,它可以将任务委托给 子智能体(subagents)。子智能体独立于主聊天会话运行,并拥有自己的上下文窗口。这有助于主对话专注于高层目标,并有助于管理上下文窗口限制。
随着此版本的发布,您可以通过 自定义智能体 自定义子智能体。自定义智能体让您为 AI 定义专门的角色,将其行为调整为特定任务或领域。例如,代码审查智能体专注于审查代码,而不是进行代码更改。
要使用自定义智能体作为子智能体,请按照以下步骤操作:
-
启用 chat.customAgentInSubagent.enabled
-
如果还没有,请使用 Chat: New Custom Agent 命令创建自定义智能体。
-
在聊天中,询问模型“what subagents can you use?”以查看可用子智能体的列表。您的自定义智能体应该会出现在列表中。
-
输入满足您自定义智能体要求的提示词。语言模型会使用自定义智能体的描述和参数来决定是否应将其用于您的请求。

若要防止某个自定义智能体被用作子智能体,请在 *.agent.md 文件中将元数据属性 infer 设置为 false。
了解更多关于 在聊天中使用子智能体 的信息。
复用 Claude 技能(实验性)
设置: chat.useClaudeSkills
技能(Skills)是由 Claude Code 引入的,是智能体可以按需加载的功能。每种技能都附带简短的描述来推广该技能。如果有用,智能体会决定读取完整的技能说明。技能说明可以带有支持文件,如脚本和模板。加载后,技能说明和支持文件将成为主对话上下文的一部分。
VS Code 现在可以复用您现有的技能。启用 chat.useClaudeSkills 设置,允许智能体发现并使用您的技能。

VS Code 支持个人技能(位于 ~/.claude/skills/skill-name/SKILL.md)和项目技能(位于工作区文件夹的 ${workspaceFolder}.claude/skills/skill-name/SKILL.md)。
请确保 SKILL.md 文件的头部有一个 description 属性来推广该技能。请注意,VS Code 不支持 allowed-tools 属性。
在智能体模式下,确保您已启用 read-file 工具,并询问“What skills do you have”以找出是否找到了技能。接下来,提出一个可以用技能回答的请求。如果智能体没有使用该技能,请改进技能描述或提示模型使用技能。
聊天
- 内联聊天(Inline chat)针对代码编辑进行了优化(显示更多)。
- 管理您的聊天模型(显示更多)。
- 审查外部网页内容(显示更多)。
- 获取动态网页内容(显示更多)。
- 搜索被忽略的文件(显示更多)。
- 在聊天中访问终端输出(显示更多)。
- 自动批准当前会话的终端命令(显示更多)。
- 提供更多键盘快捷键(显示更多)。
- 使用 Entra ID 进行 Azure 托管模型验证(显示更多)。
- 配置 Anthropic 模型的扩展思维预算(显示更多)。
- 更高效地使用聊天(显示更多)。
- 查看敏感文件编辑的差异对比(显示更多)。
- 折叠推理模型的聊天工具调用(显示更多)。
内联聊天 UX
设置: inlineChat.enableV2
我们继续改进内联聊天体验,使其与 VS Code 中的其他聊天体验保持一致,并针对快速的单文件代码更改进行了优化。
以前,您也可以将内联聊天用于一般问题和讨论。现在,内联聊天针对当前文件中的代码更改进行了优化。对于内联聊天无法处理的任务,您会自动升级到聊天视图,您的提示词会在那里重播,并使用相同的模型和相同的上下文。
inlineChat.enableV2 设置(预览)现在仅控制扩展如何处理您的提示词。这仍在开发中,但可以放心尝试。
语言模型编辑器
VS Code 中的聊天功能支持多种语言模型,无论是由 GitHub Copilot 提供、第三方扩展提供,还是通过自带密钥 (BYOK) 提供程序。管理所有这些模型可能具有挑战性,特别是当您拥有跨不同提供程序的许多模型访问权限时。了解更多关于 在 VS Code 中使用语言模型 的信息。
语言模型(Language Models) 编辑器提供了一个集中的位置来查看和管理 VS Code 中聊天功能可用的所有语言模型。您可以从聊天中的模型选择器打开它,或通过命令面板使用 Chat: Manage Language Models 打开。
编辑器列出了您可用的所有模型,显示关键信息,如模型能力、上下文大小、计费明细和可见性状态。默认情况下,模型按提供程序分组,但您也可以按可见性对它们进行分组。
将鼠标悬停在模型名称或上下文大小上可查看详细信息,包括模型 ID、版本、状态和令牌明细。
您可以使用以下方式搜索和过滤模型:
- 带突出显示的文本搜索
- 提供程序过滤器:
@provider:"OpenAI" - 能力过滤器:
@capability:tools,@capability:vision,@capability:agent - 可见性过滤器:
@visible:true/false
管理模型可见性
随着可供您使用的模型越来越多,模型选择器可能会变得令人眼花缭乱且难以导航。在语言模型编辑器中,您可以切换每个模型的可见性,以控制哪些模型出现在模型选择器中。将鼠标悬停在模型上并选择眼睛图标即可切换其可见性。
添加已安装提供程序的模型
在语言模型编辑器中,您可以使用 Add Models... 添加更多模型。这会显示一个所有已安装模型提供程序的下拉列表。选择一个提供程序进行配置,并将其模型添加到 VS Code 的聊天中。
这使得激活您已安装的其他模型提供程序变得容易,而无需离开语言模型编辑器。通过选择提供程序行上的齿轮图标来访问提供程序管理。
URL 和域自动批准
在本次迭代中,我们增强了 fetch 工具自动批准 URL 的安全性和用户体验。当模型决定获取您未明确要求的 URL 内容时,您会看到新的两步批准体验:
-
批准获取 URL 的初始请求
此步骤确保您信任正在联系的域,并可以防止将敏感数据发送到不受信任的站点。

您可以选择一次性批准,或自动批准未来对特定 URL 或域的请求。
预批准遵循 “受信任的域(Trusted Domains)”功能。如果域列在那里,您就自动批准向该域发出请求,并被延迟到响应审查步骤。
-
批准在聊天和后续工具调用中使用获取的内容
此步骤确保您在获取的内容被添加到聊天或传递给其他工具之前对其进行审查,从而防止潜在的提示词注入攻击。
例如,您可能会批准获取来自知名站点(如 GitHub.com)的内容。但因为内容(例如问题描述或评论)是用户生成的,它可能包含可能操纵模型行为的有害内容。
了解更多关于 VS Code 聊天中的 URL 和域批准 的信息。
更强大的 fetch 工具
#fetch 智能体工具现在可以更有效地处理动态网页内容。除了静态 HTML,它还可以检索动态内容。依赖 JavaScript 加载内容的网站(如单页应用 (SPAs)、现代文档站点或 Jira 等问题跟踪系统)不再返回不完整或空的结果。
fetch 工具在检索页面之前会等待 JavaScript 执行和内容加载,从而确保捕获动态渲染的内容。这一改进使得该工具在现实场景中非常有用。
当您使用 #fetch 后跟一个 URL 时,模型会访问您在浏览器中看到的实际内容,而不仅仅是初始的 HTML 框架。这意味着在询问关于网页的问题或请求模型分析在线内容时,能获得更准确和完整的信息。
文本搜索(Text Search)工具可以搜索被忽略的文件
#textSearch 工具现在支持搜索 files.exclude 或 search.exclude 设置或 .gitignore 文件中指定的被忽略文件/文件夹(例如 node_modules 文件夹)。当没有结果时,它还会向智能体返回关于被忽略文件/文件夹的提示,允许智能体转而启用在这些被忽略文件/文件夹中的搜索。
聊天中的丰富终端输出
在 Run in Terminal 的响应上使用 切换输出(Toggle Output) 现在会在聊天中以完整的、只读的 xterm.js 终端渲染输出。这种方法的一个优点是,即使在后台终端退出后,VS Code 也会保留捕获的输出,因此您可以随时重新打开之前的运行并查看命令运行时的终端输出。
聊天终端现在采用集成终端的颜色主题,以提高 ANSI 颜色的对比度。屏幕阅读器用户可以在输出获得焦点时打开可访问视图 ⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2),从而轻松审查和导航。
了解更多关于 在聊天中使用终端命令 的信息。
聊天终端中的命令状态详情
聊天终端消息现在会在悬停命令装饰时显示命令的开始时间、持续时间和退出代码。

允许此会话中的所有终端命令
为了优化您的聊天体验,同时保持安全性和控制权,终端工具添加了一个新的自动批准选项,允许此会话中的所有未来命令。当您开始新会话时,终端命令将遵循现有的批准配置。

聊天终端操作的键盘快捷键
您现在可以通过专门的键盘快捷键聚焦最近的聊天终端 或切换其展开状态 ⇧⌥⌘O (Windows, Linux Ctrl+Shift+Alt+O)。
自定义智能体的键盘快捷键
现在,每个自定义智能体在命令列表中都有单独的操作,您可以为它们分别绑定键盘快捷键。例如,如果您定义了一个“代码审查员”自定义智能体,命令面板中会出现一个 Chat: Open Chat (Code Reviewer Agent) 命令,供您绑定键盘快捷键。

Azure 模型提供程序:Entra ID 作为默认验证
设置: github.copilot.chat.azureAuthType
默认情况下,Azure 模型提供程序现在在连接到“自带密钥 (BYOK)”模型时使用 Entra ID 验证,从而提供增强的安全性和更简化的登录体验。
如果您更喜欢使用 API 密钥进行验证,请将 github.copilot.chat.azureAuthType 设置为 apiKey,而不是 entraId(默认)。
Anthropic 模型:扩展思维支持
设置: github.copilot.chat.anthropic.thinking.budgetTokens
Anthropic 模型现在支持扩展思维(Extended thinking),默认情况下为所有 Anthropic 扩展思维模型启用。扩展思维通过允许 Claude 在生成响应之前花费额外的令牌进行循序渐进的思考过程,从而为复杂任务提供增强的推理能力,带来更深思熟虑和准确的输出。
默认思维预算设置为 4,000 个令牌。您可以通过修改 github.copilot.chat.anthropic.thinking.budgetTokens 设置来自定义此预算,以调整模型可用于扩展思维的令牌数量。要完全关闭扩展思维,请将预算设置为 0。
注意:交错思维(Interleaved thinking,使 Claude 能够在工具调用之间进行推理)仅在使用自带密钥 (BYOK) 的 Anthropic 模型时可用。它使用上述配置的相同思维预算设置。
聊天视图外观改进
我们对聊天视图的外观进行了多项改进,以增强可读性和易用性:
-
聊天标题:
当您打开聊天时,顶部会出现一个新的标题控件,向您显示聊天标题,并提供返回空聊天的快捷方式。通过 chat.viewTitle.enabled 设置配置此行为。
-
欢迎横幅:
如果您更喜欢在打开新聊天时获得更极简的体验,新的 chat.viewWelcome.enabled 设置让您可以隐藏图标和欢迎文本。

-
恢复之前的聊天会话:
当您在重启或打开不同工作区后打开聊天时,之前的会话现在默认会被恢复。您可以通过 chat.viewRestorePreviousSession 设置来更改此行为,并选择始终以空聊天开始。
敏感文件编辑的差异对比
当聊天尝试编辑敏感文件(如 settings.json 或 package.json)时,您会收到通知,并在应用前被要求批准这些更改。您可以通过 chat.tools.edits.autoApprove 设置配置哪些文件被视为敏感文件。
以前,您会看到模型提出的原始编辑,这可能很难理解。现在,我们向您展示建议更改的差异对比(diff),从而更容易审查和批准这些编辑。

了解更多关于 在聊天中编辑敏感文件 的信息。
折叠推理和工具输出(实验性)
设置: chat.agent.thinkingStyle , chat.agent.thinking.collapsedTools
有了语言模型推理和智能体工具输出,聊天对话很快就会变得很长且难以跟进。上一次迭代中,我们已经通过 chat.agent.thinkingStyle 设置致力于改进在聊天中显示思维令牌的方式。
在本次迭代中,我们通过引入非推理聊天输出(如工具调用)的可折叠聊天部分,进一步优化了聊天体验。默认情况下,连续的工具调用现在会被折叠,以减少视觉杂乱。
可折叠项目(大多数工具和推理文本)将被总结,并且每个可折叠部分都将被赋予一个 AI 生成的标题。

MCP
支持最新的 MCP 规范
VS Code 支持 MCP 规范的最新修订版 2025-11-25。其中包括:
- URL 模式引导(URL mode elicitation)
- 用于长时间运行、弹性工具调用和客户端工作的 任务(Tasks)。
- 对引导中枚举选项的 增强功能。
除了 VS Code 已经支持的 2025-11-25 草案功能(如 WWW-Authenticate 范围同意、客户端 ID 元数据文档验证流以及工具、资源和服务器图标)之外,还进行了这些改进。您可以在 MCP 网站 上查看 2025-11-25 草案的更新日志。
了解更多关于 在 VS Code 中使用 MCP 服务器 的信息。
GitHub Copilot Chat 提供的 GitHub MCP 服务器(预览版)
设置: github.copilot.chat.githubMcpServer.enabled
GitHub 远程 MCP 服务器现在作为 GitHub Copilot Chat 扩展中的内置 MCP 服务器提供,与 GitHub 存储库和服务无缝集成。此集成提供以下几个优势:
- 与已经使用 GitHub MCP 服务器的其他 Copilot 智能体组件(如 Copilot CLI 和 Copilot Cloud Agent)保持一致
- 复用现有的 GitHub 验证状态,消除额外的验证提示
- 对包括 GHE.com 在内的不同 GitHub MCP 端点的透明支持
要启用 GitHub MCP 服务器,请将 github.copilot.chat.githubMcpServer.enabled 设置为 true。一旦启用,该服务器在使用智能体时会自动出现在工具选择器中。这使您无需额外的配置和设置,即可询问有关 GitHub 问题、拉取请求和其他存储库信息的问题。
GitHub MCP 服务器支持通过以下设置进行自定义:
- github.copilot.chat.githubMcpServer.toolsets :配置哪些工具可用。默认情况下,使用
default工具集,但您可以按照 GitHub MCP 服务器文档 中的说明,通过添加workflows或其他工具集来扩展它。注意: 添加某些工具集可能需要额外的权限,且尚不支持重新验证。请参阅 此 GitHub 问题 以跟踪进度。 - github.copilot.chat.githubMcpServer.readonly :强制服务器仅返回只读工具,防止任何写入操作。
- github.copilot.chat.githubMcpServer.lockdown :针对工具行为的额外安全控制。
注意:此功能目前处于预览状态,需要通过上述设置显式选择加入。我们计划在未来的版本中默认启用它,使其在需要时可用,而在不需要时不会产生干扰。
辅助功能
聊天确认的键盘批准
当智能体提示确认时,您现在可以使用 ⌘Enter (Windows, Linux Ctrl+Enter) 通过键盘进行批准。
编辑器体验
在选择器中指示已打开窗口的更多支持
我们在 打开最近(Open Recent) 选择器中添加了一个指示器,用于显示工作区是否已在 VS Code 窗口中打开。

当前活动的窗口与其他打开的窗口指示略有不同,使这种区分更加清晰。未在任何窗口中打开的条目没有图标。
哪个窗口处于活动状态的指示也已应用于窗口选择器。
macOS:鼠标滑动导航
设置: workbench.editor.swipeToNavigate
在 macOS 上,您现在可以使用触控板的三指滑动手势在编辑器之间导航。向左或向右滑动可在任意编辑器组中导航最近使用的编辑器。通过 workbench.editor.swipeToNavigate 设置启用此功能。
注意:我们目前仅支持三指滑动手势。请确保您的触控板滑动设置配置如下,以使其正常工作:
- 页面间滑动:用三指左右滚动。
- 全屏应用间滑动:用四指左右滑动。
按需编辑器悬停弹出窗口
设置: editor.hover.enabled
您现在可以禁用编辑器中的自动悬停弹出窗口,同时保留使用键盘修饰符按需触发悬停信息的能力。 editor.hover.enabled 设置现在支持三个值:on、off 和 onKeyboardModifier。
当设置为 onKeyboardModifier 时,悬停信息仅在您悬停在代码上时按住与您的 editor.multiCursorModifier 设置相反的修饰键时出现。这减少了文本选择过程中的视觉干扰,同时在需要时保留了对上下文信息的快速访问。
例如,如果您的 editor.multiCursorModifier 设置为 ctrlCmd,则悬停在悬停时按住 Alt 时出现。如果设置为 alt,则悬停在悬停时按住 Ctrl(或 macOS 上的 Cmd)时出现。
代码编辑
TypeScript 的重命名建议
重命名建议预测何时应进行符号重命名,而不是进行常规的文本建议。预测到时,会与常规文本编辑一起显示一个额外的指示器。然后,您可以使用 Shift+Tab 应用符号重命名。
在下面的视频中,属性 a 被重命名为 width。重命名建议然后建议将 b 重命名为 height,并相应地重命名两个参数 a 和 b。下一次重命名建议在预测相关符号的重命名时效果最好。
注意:此功能目前通过实验向我们的用户群体推出,目前仅适用于 TypeScript。计划支持其他编程语言。
用于下一次编辑建议的新模型
我们发布了一个用于下一次编辑建议的新模型,它更智能,更符合您的最新编辑。它提供了显着更好的接受和拒绝表现。在我们的 GitHub 博客文章中了解更多关于 该模型及其开发 的信息。
预览视口外的下一次编辑建议
当您收到视口外的下一次编辑建议时,如果不从当前位置滚动开,很难知道该建议是什么。我们通过在您的光标当前位置渲染下一次编辑建议的预览来改进此体验。这有助于减少审查建议时对您工作流的影响。
注意:我们当前的语言模型专注于光标附近的下一次编辑建议,因此您可能不会经常看到视口外的建议。但是,我们正在积极开发模型,这些模型可以为您提供远得多的建议!
了解更多关于 VS Code 中的内联建议 的信息。
源代码管理
源代码管理存储库视图中的 Stashes(实验性)
设置: scm.repositories.explorer , scm.repositories.selectionMode
在本次里程碑中,我们通过添加一个 Stashes 节点,继续扩展了源代码管理存储库视图中显示的存储库工件列表。在此节点下,您可以查看完整的 Stashes 列表,并执行查看、应用和弹出每个 Stash 的操作。上下文菜单还包含一个丢弃每个 Stash 的操作。

您可以通过设置 scm.repositories.selectionMode 和 scm.repositories.explorer 设置来启用实验性存储库资源管理器。请尝试一下,并告诉我们您还希望在存储库资源管理器中看到哪些其他存储库工件。
了解更多关于 在 VS Code 中使用源代码管理 的信息。
调试
将变量附加到聊天
您现在可以将变量、作用域和表达式附加到 VS Code 中的聊天上下文。您可以通过右键单击 变量(Variables) 和 监视(Watch) 视图中的数据,或使用聊天中的 添加上下文(Add Context) 按钮来完成此操作。
终端
终端建议(Terminal suggest)已推送到稳定版
终端建议现已为稳定版用户启用,在您输入 Shell 命令时提供内联补全和上下文提示。建议现在将相关的参数值组合在一起,以便选项标志及其参数在列表中保持井然有序。
认证
微软验证的跨平台原生代理(Broker)支持
设置: microsoft-authentication.implementation
在此里程碑中,我们采用了最新的 MSAL 库,使您能够通过原生体验进行登录,支持平台包括:
- Intel Macs
- Linux x64(仅限某些基于 Debian 的发行版)

这是在现有支持基础上的增加:
- Windows x64
- macOS M 系列 (ARM)
macOS 和 Linux 支持要求您的机器已加入 Intune 并选择使用原生代理。
这实现了良好的单点登录流程,是获取 Microsoft 验证会话的推荐方式。MSAL 团队将随着时间的推移为其余平台(Windows ARM、Linux ARM 和其他发行版)启用此功能,敬请期待!
注意:如果您在通过代理进行身份验证时遇到困难,可以将 microsoft-authentication.implementation 更改为
msal-no-broker,这将改用您的浏览器进行身份验证。
classic Microsoft 身份验证不再可用
正如上个月提到的,由于使用率较低且不被 Entra ID 团队推荐,我们已移除了 microsoft-authentication.implementation 的 classic 选项。
提醒: microsoft-authentication.implementation 设置旨在让遇到问题的用户能够选择不使用 Microsoft 帐户的本机代理身份验证。此设置的值为:
msal- 在可用时使用带代理的 MSAL 身份验证(默认值)msal-no-broker- 使用不带代理的 MSAL 身份验证
语言
TypeScript 7.0 预览版
我们继续与 TypeScript 团队合作,以改进 VS Code 对 即将发布的 TypeScript 7 的支持。TypeScript 7 是使用原生代码完全重写的,性能大幅提升。
TypeScript 7 预览版已提供近乎完整的类型检查支持,TypeScript 团队也在不断增加编辑器功能。近期重点包括自动导入补全、重命名支持和引用代码透镜(code lenses)。
您现在可以通过安装 TypeScript (Native Preview) 扩展 来尝试 TypeScript 7.0。然后在 JavaScript 或 TypeScript 文件中运行 TypeScript (Native Preview): Enable (Experimental) 命令,将所有 IntelliSense 切换为使用原生预览版。查看 最新的 TypeScript 7 博客文章,了解有关 TypeScript 7 和 TypeScript 项目总体方向的完整更新。
我们计划继续与 TypeScript 团队紧密合作,改进 VS Code 对 TypeScript 7 的支持。一旦 TypeScript 7 准备就绪,我们的长期计划是将其作为 VS Code JavaScript 和 TypeScript IntelliSense 的默认驱动体验。如果您需要使用较旧的 TS 版本,或需要无法轻松迁移到 TypeScript 7 的 TypeScript 服务插件等编辑器功能,我们计划在可预见的未来继续支持现有的 TypeScript 版本,并与 TypeScript 7.0+ 并行运行。
远程开发
远程开发扩展允许您通过 SSH 或远程隧道使用开发容器、远程机器或适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。
亮点包括:
- SSH 重连宽限时间控制
您可以在 远程开发(Remote Development)发行说明 中了解有关这些功能的更多信息。
企业
在我们的文档中了解更多关于 VS Code 企业版功能 的信息。
控制代理工具的自动批准
设置: chat.tools.eligibleForAutoApproval 此设置由组织级别管理。请联系您的管理员进行更改。
在没有明确用户批准的情况下使用某些特定代理工具可能存在风险,特别是那些能够执行破坏性操作、访问敏感数据或在后台运行任意代码(例如 runTask)的工具。
您现在可以使用新的 chat.tools.eligibleForAutoApproval 此设置由组织级别管理。请联系您的管理员进行更改。 设置来定义哪些工具符合自动批准条件。当工具被禁止自动批准时,用户在聊天中将无法选择“始终批准此工具”,必须对每次使用进行明确批准。
组织可以通过企业策略向其用户强制执行此行为,以增强使用代理时的安全性。
通过策略禁用代理的使用
当企业策略禁用聊天中的代理功能时,代理选择器现在会更清楚地传达其不可用的原因。

在 Codespaces 中支持 GitHub 企业策略
您可以在 GitHub 中为您的企业或组织指定策略,并将其应用到 VS Code 中。例如,您可以 配置 MCP 注册表 URL,供您组织中的开发人员使用。
在此版本中,当将 VS Code 与 GitHub Codespaces 一起使用时,我们增加了对这些策略的支持。当开发人员打开 Codespace 时,这些策略会自动应用,就像在本地使用 VS Code 时一样。
对扩展的贡献
GitHub 拉取请求
GitHub Pull Requests 扩展取得了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。新功能包括:
- 当拉取请求或问题 webview 处于活动状态时,提供拉取请求和问题的隐式上下文。
- 可以通过“添加上下文(Add Context)”将拉取请求和问题明确添加为聊天会话的上下文。
- Copilot 拉取请求现在可以通过一个按钮标记为“准备好审核”、“已批准”以及设置“自动合并”。
查看 0.124.0 版本扩展的更新日志,了解此版本中的所有内容。
提议的 API
贡献的聊天上下文
我们有一个新的 API 提案,允许扩展为聊天贡献上下文提供程序。这使扩展能够提供来自其自身领域的丰富上下文,以供聊天会话使用。例如,GitHub Pull Request 扩展提供了以下上下文:
- 工作区上下文,包含有关当前存储库、分支和拉取请求的信息。
- 当拉取请求或问题 webview 处于活动状态时的隐式拉取请求和问题上下文。
- 当用户通过“添加上下文”添加它们时的显式拉取请求和问题上下文。
该 API 仍处于早期阶段,因此会有所变动。我们很乐意收到有关提案的哪些部分能够解决扩展作者需求的反馈。您可以在此处找到该提案:vscode.proposed.chatContextProvider.d.ts。
工程
构建发布流程优化
我们已经开始在 4 小时的时间窗口内逐步推出 Insiders 构建版本。这意味着作为 Insiders 用户,您收到更新通知的时间可能会比平时稍晚一些。如果您赶时间,可以随时运行 **检查更新(Check for Updates)** 来强制立即应用更新。
我们将在 24 小时的时间窗口内向稳定版用户推出 2025 年 11 月 (1.107) 版本。和 Insiders 一样,您可以随时运行 **检查更新** 来强制立即应用更新。
改进的网站搜索功能
我们改进了 我们的网站,增加了快速的客户端搜索功能,让您可以轻松快捷地浏览我们的文档。
我们已将该功能背后的库开源:您可以立即下载 docfind 并将其用于您的项目中!稍后我们将发布一篇博客文章,介绍该技术背后的创新。
更新的构建脚本直接作为 TypeScript 运行
在本次迭代中,我们清理了构建脚本,使其更易于使用和维护。这些构建脚本以前混合了编译后的 TypeScript、使用 ts-node 运行的 TypeScript 文件以及 JavaScript。其中许多脚本没有经过类型检查,且使用的是 CommonJS (require) 而不是带有 import 和 export 的现代模块。更糟糕的是,许多 TypeScript 构建脚本要求将编译后的 JS 输出提交到源代码管理中。简直是一团糟!
值得庆幸的是,Node 22.18+ 现在允许 直接运行 TypeScript 脚本。这使我们能够逐步将构建脚本转换为现代 TypeScript。我们使用了以下 tsconfig 选项来确保我们的新 TypeScript 代码可以由 Node 直接运行:
{
"compilerOptions": {
"target": "esnext",
"module": "nodenext",
"noEmit": true, // Don't generate .js files
"erasableSyntaxOnly": true, // Only allow TypeScript syntax that node can strip out. Enums and namespaces for example are not allowed
"allowImportingTsExtensions": true, // Allow importing of .ts files
"verbatimModuleSyntax": true // Make sure imports will be valid when the script is run by node directly
}
}
GitHub Copilot 帮助自动化了许多必需的更改,例如将旧的 CommonJS 文件转换为模块并添加类型注释。
需要注意的一点是,虽然 Node 可以运行 TypeScript 代码,但它并不会对其进行类型检查。您仍然需要使用 tsc 来进行检查。对于 VS Code,我们实际上使用的是 ts-go,它可以在不到一秒的时间内完全检查我们所有的构建脚本类型。
能够直接运行 node build/hygiene.ts 真是太棒了。完全切换到 TypeScript 还使我们能够对构建脚本进行现代化升级并引入类型安全,这将使理解和修改它们变得容易得多。此外,它使我们能够删除了约 15,000 行之前必须提交到仓库中的编译 JS 代码!
Copilot 扩展统一
设置: chat.extensionUnification.enabled
我们已全面推出由 GitHub Copilot Chat 扩展提供的内联建议(inline suggestions)。作为此变更的一部分,GitHub Copilot 扩展将默认对所有用户禁用。
如果您在使用内联建议时遇到任何问题,请反馈给我们。您可以通过将 chat.extensionUnification.enabled 设置为 false 来暂时回退到之前的行为,这将重新启用 GitHub Copilot 扩展。
请注意,我们计划在 2026 年 1 月完全弃用 GitHub Copilot 扩展,届时 chat.extensionUnification.enabled 设置也将被移除。
值得注意的修复
- vscode#233635 - 添加关闭其他窗口的操作
- vscode#262817 - 从最左侧的组运行“将编辑器移动到上一个组”应在左侧创建一个新组
- vscode#264569 - 设置和移除 window.activeBorder 颜色不会重置窗口边框颜色
- vscode#140186 - 当远程容器作为工作区打开时,无法打开本地终端
- vscode#228359 - 重启终端通常只会关闭终端
- vscode#232420 - 在 Python 3.13 下终端光标位置错误
- vscode#247568 - 终端中 Ctrl+点击文件名中包含冒号的文件无法打开,且前面的零被删除
- vscode#275011 - 在受信任的工作区中于 WSL 上打开 VS Code 时收到奇怪的终端消息
- vscode#275417 - reveal:never, close:true 的任务在 WSL 上不再生效
- vscode#277311 - 在命令面板中添加“X”按钮以从“最近使用”列表中移除命令
- vscode#282222 - SCM - 改进 git blame/时间轴/图表悬停渲染。感谢 Stanislav Fort (Aisle Research)
- vscode-python-environments#1000 - 环境激活在“命令提示符”下工作不可靠
感谢
问题跟踪
对我们问题跟踪的贡献
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @tamuratak (Takashi Tamura)
- @IllusionMH (Andrii Dieiev)
- @albertosantini (Alberto Santini)
对 vscode 的贡献
- @Abrifq (Arda Aydın)
- 修复包含反引号时终端选项卡提示符输入中断的问题 PR #272425
- 清理 microsoft#272425 PR #277406
- @bilogic: 同时识别
// #region ...作为有效标记 PR #278943 - @busorgin (Artem Busorgin): 在 VSBuffer 中将 TextDecoder.ignoreBOM 设置为 true PR #272389
- @cannona (Aaron Cannon): 允许“将编辑器移动到上一个组”创建新组 PR #275968
- @DrSergei (Sergei Druzhkov): 修复断点范围计算 PR #280263
- @gjsjohnmurray (John Murray): 更正某些设置中“状态栏(status bar)”的非标准大写(修复 #277376) PR #277383
- @jakebailey (Jake Bailey): 同时更新
@types/vscodepackage.json PR #277972 - @JeffreyCA: 终端建议 - 在建议中包含持久选项并改进建议分组 PR #276409
- @joelverhagen (Joel Verhagen): 从 NuGet MCP 安装中获取运行时配置 PR #271770
- @Josbleuet (Eric Fortin): 修复动态身份验证提供程序记录器文件名中的非法字符 PR #280217
- @nikdmello (Nik D'Mello): 更新 KaTeX 匹配中 jQuery 表达式的 katex 正则表达式 PR #269635
- @ramanverse (Raman): 移除已废弃的 maybeMigrateCurrentSession 方法 PR #280042
- @remcohaszing (Remco Haszing): 将 Cursor mdc 文件标记为 markdown PR #276518
- @SalerSimo: 修复设置布尔组件对象溢出 PR #278884
- @SimonSiefke (Simon Siefke)
- 修复:面包屑内存泄漏 PR #276597
- 修复:快速差异(quick diff)模型内存泄漏 PR #276914
- 修复:面包屑内存泄漏 PR #276915
- 修复:终端进程内存泄漏(部分) PR #276962
- 修复:启动页内存泄漏 PR #277199
- 修复:终端选项卡列表内存泄漏 PR #277225
- 修复:子装饰(subdecorations)未被释放导致的内存泄漏 PR #278328
- 修复:装饰注册可能导致的内存泄漏 PR #278331
- 修复:任务问题监视器内存泄漏 PR #279093
- 修复:历史服务内存泄漏 PR #279246
- 修复:组合栏(composite bar)内存泄漏 PR #280659
- @tamuratak (Takashi Tamura)
- 在代码块编辑器渲染完成后触发 onDidChangeHeight。修复 #265031 PR #274691
- 修复:markdown 渲染时 DOM.reset 使用 childNodes 而非 children。修复 #266103 PR #276890
- 修复:更新 mathInlineRegExp 以正确处理 $(a+b)^2$ PR #280021
- @yavanosta (Dmitry Guketlev): 改进 UriIdentityService 的性能 (#_273108) PR #273111
- @yaxiaoliu: 修复 (process-explorer): 名称正则表达式错误 PR #280273
对 vscode-copilot-chat 的贡献
- @AbdelrahmanAbouelenin (ababouelenin)
- @cuining: 更新 ESLint 配置以使用 Node 的内置模块,而非硬编码的受限导入列表 PR #2107
- @IanMatthewHuff (Ian Huff)
- @jeffreyhunter77 (Jeff Hunter)
- @joelverhagen (Joel Verhagen): 将 server.json 格式化与 VS Code 核心解耦 PR #1373
对 vscode-js-debug 的贡献
- @marat-gainullin: 修复多处 undefined 解引用 PR #2297
对 vscode-pull-request-github 的贡献
对 vscode-python 的贡献
- @iBug: 修复 microsoft/vscode#232420: Python REPL 光标漂移 PR #25521
对 vscode-python-debugger 的贡献
- @rchiodo (Rich Chiodo): 更新至最新 debugpy PR #877
对 vscode-python-environments 的贡献
- @zsol (Zsolt Dollenstein): 同时支持 UvWorkspace 环境 PR #1022
对 language-server-protocol 的贡献
- @arshadrr (Arshad Riyaz): 添加 slang-server PR #2200
对 node-native-keymap 的贡献
- @tmm1 (Aman Karmani): 修复 msctf.h 头文件的大小写 PR #64
- @yonas (Yonas Yanfa): 更新 README.md - 在 FreeBSD 上添加 libxkbfile 作为依赖项 PR #61
对 node-pty 的贡献
- @42lizard (Oliver Gassner): 添加 OpenBSD 的 termios 和 util 头文件包含 PR #817
- @huangcs427 (huangcs): 添加“Enjoy Git”实际用途 PR #818
对 python-environment-tools 的贡献
- @reflectronic (John Tur): 在 Windows 上运行命令时不创建控制台窗口 PR #266
- @zsol (Zsolt Dollenstein): 发现 uv 工作区 PR #263