2026年1月(版本 1.109)

发布日期:2026年2月4日

更新 1.109.1:此更新修复了这些 安全问题

更新 1.109.2:此更新修复了 聊天功能的一个问题

更新 1.109.3:此更新修复了这些 问题,并引入了几个值得注意的功能

更新 1.109.4:此更新修复了这些 问题

更新 1.109.5:此更新修复了这些 问题,并添加了以下功能以改进 后台智能体

  • 支持斜杠命令,包括提示文件、钩子和技能
  • 能够重命名后台智能体会话
  • Kitty 键盘支持现已对所有用户开放

下载:Windows: x64 Arm64 | Mac: 通用版 Intel silicon | Linux: deb rpm tarball Arm snap


欢迎使用 Visual Studio Code 2026年1月版本。在此版本中,我们进一步发展了 VS Code,使其成为多智能体开发的家园

  • 聊天 UI - 通过更快的流式传输、改进的推理结果和焕然一新的编辑器内联聊天,聊天体验感觉更棒、更敏捷

  • 智能体会话管理 - 现在可以更轻松地跨本地、后台和云端将任务委托给智能体,并在需要时介入

  • 智能体定制 - 使用智能体编排构建您自己的工作流,并通过智能体技能和组织范围的自定义获得一致的结果

  • 智能体可扩展性 - 利用 Claude 智能体支持和新的 Anthropic 模型能力重用您的知识,并通过 MCP 应用享受丰富的聊天交互

  • 智能体优化 - 智能体通过 Copilot Memory 工作得更聪明,并通过外部索引体验更快的代码搜索

  • 智能体安全与信任 - 通过沙盒和有效的自动批准规则,放心运行终端命令

  • 工作台与生产力 - 使用全新的集成浏览器在不离开编辑器的情况下测试您的应用

  • 终端增强 - 质量改进让您的终端体验更流畅、更可靠

  • 编码与编辑器 - 多项有影响力的改进,让日常编码更顺畅

  • 扩展与 API - 为扩展开发者提供构建更丰富体验的新功能

编码愉快!

观看我们的 VS Code 1.109 版本亮点视频,了解这些功能!



如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新页面。

Insiders:想尽快尝试新功能?
您可以下载每晚的 Insiders 构建版本,并尽快尝试最新更新。
下载 Insiders


即将举行的活动

智能体会话日 (Agent Sessions Day)

加入我们 2 月 19 日的 智能体会话日,查看这些最新更新的实时演示!探索 VS Code 如何演变为统一的智能体用户界面,同时坚守其开放性、可扩展性和开发者选择的核心价值观。

Visual of the Agent Session Day event.

聊天 UI

更快的响应、更清晰的推理和更少的摩擦。此版本带来了流式处理改进,可实时显示进度;改版的内联聊天让操作更顺畅;以及对模型思考过程更好的可见性,让您在 AI 工作时保持专注。

消息引导与排队(实验性)

设置 chat.requestQueuing.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 , chat.requestQueuing.defaultAction 在 VS Code 中打开 在 VS Code Insiders 中打开

更新 1.109.3:在处理较长任务时,您通常会在当前任务完成前想到下一个任务,或者注意到智能体方向有误。以前,您必须等待响应完成或完全取消它。现在,您可以在请求仍在运行时发送后续消息。

Screenshot showing the Send button dropdown with options to Add to Queue, Steer with Message, and Stop and Send.

当请求正在进行时,发送按钮会变为一个包含三个选项的下拉菜单

  • 添加到队列 (Add to Queue):您的消息会等待,并在当前响应完成后自动发送。
  • 消息引导 (Steer with Message):向当前请求发送信号,要求其在完成当前工具执行后立即让位,然后处理您的新消息。当智能体走错方向时,使用此功能来重定向它。
  • 停止并发送 (Stop and Send):完全取消当前请求并立即发送您的新消息。

当您有多条待处理消息时,拖放它们可以更改处理顺序。

使用 chat.requestQueuing.defaultAction 在 VS Code 中打开 在 VS Code Insiders 中打开 将发送按钮的默认操作设置为 steer(默认)或 queue

在文档中了解有关 消息引导与排队 的更多信息。

Anthropic 模型现在显示思维令牌 (thinking tokens)

设置 chat.thinking.style 在 VS Code 中打开 在 VS Code Insiders 中打开 , chat.agent.thinking.collapsedTools 在 VS Code 中打开 在 VS Code Insiders 中打开 , chat.agent.thinking.terminalTools 在 VS Code 中打开 在 VS Code Insiders 中打开 , chat.tools.autoExpandFailures 在 VS Code 中打开 在 VS Code Insiders 中打开

你们中有许多人正在 VS Code 中使用 Anthropic 的 Claude 模型。这些模型现在支持思维令牌,让您能更清楚地观察模型的推理过程。

在此版本中,我们增强了聊天 UI,以更有效地呈现思维令牌。信息更多,噪音更少!

  • 根据您的偏好选择详细或紧凑的思维风格( chat.thinking.style 在 VS Code 中打开 在 VS Code Insiders 中打开 )。

  • 您将看到模型的思维过程与工具调用和响应交织在一起( chat.agent.thinking.terminalTools 在 VS Code 中打开 在 VS Code Insiders 中打开 )。

  • 失败的工具调用会自动展开以显示更多上下文( chat.tools.autoExpandFailures 在 VS Code 中打开 在 VS Code Insiders 中打开 )。

  • 各种视觉增强功能使跟踪模型活动变得更加直观,例如可滚动的思维内容和微光动画。

聊天响应中的 Mermaid 图表

聊天响应现在可以使用 renderMermaidDiagram 工具渲染交互式 Mermaid 图表。这允许模型使用流程图、时序图和其他可视化方式来直观地分解复杂概念。这些图表是交互式的,因此您可以平移和缩放以详细探索它们,或者在全尺寸编辑器中打开它们以便更轻松地查看。

使用以下控件与 Mermaid 图表交互

  • 平移和缩放 - 按住 Alt/Option 并使用鼠标滚轮进行缩放,或在触控板上双指捏合缩放。按住 Alt/Option 并拖动以平移图表周围。
  • 点击缩放 - 按住 Alt/Option 并点击以放大。添加 Shift 以缩小。
  • 在编辑器中打开 - 使用按钮在全尺寸编辑器中打开图表,以便更好地查看大型图表。
  • 复制源码 - 右键点击图表并选择 Copy diagram source 以复制其 Mermaid 源代码。

Screenshot showing a mermaid diagram in a chat response.

提问工具 (Ask Questions tool)(实验性)

设置 chat.askQuestions.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

当情况不明朗时,智能体现在可以使用 askQuestions 工具在聊天对话期间提出澄清性问题,而不再是进行假设。它直接在聊天中通过单选/多选选项、自由文本输入以及突出显示的建议答案来展示一个或多个问题,以便您快速做出决定。

Screenshot showing the Ask Questions tool question carousel with theme type options.

使用键盘通过 向上向下 键在答案之间导航,或者输入与对应答案匹配的数字(使用 Escape 跳过剩余问题)。

我们还改进了我们的规划智能体 (Plan agent),使其也能利用 askQuestions 工具,确保您的实施计划与您的期望保持一致,甚至超出预期!

计划 Agent

内置的 规划智能体 (Plan agent) 让您可以在开始编码之前创建一个结构化的实施计划。这有助于确保 AI 理解任务需求并产出符合您期望的高质量代码。

  • 规划智能体现在遵循结构化的 4 阶段迭代工作流,从而生成更高质量的实施计划

    1. 发现 (Discovery) - 自主探索您的代码库,搜索相关文件并了解项目结构。
    2. 对齐 (Alignment) - 在承诺计划之前暂停以提出澄清性问题,及早发现歧义。
    3. 设计 (Design) - 起草一份包含清晰步骤、文件位置和代码片段的综合实施计划。
    4. 精炼 (Refinement) - 添加验证标准并记录规划期间所做的决策。
  • 您现在可以通过在聊天中键入 /plan,后跟任务描述来调用规划智能体。这为在切换到实施之前规划复杂任务提供了一个快速入口。

上下文窗口详情

为了跟踪模型如何使用其上下文窗口,您现在可以在聊天输入区域看到上下文窗口指示器。将鼠标悬停在指示器上即可查看按类别划分的令牌使用情况。

Screenshot showing the context window control and the hover message showing a breakdown per category.

内联聊天 UI 改版(预览)

设置 inlineChat.affordance 在 VS Code 中打开 在 VS Code Insiders 中打开 , inlineChat.renderMode 在 VS Code 中打开 在 VS Code Insiders 中打开

我们继续改进内联聊天体验,并带来了两个预览功能

  • 一种在选择文本时更容易触发内联聊天的功能( inlineChat.affordance 在 VS Code 中打开 在 VS Code Insiders 中打开
  • 一种轻量级且更易于使用的上下文渲染方式( inlineChat.renderMode 在 VS Code 中打开 在 VS Code Insiders 中打开

模型选择器中的模型描述

当您在模型选择器中悬停或对模型进行键盘聚焦时,现在可以一目了然地看到其详细信息。

Screenshot showing the language model picker with a hover flyout describing the currently selected model, Claude Opus.

终端命令输出

更丰富的命令详情

为了更清楚地了解正在运行的命令,终端工具现在显示更多细节

  • 内联 Node、Python 和 Ruby 的语法高亮

    Screenshot showing inline Python calls presenting just the Python code to make it easier to review.

  • 工作目录

    Screenshot showing the directory the command will run in, called out in the title after "within".

  • 命令意图的描述

    Screenshot showing the goal of the command when hovering, explaining the why instead of just the what.

输出流

终端输出现在会在命令执行耗时较长时自动展开,让您能实时看到正在发生的事情。快速命令保持折叠以减少视觉干扰。

交互式输入

嵌入式终端现在完全可交互。您可以聚焦终端并直接输入,这在命令提示确认或需要用户输入时非常有用。光标现在可见,清楚地表明终端何时准备好接收输入。

删除所有隐藏的终端

终端面板中的 隐藏终端 (Hidden Terminals) 项目现在包含一个删除图标,可一次性清除所有隐藏的终端。

Screenshot showing delete icon on Hidden terminals entry in the tabs list.

告诉我们您对新主题的看法(实验性)

我们正在开发新的实验性 VS Code LightVS Code Dark 主题,旨在通过使用阴影和透明度来增加焦点,并为 UI 带来一种提升感和轻盈感。这些主题尚处于开发阶段。

通过在 vscode 仓库 中提供反馈,让我们知道哪些部分做得好,以及我们可以在哪些方面进行改进。

VS Code Dark(实验性):

Screenshot showing the new experimental VS Code Dark theme.

VS Code Light(实验性):

Screenshot showing the new experimental VS Code Light theme.

编辑模式现已被隐藏(实验性)

设置 chat.editMode.hidden 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置由组织级别管理。请联系您的管理员进行更改。

编辑模式现在默认从聊天智能体下拉菜单中隐藏。使用智能体提供了编辑模式功能的超集,并能为代码编辑任务产生更好的结果。

如果您的组织禁用了智能体模式,编辑模式仍会在智能体下拉菜单中可见。您也可以通过禁用 chat.editMode.hidden 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置由组织级别管理。请联系您的管理员进行更改。 设置来手动恢复编辑模式。

智能体会话管理

委托、监控和切换,而无需分散注意力。现在,您可以从单个统一视图在本地、后台和云环境中并行运行多个智能体会话。在会话之间跳转,一眼追踪进度,让智能体独立工作,同时保持您的高效产出。

在智能体类型之间切换和委托

VS Code 使得在 不同环境 中启动智能体会话变得简单:在本地 VS Code 中、在后台、在云中,或与其他智能体提供商一起。我们通过在聊天输入区域引入新的会话类型选择器,使在这些不同智能体类型之间切换变得更加容易。

该选择器有两个主要目的

  • 选择您想要启动的智能体会话类型
  • 将正在进行的会话移交给不同的智能体类型(例如,在本地规划任务,然后在云中实施)

Screenshot showing continuing a session in a different environment using the session type picker.

提示:我们添加了一个新的 workbench.action.chat.newLocalChat 命令,用于创建新的本地聊天会话。将此命令绑定到键盘快捷键,以实现更快的访问。

跟踪智能体会话

在使用多个智能体工作时,跟踪活跃的智能体会话至关重要,特别是当您跨不同环境有多个并行会话时。

智能体会话视图

我们进一步改进了 VS Code 中的智能体会话视图,以使此任务变得更简单

  • 并排显示时调整会话列表大小
  • 多选会话以批量执行操作
  • 更好的堆叠视图,以改进会话导航和过滤器应用

智能体状态指示器

设置 chat.agentsControl.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 , chat.agentsControl.clickBehavior 在 VS Code 中打开 在 VS Code Insiders 中打开

在有多个活跃会话的情况下,快速查看哪些会话需要您注意非常重要。我们在 VS Code 命令中心添加了一个智能体状态指示器( chat.agentsControl.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 ),以提供对智能体会话更新的可见性。

该指示器显示不同类型的状态信息:进行中、未读,以及需要您注意的会话。选择指示器即可快速打开并过滤会话列表。

Screenshot showing agent status indicator with attention needed count.

我们还更新了命令中心中的聊天按钮,让您可以配置点击时的行为( chat.agentsControl.clickBehavior 在 VS Code 中打开 在 VS Code Insiders 中打开 )。默认情况下,它现在会在不同的聊天视图状态之间循环:侧边栏、最大化或隐藏。

子智能体

设置 chat.customAgentInSubagent.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

智能体可以使用 子智能体 (subagents) 运行子任务,将复杂的任务分解为较小的部分。子智能体的优点在于它们在自己专用的上下文窗口中运行,不会增加到主智能体的上下文窗口中。

子智能体现在可以并行运行,这可以显著加快可以拆分为独立任务的任务处理速度。

Screenshot showing two active subagents in chat with an active spinner next to them.

为了提供对不同子智能体正在做什么的更多可见性,聊天对话现在显示详细信息,例如它正在执行的任务、用于子智能体的自定义智能体,以及当前正在使用的任何工具。您可以展开子智能体信息以显示其正在执行工作的完整详情,包括提供给它的完整初始提示及其返回的结果。

搜索子智能体 (Search subagent)(实验性)

设置 github.copilot.chat.searchSubagent.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

搜索代码库通常是一个涉及多次迭代的任务,这会迅速达到您的上下文窗口限制。我们增加了对搜索子智能体的支持,它在隔离的智能体循环中运行,使其能够迭代优化搜索、尝试多个查询并探索工作区的不同部分。

这改进了单次搜索不足的复杂查询的搜索结果质量。它还保留了主智能体的上下文窗口,并使主智能体能够在搜索子智能体完成工作时继续工作。

云智能体

当您启动新的 云智能体 (cloud agent) 会话时,您现在有更多选项来配置您的会话。选择不同的模型,使用您的自定义智能体之一,或从可用的合作伙伴智能体中选择(如可用)。

  • 云智能体的模型选择

    Screenshot showing cloud agent model selection picker in chat input.

  • 第三方编码智能体(预览)

    如果您配置了第三方编码智能体(例如 Claude 和 Codex)作为 GitHub Copilot 订阅的一部分,VS Code 将在选择云智能体类型后显示这些选项。

    Screenshot showing cloud coding agent selection picker in chat input.

    在 GitHub 更新日志中了解有关 第三方编码智能体可用性和启用 的更多信息。

  • 云智能体的自定义智能体

    从您的目标 GitHub 存储库默认分支中提供的 自定义智能体 中进行选择。

    Screenshot showing custom agent selection picker in chat input.

  • 多根工作区和空工作区的改进

    在多根工作区窗口或空工作区窗口中时,您现在可以选择要用于云智能体的文件夹。

    Screenshot showing multi-root support in chat input.

  • 检出 (Checkout) 始终显示

    即使未安装 GitHub Pull Requests 扩展,智能体会话的 检出 选项现在也会显示。当您选择此操作时,如果需要,它会安装 GitHub Pull Requests,然后将其移交以执行检出。

后台代理

为了与本地和云智能体保持一致,我们对 后台智能体 添加了几项改进

  • 后台智能体的自定义智能体

    Screenshot showing custom agent selection picker in background chat input.

  • 将图像作为上下文附加

    Screenshot showing image support in background chat input.

  • 多根工作区改进

    在多根工作区中时,您现在可以选择要用于后台智能体的文件夹。

    Screenshot showing multi-root support in background chat input.

  • 每轮结束时自动提交 (Auto-commit)

    我们更新了后台智能体循环,在每轮结束时将更改提交到 Git 工作树。这使我们能够移除后台会话的“保留/撤销”操作,并简化了在工作集中显示已更改文件的方式。

  • 后台智能体的 / 斜杠命令

    更新 1.109.5提示文件钩子技能 现在作为聊天中的斜杠命令可用于后台智能体。

  • 重命名后台智能体会话

    更新 1.109.5:您现在可以重命名后台智能体会话,以便更轻松地跟踪它们。

    Screenshot showing support for renaming background agent sessions

智能体会话欢迎页面(实验性)

设置 workbench.startupEditor 在 VS Code 中打开 在 VS Code Insiders 中打开

最后但同样重要的是,我们正在试验一个新欢迎页面,需要您的帮助使其变得出色。当您有多个智能体并行工作时,跟踪最近的会话非常重要。新欢迎页面将您的智能体会话置于最醒目的位置。

Screenshot showing the Agent Sessions Welcome Page with recent sessions, quick actions, and an embedded chat widget.

通过将 workbench.startupEditor 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 agentSessionsWelcomePage 来启用欢迎页面作为您的启动编辑器。让我们知道您的想法,并在 vscode 仓库 中给我们发送反馈!

代理自定义

塑造 AI 与您的代码库协同工作的方式,并在您的团队中分享它。智能体技能 (Agent Skills) 现在让您可以将领域专业知识打包成可重用的工作流,组织范围的指令确保了一致性,并且新的控件让您可以精细地控制智能体如何以及何时被调用。

智能体钩子 (Agent hooks)(预览)

设置 chat.hooks.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

更新 1.109.3:钩子允许您在智能体会话期间的关键生命周期点执行自定义 shell 命令。与指导智能体行为的指令或自定义提示不同,钩子以确定的结果确定性地运行您的代码。使用它们来执行安全策略、自动化代码质量检查、创建审计追踪或注入项目特定上下文。

VS Code 支持八种钩子事件,它们会在会话期间的特定点触发,包括用于拦截工具调用的 PreToolUsePostToolUse、用于会话生命周期的 SessionStartStop,以及用于跟踪嵌套智能体使用的 SubagentStartSubagentStop

Screenshot showing hook configuration Quick Pick.

VS Code 使用与 Claude Code 和 Copilot CLI 相同的钩子格式,因此您可以跨工具重用现有的钩子配置。

要开始使用,请在聊天中使用 /hooks 斜杠命令来配置新钩子,或手动创建钩子文件。例如,您可以创建一个 PreToolUse 钩子,在每次文件编辑后运行 linter,或者在危险的终端命令执行前拦截它们。

在文档中了解有关 智能体钩子 的更多信息。

将技能用作斜杠命令

智能体技能现在可以作为聊天中的斜杠命令使用,与 提示文件 一起使用。在聊天输入中键入 / 以查看所有可用的技能和提示,然后选择一个技能立即调用它。您可以在命令后添加额外的上下文,例如 /webapp-testing for the login page/github-actions-debugging PR #42

默认情况下,所有技能都会出现在 / 菜单中。在您的技能文件中使用 user-invocabledisable-model-invocation 前缀属性来控制每个技能的访问方式

  • user-invocable: false 设置为从菜单中隐藏技能,同时仍允许模型自动加载它。
  • disable-model-invocation: true 设置为在菜单中显示技能,但阻止模型自行加载它。

在文档中了解有关 将技能用作斜杠命令 的更多信息。

使用 /init 为 AI 设置您的工作区

通过像 copilot-instructions.mdAGENTS.md 这样的 常驻自定义指令,您可以确保 AI 使用您项目的约定来生成代码。

要根据您的代码库为您项目预设一组初始指令,您现在可以在聊天中使用 /init 斜杠命令来生成或更新您的工作区指令。

当您运行 /init 时,智能体会发现您工作区中现有的 AI 约定(如 copilot-instructions.mdAGENTS.md),分析您的项目结构和编码模式,并生成针对您项目量身定制的全面工作区指令。/init 命令实现为贡献的提示文件,因此您可以通过修改底层提示来自定义其行为。

智能体技能现已正式发布 (GA)

设置 chat.useAgentSkills 在 VS Code 中打开 在 VS Code Insiders 中打开 , chat.agentSkillsLocations 在 VS Code 中打开 在 VS Code Insiders 中打开

智能体技能 现已正式发布并默认启用。技能提供专门的能力、领域知识和精炼的工作流,以帮助 AI 产生高质量的输出。每个技能文件夹都包含针对特定领域(如测试策略、API 设计或性能优化)的经过测试的指令。

您现在可以在 VS Code 中以管理提示文件、指令或自定义智能体的相同方式管理技能。使用 Chat: Configure Skills 命令查看所有可用技能,或使用 Chat: New Skill File 在您的工作区或用户主目录中创建新技能。

Screenshot showing the configure skills option in the Chat view.

默认情况下,VS Code 会在工作区的 .github/skills.claude/skills 文件夹中,或用户主目录中的 ~/.copilot/skills~/.claude/skills 文件夹中查找技能定义。您可以使用 chat.agentSkillsLocations 在 VS Code 中打开 在 VS Code Insiders 中打开 设置来指定 VS Code 查找技能的自定义路径。

如果您是扩展开发者,也可以通过将技能包含在扩展中并通过 package.json 中的 chatSkills 贡献点注册它们来打包和分发技能。

{
  "contributes": {
    "chatSkills": [
      {
        "path": "./skills/my-skill"
      }
    ]
  }
}

path 必须指向包含 SKILL.md 文件的目录,并且 SKILL.md 前缀中的 name 字段必须与父目录名称匹配。例如,如果路径是 ./skills/my-skill,则该目录必须包含一个 SKILL.md,且其前缀中包含 name: my-skill。在 智能体技能文档 中了解有关所需文件夹结构的更多信息。

组织范围的指令

设置 github.copilot.chat.organizationInstructions.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

此前,VS Code 已经增加了对组织级自定义智能体的支持。在此版本中,VS Code 现在也支持组织级自定义指令。如果您的 GitHub 组织为 Copilot 配置了自定义指令,它们会自动应用于您的聊天会话,确保整个团队的一致指导。

此功能默认启用。您可以通过将 github.copilot.chat.organizationInstructions.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 false 来禁用组织指令。

在文档中了解有关 自定义指令 的更多信息。

自定义智能体文件位置

设置 chat.agentFilesLocations 在 VS Code 中打开 在 VS Code Insiders 中打开

与其他自定义文件(如提示文件、指令和技能)一样,您现在可以配置 VS Code 在哪里查找 自定义智能体定义 (.agent.md)。

默认情况下,VS Code 会在您工作区的 .github/agents 文件夹中搜索智能体文件。通过新的 chat.agentFilesLocations 在 VS Code 中打开 在 VS Code Insiders 中打开 设置,您可以添加额外的目录进行搜索,从而更容易在跨项目组织和共享智能体,或者将它们保留在工作区之外的中心位置。

{
  "chat.agentFilesLocations": {
    "~/.vscode/agents": true,
    "shared/team-agents": true
  }
}

控制自定义智能体的调用方式

设置 chat.customAgentInSubagent.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

自定义智能体 现在在文件前缀中支持额外属性,让您可以更好地控制智能体的调用方式。这对于设置 智能体编排 以自信地处理复杂任务特别有用。

  • user-invocable:控制智能体是否可以从聊天中的智能体下拉菜单中选择。设置为 false 可创建仅能通过编程方式或作为 子智能体 访问的智能体。

  • disable-model-invocation:启用时,防止智能体被其他智能体作为子智能体调用。这对于仅应由用户明确触发的智能体很有用。

  • agents:限制当前智能体可以调用哪些子智能体。指定后,智能体只能将工作移交给所列出的智能体。使用 agent 工具来启用子智能体调用。

目前,自定义智能体作为子智能体的使用仍处于设置之后。启用 chat.customAgentInSubagent.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 以启用自定义智能体作为子智能体。

---
name: my-internal-agent
user-invocable: false
---

This agent can only be invoked as a subagent

以下示例显示了一个只能调用 ModifySearch 子智能体的智能体

---
name: Foo
tools: ['agent']
agents: ['Modify', 'Search']
---

This agent can only use the Modify and Search subagents.

自定义智能体的多模型支持

自定义智能体 现在可以在文件前缀中指定多个模型。将使用列表中第一个可用的模型,如果首选模型不可用,则提供后备选项。

---
name: my-agent
model: ['Claude Sonnet 4.5 (copilot)', 'GPT-5 (copilot)']
---

This agent prefers Claude Sonnet 4.5 but falls back to GPT-5 if unavailable.

聊天自定义诊断

聊天自定义文件可能来自各种位置,包括您的用户配置文件、工作区、扩展和您的 GitHub 组织。在排查自定义智能体、提示、指令或技能的问题时,确定当前加载了哪些文件以及加载过程中是否发生任何错误可能会很困难。

新的诊断视图通过显示所有当前加载的自定义智能体、提示文件、指令文件和技能,帮助您排查聊天自定义问题。要访问它,请在聊天视图中右键点击并选择 诊断 (Diagnostics)。这将打开一个 Markdown 文档,列出所有活动的自定义文件、它们的加载状态以及加载过程中发生的任何错误。

Screenshot showing the Chat Customization Diagnostics view with loaded agents, prompts, instructions, and skills.

语言模型编辑器

VS Code 中的语言模型编辑器提供了一个用于管理和配置聊天中所用语言模型的集中界面。此迭代中,我们进一步增强了这种体验

  • 每个提供商的多种配置:为同一个模型提供商创建多种配置,每种配置具有不同的 API 密钥。这对于区分个人账户和工作账户,或为不同项目使用不同 API 密钥非常有用。例如,您可以有一个使用您个人 API 密钥的 Gemini 配置,另一个使用您团队 API 密钥的 Gemini 配置。

    Screenshot showing multiple Gemini groups with different configurations.

  • 配置 Azure 提供商的模型:配置 Azure 模型时,VS Code 会打开 chatLanguageModels.json 配置文件并插入一个片段模板。此片段包含必需的属性,例如模型 ID、名称、端点 URL 和令牌限制。然后,您可以为您想要添加的每个模型填写值。

  • 管理提供商组:通过选择配置操作来配置现有的提供商组,例如更新 API 密钥。您还可以通过使用删除操作完全删除提供商组。

  • 其他 UI 改进:多项可用性改进,例如用于切换模型可见性的键盘访问、上下文菜单操作,以及用于批量操作的多选。

  • 语言模型配置文件:模型配置现在存储在专门的 chatLanguageModels.json 文件中。通过选择语言模型编辑器右上角的文件图标直接打开此文件。这使得查看、编辑或共享您的模型配置变得容易。

    Screenshot showing the file icon in the Language Models editor to open the configuration file.

  • 模型提供商配置 UI:模型提供商可以声明其配置模式,而 VS Code 提供供用户输入配置的 UI。有关此提议的新 API 的详细信息,请参阅 聊天模型提供商配置。来自 GitHub Copilot Chat 扩展的现有模型配置会自动迁移。

语言模型配置

设置 github.copilot.chat.implementAgent.model 在 VS Code 中打开 在 VS Code Insiders 中打开 , inlineChat.defaultModel 在 VS Code 中打开 在 VS Code Insiders 中打开

  • 计划实施的默认模型(实验性)

    您现在可以为规划智能体的实施步骤配置默认语言模型( github.copilot.chat.implementAgent.model 在 VS Code 中打开 在 VS Code Insiders 中打开 )。将设置留空以使用默认模型。模型值应为 Model Name (vendor) 格式的合格模型名称,例如 GPT-5 (copilot)Claude Sonnet 4.5 (copilot)

    Screenshot showing the Settings editor with the github.copilot.chat.implementAgent.model setting.

  • 内联聊天的默认模型

    默认情况下,编辑器内联聊天使用所选提供商的默认模型。这使扩展能够提供专为内联聊天场景量身定制的模型。

    如果您更喜欢使用不同的模型,可以使用 inlineChat.defaultModel 在 VS Code 中打开 在 VS Code Insiders 中打开 设置进行配置。此设置允许您为内联聊天选择一致的默认语言模型,以便在您开始内联聊天会话时自动使用您首选的模型,而无需每次手动选择它。

    Screenshot showing the Settings editor with the inlineChat.defaultModel setting and a dropdown list of available language models.

  • 指定智能体移交的语言模型

    智能体移交现在支持一个可选的 model 参数,允许您指定移交执行时要使用的语言模型。这使您能够直接从 .agent.md 文件控制用于特定智能体工作流的模型。

    模型值应为 Model Name (vendor) 格式的合格模型名称,例如 GPT-5 (copilot)Claude Sonnet 4.5 (copilot)

    Screenshot showing an agent handoff configuration in an agent file with the model parameter specified.

智能体定制技能(实验性)

设置 chat.agentCustomizationSkill.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

一种新的 智能体定制 (agent-customization) 技能教导智能体如何帮助您定制您的 AI 编码体验。当您询问有关创建自定义智能体、指令、提示或技能时,智能体会自动加载此技能以提供准确的指导。

该技能涵盖

  • 自定义智能体 - 创建包含用于工具、模型和行为的前缀配置的 .agent.md 文件
  • 自定义指令 - 编写包含用于特定上下文指导的 applyTo 模式的 .instructions.md 文件
  • 提示文件 - 构建用于常见任务的可重用 .prompt.md 模板
  • 技能 - 将领域专业知识打包在 SKILL.md 文件中
  • 工作区指令 - 在 copilot-instructions.mdAGENTS.md 中设置项目范围的约定

智能体可扩展性

此版本添加了 Claude 智能体支持,因此您可以直接利用 Anthropic 的智能体 SDK;MCP 应用可在聊天中呈现交互式可视化效果;以及新的提供商功能,为您提供了更多扩展智能体能力的方法。

Claude 兼容性

如果您同时使用 VS Code 和 Claude,则无需再维护单独的配置文件。VS Code 现在可以直接读取 Claude 配置文件,因此您的智能体、技能、指令和钩子可以在两个工具之间无缝使用,而无需重复。

VS Code 检测以下 Claude 文件位置

  • 指令:工作区根目录中的 CLAUDE.md 文件、.claude/CLAUDE.md~/.claude/CLAUDE.md。VS Code 还从 .claude/rules 文件夹中读取指令文件。有关详情,请参阅 自定义指令
  • 智能体.claude/agents 文件夹中的 .md 文件,遵循 Claude 子智能体格式。有关详情,请参阅 自定义智能体文件位置
  • 技能.claude/skills~/.claude/skills 文件夹中的技能定义。有关详情,请参阅 智能体技能
  • 钩子.claude/settings.json~/.claude/settings.json 中的钩子配置。有关详情,请参阅 智能体钩子

这种兼容性扩展到指令、智能体、技能和钩子,因此使用多个 AI 工具的团队可以共享一组配置文件。

智能体编排 (Agent orchestration)

智能体编排是构建复杂 AI 工作流的一种强大模式,其中多个专用智能体协作以实现共同目标。编排工作不是依赖单个智能体处理所有事情,而是将工作分配给专门构建的智能体,每个智能体都针对特定角色进行了优化,例如规划、实施、代码审查或研究。

这种方法提供了几个主要好处

  • 上下文效率:每个子智能体都在其自己专用的上下文窗口中运行,防止上下文溢出
  • 专业化:不同的智能体可以使用针对其任务优化的不同模型
  • 并行执行:独立任务可以在多个子智能体之间并行运行

图表显示了一个包含多个专用智能体协作完成任务的编排系统。 图片来源 https://github.com/ShepAlderson/copilot-orchestra,作者 @ShepAlderson

VS Code 拥有通过 自定义智能体子智能体 以及对 如何调用智能体 的额外控制来设置您的智能体编排流的所有构建块。

社区已经创建了优秀的智能体编排系统示例,您可以直接使用或根据您的需要进行调整

  • Copilot Orchestra - 一个多智能体系统,带有一个“指挥 (Conductor)”,通过完整的开发周期协调规划、实施和代码审查子智能体

  • GitHub Copilot Atlas - 一个扩展的编排系统,具有专用智能体,例如用于规划的“Prometheus”、用于研究的“Oracle”、用于实施的“Sisyphus”以及用于快速代码库发现的“Explorer”

Claude 智能体(预览)

在此版本中,我们引入了 Claude 智能体支持,目前处于预览阶段。这使您能够使用 GitHub Copilot 订阅中包含的 Claude 模型,将任务委托给 Claude 智能体 SDK。

Screenshot showing Claude agent next to Local, Background & Cloud in the session target picker.

此集成使用了 Anthropic 的官方 Claude 智能体工具包,这意味着它与其他 Claude 智能体实现共享相同的提示、工具和整体架构。您可以在 Anthropic 文档 中了解有关 Claude 智能体 SDK 的更多信息。

此集成正处于积极开发中,我们计划在未来几个月内添加更多功能和改进。同时,我们很乐意听到您关于如何在 VS Code 中使用 Claude 智能体的反馈,以及您希望接下来看到哪些功能。请随时 在 GitHub 上 提供反馈!

Anthropic 模型

设置 github.copilot.chat.anthropic.thinking.budgetTokens 在 VS Code 中打开 在 VS Code Insiders 中打开 , github.copilot.chat.anthropic.toolSearchTool.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 , github.copilot.chat.anthropic.contextEditing.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

我们对 VS Code 中的 Anthropic 模型支持进行了几项改进

  • 带有交替思维的 Messages API:Anthropic 模型现在使用 Messages API,其中包括对交替思维的支持。这使 Claude 能够在工具调用之间进行推理,在复杂的跨步骤任务期间提供更深思熟虑和上下文相关的响应。使用 github.copilot.chat.anthropic.thinking.budgetTokens 在 VS Code 中打开 在 VS Code Insiders 中打开 设置配置思维预算,或将其设置为 0 以完全禁用扩展思维。

  • 工具搜索工具:我们启用了工具搜索工具,帮助 Claude 从大量可用工具池中发现并选择最适合您任务的工具。此功能可通过 github.copilot.chat.anthropic.toolSearchTool.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置进行切换。

  • 上下文编辑(实验性):我们增加了对上下文编辑的支持,以帮助更有效地管理较长的对话。此功能会清除之前轮次中的工具结果和思考标记,有助于推迟摘要生成,并在聊天会话中保持更多上下文。通过启用 github.copilot.chat.anthropic.contextEditing.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置来体验此功能。

对 MCP 应用的支持

在此次发布中,VS Code 增加了对 MCP 应用 (MCP Apps) 的支持。MCP 应用允许服务器在客户端中显示丰富且交互式的 UI。

当服务器返回应用时,它们会自动显示。如果您是 MCP 服务器开发者,可以通过查看以下内容了解更多关于 MCP 应用的信息:

Screenshot showing an interactive flame graph visualization rendered by an MCP App.

支持 MCP 包的自定义注册表基础 URL

VS Code 现在支持 MCP 服务器清单文件中的 registryBaseUrl 属性。这使组织能够从私有或替代包注册表(例如内部 Azure DevOps 源或自定义 PyPI 仓库)部署 MCP 服务器。

智能体(Agent)优化

更智能的上下文、更快的搜索、更好的结果。通过 Copilot 记忆(Memory),智能体可以在不同会话间记住重要的内容。外部索引为非 GitHub 工作区带来了快速的语义搜索。此外,智能体现在可以在获得您许可的情况下,按需读取工作区之外的文件。

Copilot 记忆(预览版)

设置 github.copilot.chat.copilotMemory.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

如果您发现自己反复向 AI 提供相同的上下文,现在可以使用 Copilot 记忆 在不同会话间存储和调取重要信息。

借助新的记忆工具,您的聊天现在可以直接访问和更新 Copilot 记忆。这使得智能体能够从您存储的记忆中检索相关上下文,并在您工作时保存新的学习成果。通过将 github.copilot.chat.copilotMemory.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 true 来启用记忆工具。

记忆工具应能识别何时将特定信息存储为记忆(“有疑问时总是提出澄清问题”),以及何时检索相关记忆以提供回答。

Screenshot showing the memory tool in chat with a list of stored memories and a request to always ask clarifying questions when in doubt.

您可以从 GitHub 的 Copilot 设置中查看和管理您的所有记忆。

非 GitHub 工作区的外部索引(预览版)

设置 github.copilot.chat.advanced.workspace.codeSearchExternalIngest.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开

对于 GitHub 托管的工作区,现在可以进行远程索引,以便在使用智能体时实现更快的代码搜索。当您在非 GitHub 工作区中使用 #codebase 时,VS Code 会构建一个代码库索引,从而实现快速的语义搜索,提供与 GitHub 托管仓库相同的强大代码搜索功能。

索引在首次请求时构建,根据仓库大小和您的网络连接,可能需要几分钟时间。后续请求速度会快得多,因为它们使用缓存的索引。当您修改并保存文件时,索引会自动更新。

我们将在未来几周内逐步推出外部索引功能。请注意,任何托管在 GitHub 上的工作区已经支持远程索引,不需要在首次请求时进行昂贵的索引构建调用。

读取工作区之外的文件

智能体现在可以在获得您许可的情况下,读取当前工作区之外的文件并列出目录。以前,访问尝试会被自动拒绝。现在,当智能体需要访问外部文件或文件夹时,VS Code 会提示您允许或拒绝该请求。

您还可以允许整个会话的访问权限,以避免在同一个文件夹下进行后续读取时反复出现提示。

Screenshot showing a prompt asking the user to allow or deny access to read files outside the workspace.

性能改进

在此迭代中,我们进行了多项性能改进

  • 大型聊天:长聊天对话现在打开和滚动时应该会感觉更顺畅。我们还优化了对话的持久化方式,使其整体更加可靠。

  • 并行依赖任务:通过智能体运行任务时,依赖任务现在是并行处理而不是串行处理。这可以显著缩短具有多个独立构建步骤的项目的构建时间。查看我们的 microsoft/vscode 仓库来感受这种差异!

智能体安全与信任

自信地运行智能体命令。新的终端沙箱限制了智能体执行命令的文件和网络访问,自动批准规则跳过了安全操作的确认,改进的展示方式准确显示了正在运行的内容及其原因,让您始终掌控全局。

终端沙箱(实验性)

设置 chat.tools.terminal.sandbox.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 , chat.tools.terminal.sandbox.linuxFileSystem 在 VS Code 中打开 在 VS Code Insiders 中打开 , chat.tools.terminal.sandbox.macFileSystem 在 VS Code 中打开 在 VS Code Insiders 中打开 , chat.tools.terminal.sandbox.network 在 VS Code 中打开 在 VS Code Insiders 中打开

智能体拥有与您用户帐户相同的权限。为了帮助降低与智能体执行终端命令相关的风险,我们引入了实验性的终端沙箱功能。终端沙箱将文件系统访问权限仅限制为您当前的工作区文件夹,并允许您将网络访问权限限制为仅受信任的域。

注意:终端沙箱目前仅在 macOS 和 Linux 上支持。在 Windows 上,沙箱设置无效。

要启用终端沙箱,请将 chat.tools.terminal.sandbox.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 true

启用沙箱后:

  • 命令默认对当前工作目录拥有读写访问权限
  • 命令无需标准确认对话框即可运行,因为它们在受控环境中执行
  • 网络访问默认对所有域阻止

在我们的文档中了解有关配置 终端沙箱 的更多信息。

终端工具生命周期改进

在此版本中进行了一些更改,以帮助解决后台终端行为不正确的问题:

  • 您现在可以手动将终端工具调用推送到后台,从而释放智能体以继续处理其他工作。

    Screenshot showing the button with the play icon that allows the agent to continue with that command running in the background.

  • 调用终端工具时,智能体必须填写一个新的 timeout 属性,其中 0 表示无超时。这提供了一种额外的逃生机制,可以在发生意外情况时将控制权交还给智能体。

  • 新的 awaitTerminal 工具使智能体能够等待后台终端完成,这也需要 timeout 属性。只要模型利用此工具,预期它将替代之前用于等待后台命令完成的 echo "successful"sleep n 调用。

  • 新的 killTerminal 工具使智能体能够杀死后台终端以进行清理。这旨在防止智能体有时为了达到同样目的而采取迂回方式杀死进程(例如想要停止旧的正在运行的服务器命令)。

  • 围绕当前工作目录的工作方式进行了一些指令更改,因为活动(非后台)终端始终持久保持当前工作目录,而后台终端始终在工作区目录中启动。

终端自动批准

设置 chat.tools.terminal.enableAutoApprove 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置由组织级别管理。请联系管理员更改。

当启用终端自动批准 ( chat.tools.terminal.enableAutoApprove 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置由组织级别管理。请联系管理员更改。) 时,以下命令现在默认自动批准:

  • Set-Location
  • dir
  • od
  • xxd - 标志和单个输入文件
  • docker - 所有安全子命令
  • npm, yarn, pnpm - 所有安全子命令

终端增强

一个更流畅、功能更强大的终端。聊天中的终端命令现在显示更丰富的详细信息,包括语法高亮和工作目录。对 Kitty 键盘协议的支持改善了终端应用中的按键处理,新的选项让您可以自定义粘滞滚动(sticky scroll)并在受限工作区中使用终端。

选择性忽略粘滞滚动

设置 terminal.integrated.stickyScroll.ignoredCommands 在 VS Code 中打开 在 VS Code Insiders 中打开

一些命令以前在粘滞滚动启用时会出现,但并不需要,例如 clear 等命令。从这个版本开始,您可以自定义忽略哪些命令,并且它已经包含了一些常见的智能 CLI(在正常缓冲区中运行),如 copilot, claude, codexgemini

移除对 winpty 的支持

node-pty 已移除对 winpty 的支持,这意味着终端将不再在 Windows 10 1809 版(2018 年秋季)之前的 Windows 版本上运行。ConPTY 是终端的现代机制,因此我们建议升级到较新版本的 Windows 10 或迁移到 Windows 11。您可以通过设置 "terminal.integrated.windowsUseConptyDll": true 来使终端工作,但请注意,这目前是实验性的。

允许在受限工作区中打开终端

设置 terminal.integrated.allowInUntrustedWorkspace 在 VS Code 中打开 在 VS Code Insiders 中打开

当未授予工作区信任时,打开终端将被阻止,以保护用户免受 shell 可能通过 .env 文件设置变量等方式执行代码的攻击。具有安全意识的用户通常会配置其 shell 以防止这种情况,因此现在有一个新的可选择设置,允许在受限工作区中打开终端。

新的 VT 功能

设置 terminal.integrated.enableKittyKeyboardProtocol 在 VS Code 中打开 在 VS Code Insiders 中打开

Kitty 键盘协议 已实现,并将在此版本中向稳定版推出。此功能旨在修复传统按键编码方式的一系列限制,具体包括:

  • 允许终端编码更多的修饰键和组合修饰键,而不仅仅是 Alt 和 Ctrl
  • 处理按下和释放事件,以及重复按下(按住某个键)
  • 消除许多按键的歧义,例如 Escape,它通常发送 ESC (\x1b) 序列,而该序列也是所有转义序列的开头。

这要求在终端中运行的程序支持该协议并在运行时请求启用它。您将立即看到的一个巨大好处是 Shift+Enter 应该可以在某些智能 CLI 中直接工作,而无需运行 /terminalSetup 之类的命令。

设置 terminal.integrated.enableWin32InputMode 在 VS Code 中打开 在 VS Code Insiders 中打开 (实验性)

与上述类似,有一个实验性的 win32 输入模式,它实现了类似的功能,但专门针对 Windows 及其伪终端后端 ConPTY 进行了调整。此功能在此版本中将保持关闭,如果您遇到任何问题,请告诉我们。

其他

编码与编辑器

点滴改进汇聚成大提升。双击选择括号或字符串内容。自定义括号匹配颜色。为特定文件限制片段(snippets)作用域。正确检测 TypeScript shebang。这些专注的改进让日常编辑变得更加顺畅。

括号匹配前景色

您现在可以使用新的 editorBracketMatch.foreground 颜色主题令牌自定义匹配括号的文本颜色。以前,您只能自定义背景 (editorBracketMatch.background) 和边框 (editorBracketMatch.border) 颜色。新的颜色令牌让您可以通过改变实际括号字符的颜色,使匹配的括号更加清晰突出。

该设置默认值为 null,意味着括号继承其正常的文本颜色。请在您的 settings.json 中的 workbench.colorCustomizations 下进行配置。

{
  "workbench.colorCustomizations": {
    "editorBracketMatch.foreground": "#ff0000"
  }
}

双击选择括号和字符串内容

您现在可以在左括号后或右括号前立即双击,以选择括号内的所有内容。这也适用于字符串——在引号后或引号前立即双击即可选择字符串内容。这提供了一种无需手动定位光标即可快速选择、复制或替换括号或字符串内内容的方法。

TypeScript 的重命名建议

当覆盖现有声明进行输入时,TypeScript 的重命名建议现在也有效。在下面的视频中,用户通过输入新的标识符名称而不是使用重命名重构,将声明 let index = 0; 更改为 let chunkIndex = 0;。接下来的编辑建议仍然会提议使用 Shift+Tabindex 重命名为 chunkIndex

注意:此功能目前仅适用于 TypeScript。

改进的幽灵文本(Ghost Text)可见性

内联建议(幽灵文本)在显示少于三个连续非空格字符的简短建议时,现在会显示虚线下划线。这种视觉指示器使在编辑器中更容易区分幽灵文本与实际代码。当建议是像 ) 这样的单个字符时,这尤其有用,因为这类字符可能会被误认为是现有代码。

Screenshot showing ghost text with a dotted underline for short suggestions.

代码片段(Snippet)文件模式

您现在可以使用 includeexclude 全局模式(glob patterns)来控制片段出现在哪些文件中。利用这一点将片段限制在特定的文件或项目上下文中,防止它们出现在不相关的文件中。

例如,要创建一个仅出现在 Travis CI 配置文件中的片段:

{
  "Travis CI node_js": {
    "include": ".travis.yml",
    "prefix": "node",
    "body": ["language: node_js", "node_js:", "  - $1"],
    "description": "Node.js configuration for Travis CI"
  }
}

如果模式包含路径分隔符,则匹配绝对文件路径,否则仅匹配文件名。includeexclude 都可以是单个模式或模式数组。使用 exclude 可以防止片段出现在特定文件中,即使它们本应符合片段的语言作用域。

改进的 shebang 语言检测

VS Code 现在改进了对 shebang 的语言检测支持,特别是对于使用带有额外标志的 /usr/bin/env 的文件。像 #!/usr/bin/env -S deno -A 这样的 shebang 文件现在会被正确检测为 TypeScript。即使没有 .ts 文件扩展名,这也能为使用 Deno 或 Bun 等运行时编写的 TypeScript 脚本提供更好的语言支持。

工作台与生产力

无需切换窗口即可测试、调试和发布。新的集成浏览器让您可以直接在 VS Code 中预览和检查本地主机站点,并配有开发人员工具(DevTools)和身份验证支持。

集成浏览器(预览版)

设置 workbench.browser.openLocalhostLinks 在 VS Code 中打开 在 VS Code Insiders 中打开 , simpleBrowser.useIntegratedBrowser 在 VS Code 中打开 在 VS Code Insiders 中打开 , livePreview.useIntegratedBrowser 在 VS Code 中打开 在 VS Code Insiders 中打开

VS Code 长期以来包含用于打开基础网页(例如开发期间的本地主机站点)的 Simple Browser。然而,由于它依赖于 iframe,存在一些限制:无法进行网站身份验证,并且无法打开 Google、GitHub 和 Stack Overflow 等常用网站。

此版本为 VS Code 桌面版引入了一个新的集成浏览器,克服了这些限制。您现在可以登录网站并像在普通浏览器中一样浏览任何页面。

亮点包括:

  • 持久数据存储,具有可配置的作用域(全局、工作区或内存/临时)
  • 添加到聊天:选择一个元素并将其发送给智能体寻求帮助
  • 功能齐全的开发人员工具(DevTools)
  • 键盘快捷键
  • 页面内查找

以及更多...

要体验此功能,请运行 Browser: Open Integrated Browser 命令。如果您希望更广泛地使用集成浏览器,可以启用 workbench.browser.openLocalhostLinks 在 VS Code 中打开 在 VS Code Insiders 中打开 ,直接在浏览器中打开本地主机链接(如上所示)。

您还可以通过 simpleBrowser.useIntegratedBrowser 在 VS Code 中打开 在 VS Code Insiders 中打开 设置配置集成浏览器以替换 Simple Browser,或通过 livePreview.useIntegratedBrowser 在 VS Code 中打开 在 VS Code Insiders 中打开 设置供 Live Preview 扩展使用。

在打开工作区时恢复编辑器

设置 workbench.editor.restoreEditors 在 VS Code 中打开 在 VS Code Insiders 中打开

以前,VS Code 在重新打开工作区时总是会恢复所有已打开的编辑器。通过新的 workbench.editor.restoreEditors 在 VS Code 中打开 在 VS Code Insiders 中打开 设置,您可以控制在打开工作区时是否恢复编辑器。禁用此设置后,VS Code 将以空白编辑器区域启动,而不是重新打开上一个会话中的标签页。

注意:无论此设置如何,未保存的编辑器总是会恢复,以防止数据丢失。

高级设置

设置 workbench.settings.alwaysShowAdvancedSettings 在 VS Code 中打开 在 VS Code Insiders 中打开

您现在可以配置 VS Code,使其始终在设置编辑器中显示高级设置,而不必每次都应用 @tag:advanced 过滤器。启用 workbench.settings.alwaysShowAdvancedSettings 在 VS Code 中打开 在 VS Code Insiders 中打开 设置,即可默认显示高级设置。

通过拖放导入配置文件

您现在可以通过将 .code-profile 文件拖放到 VS Code 窗口中来导入设置配置文件。这提供了与拖放 .code-workspace 文件类似的体验,使共享和应用配置文件变得更加容易。

输出通道过滤器改进

输出面板过滤器现在支持负模式和多个过滤器。使用 ! 从输出中排除特定行,例如 !debug 会隐藏所有包含“debug”的行。您还可以用逗号组合多个模式以进行更精确的过滤。

按来源过滤问题

问题(Problems)面板现在支持按诊断来源或所有者进行过滤。当您想要专注于特定类型的问题(如构建错误)时,这非常有用,同时可以暂时隐藏拼写检查器或 linter 等其他来源的诊断。例如,在过滤器框中输入 source:ts 仅显示 TypeScript 诊断,或者使用 !source:cSpell 隐藏所有拼写检查器警告。

扩展编辑器显示配置默认值

扩展编辑器中的“功能贡献”选项卡现在显示由扩展贡献的配置默认值。这使得查看扩展提供哪些默认设置(例如特定语言的编辑器配置)变得更加容易。

在 git 工作树中包含额外文件(实验性)

设置 git.worktreeIncludeFiles 在 VS Code 中打开 在 VS Code Insiders 中打开

使用后台智能体时,会创建一个 git 工作树以隔离更改。通过新的 git.worktreeIncludeFiles 在 VS Code 中打开 在 VS Code Insiders 中打开 设置,您可以指定在创建工作树后复制到工作树文件夹中的额外文件或全局模式。当您的项目依赖于被 git 忽略且不是 git 仓库一部分的文件时(例如:本地配置文件或构建工件),这非常有用。

SCM 视图中的“全部折叠”操作

当在源代码控制视图的更改部分以树状查看文件时,您现在可以使用根节点上下文菜单中的 全部折叠 操作,一次性折叠所有展开的目录结构,从而更容易浏览大量的更改。

Git:删除命令

一个新的 Git:删除 命令让您可以直接从命令面板对当前打开的文件运行 git rm。这将从工作目录和 Git 索引中删除该文件,然后关闭编辑器。这提供了一种比常规文件删除更安全的选择,因为 git rm 仅对没有未提交更改的已提交文件成功。

禁用 blame 编辑器装饰悬停

设置 git.blame.editorDecoration.hoverEnabled 在 VS Code 中打开 在 VS Code Insiders 中打开

您现在可以禁用当鼠标移到编辑器中的内联 Git blame 装饰上时出现的悬停弹出窗口。将 git.blame.editorDecoration.hoverEnabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 false,以保持内联 blame 注释可见,同时防止悬停弹出窗口出现。如果您觉得弹出窗口令人分心,但仍想一眼看到 blame 信息,这将非常有用。

自动任务默认禁用

设置 task.allowAutomaticTasks 在 VS Code 中打开 在 VS Code Insiders 中打开

为了提高安全性并防止在打开工作区时意外执行 tasks.json 中定义的任务, task.allowAutomaticTasks 在 VS Code 中打开 在 VS Code Insiders 中打开 设置现在默认值为 off 而不是 on

要恢复以前的行为,请在用户设置中将 task.allowAutomaticTasks 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 on

辅助功能改进

辅助视图中的动态流式聊天响应和思考内容

辅助视图现在在 AI 模型生成聊天响应内容时对其进行动态流式传输。屏幕阅读器用户无需手动刷新或重新打开辅助视图,即可实时跟进响应。这现在包括思考内容,使屏幕阅读器的体验与视觉显示保持一致。

辅助视图中稳定的光标位置

当辅助视图中的内容更新时(例如在流式聊天响应期间或使用终端时),光标位置现在保持稳定。这防止了可能扰乱屏幕阅读器导航的焦点变化,让您可以在新内容追加时按自己的节奏阅读。

新聊天会话的 ARIA 警报

当创建新的聊天会话时,屏幕阅读器用户现在会收到 ARIA 警报通知,以告知他们新的聊天上下文。

改进辅助视图中的工具调用信息

辅助视图中的工具调用现在包含更完整的信息,使屏幕阅读器用户更容易理解 AI 智能体正在执行的操作。

公告光标位置命令

屏幕阅读器用户现在可以使用新的 Announce Cursor Position(使用 Ctrl/Cmd+Alt+Shift+G)快速访问并收听其当前行和列位置。

企业级改进

在我们的文档中了解更多关于 VS Code 企业功能的信息。

改进的 GitHub 组织策略实施

此版本改进了 GitHub 组织策略实施的可靠性。当登录多个帐户时,策略现在会根据首选的 GitHub Copilot 帐户正确应用。此外,即使在启动时出现临时网络中断,组织策略也能保持一致执行,确保托管的限制无论在何种连接状态下都能保持有效。

扩展与 API

为扩展开发者提供的新构建块。定稿的 Quick Input 按钮 API 为您提供了对输入位置和切换状态的更多控制。提议的 API 使聊天模型提供程序能够声明配置模式,新的聊天资源提供程序让扩展能够贡献动态提示词、智能体和技能。

GitHub 拉取请求

GitHub Pull Requests 扩展方面取得了更多进展,该扩展使你能够处理、创建和管理拉取请求和问题。

查看扩展的 0.128.0 版本变更日志,了解发布的所有内容。

定稿的 Quick Input 按钮位置 API

当您在 QuickPickInputBox 上设置 buttons 属性时,现在可以使用新的 location 属性指定每个按钮的位置。这允许您将按钮放置在以下位置:

  • Title:快速输入的顶部标题区域(如果未指定,则为默认值)
  • Inline:呈现在输入框右侧
  • Input:呈现在输入框内部右侧

定稿的 Quick Input 按钮切换 API

您现在可以通过在 QuickInputButton 上将 toggle 属性设置为 { checked: boolean } 来在快速输入中创建切换按钮。切换按钮保持开/关状态,您可以使用新的 checked 属性读取和更新该状态。这对于具有两种状态的操作(例如启用或禁用功能、应用过滤器或切换模式)非常有用。

提议的 API

聊天模型提供程序配置

我们引入了一个新的提议 API,使聊天模型提供程序扩展能够通过 languageModelChatProviders 贡献点声明其配置需求。借助此 API,VS Code 为用户提供了一个内置 UI 来输入其配置(例如 API 密钥和模型设置),并通过 API 将此配置传递给扩展。

这种方法将在未来的版本中取代现有的 managementCommand 属性。扩展程序不必通过命令实现自己的配置 UI,而是可以声明其配置模式,并让 VS Code 处理用户体验。

VS Code 为 stringnumberboolean 等原始属性类型提供原生 UI 控件。对于 arrayobject 等复杂类型,VS Code 会打开相应的配置文件,并允许用户在 JSON 编辑器中直接输入配置,并提供完整的模式验证和 IntelliSense 支持。有关配置体验的详细信息,请参阅 语言模型编辑器

简单配置

对于仅需要 API 密钥的提供程序,配置非常简单:

{
  "contributes": {
    "languageModelChatProviders": [
      {
        "vendor": "my-provider",
        "displayName": "My Provider",
        "configuration": {
          "properties": {
            "apiKey": {
              "type": "string",
              "secret": true,
              "description": "API key for My Provider",
              "title": "API Key"
            }
          },
          "required": ["apiKey"]
        }
      }
    ]
  }
}

使用自定义模型进行高级配置

对于支持带有自定义端点的用户定义模型的提供程序,您可以定义更复杂的模式:

{
  "contributes": {
    "languageModelChatProviders": [
      {
        "vendor": "my-provider",
        "displayName": "My Provider",
        "configuration": {
          "properties": {
            "apiKey": {
              "type": "string",
              "secret": true,
              "description": "API key for authentication",
              "title": "API Key"
            },
            "models": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique model identifier"
                  },
                  "name": {
                    "type": "string",
                    "description": "Display name for the model"
                  },
                  "url": {
                    "type": "string",
                    "description": "Model endpoint URL"
                  },
                  "maxInputTokens": {
                    "type": "number",
                    "description": "Maximum input tokens supported by the model"
                  },
                  "maxOutputTokens": {
                    "type": "number",
                    "description": "Maximum output tokens supported by the model"
                  },
                  "toolCalling": {
                    "type": "boolean",
                    "description": "Whether the model supports tool calling"
                  },
                  "vision": {
                    "type": "boolean",
                    "description": "Whether the model supports vision capabilities"
                  }
                },
                "required": ["id", "name", "url", "maxInputTokens", "maxOutputTokens"]
              }
            }
          },
          "required": ["apiKey"]
        }
      }
    ]
  }
}

在注册语言模型聊天提供程序时,扩展程序会收到用户提供的配置:

vscode.lm.registerLanguageModelChatProvider('my-provider', {
  provideLanguageModelResponse: (
    messages,
    options,
    extensionToken,
    configuration,
    token
  ) => {
    // configuration contains the values the user entered in VS Code's UI
    const apiKey = configuration.apiKey;
    const models = configuration.models;
    // Use configuration to make API calls...
  }
});

配置模式中的 secret 属性表示字段应安全存储并在 UI 中掩码。VS Code 会自动处理这些字段的安全存储。

此 API 仍处于提议阶段。您可以在此处找到该提议:vscode.proposed.lmConfiguration.d.ts

聊天提示词文件 API

我们引入了一个新的提议 API,使扩展能够贡献动态聊天资源。借助此 API,扩展程序可以以编程方式提供提示词文件、自定义智能体、指令和技能,这些资源会与用户定义的文件一起出现,从而实现诸如根据项目上下文生成提示词或从外部源提取资源等场景。

此 API 引入了一个 ChatResource 接口和每种资源类型的提供程序注册方法:

// Register a provider for skills
vscode.chat.registerSkillProvider({
  onDidChangeSkills: onDidChangeEvent,
  provideSkills(context, token): ChatResource[] {
    return [{ uri: vscode.Uri.parse('my-extension:/skills/debugging/SKILL.md') }];
  }
});

// Similar methods exist for other resource types:
// - registerCustomAgentProvider() for .agent.md files
// - registerInstructionsProvider() for .instructions.md files
// - registerPromptFileProvider() for .prompt.md files

此 API 仍处于提议阶段。您可以在此处找到该提议:vscode.proposed.chatPromptFiles.d.ts

聊天项控制器 API

我们继续迭代 聊天会话项 API。此 API 允许扩展贡献项目到 VS Code 内置的聊天会话视图中。

在此迭代中,我们引入了一个基于控制器的新 API,它取代了以前基于提供程序的模型。控制器 API 允许扩展将更改推送到 VS Code,而不是让 VS Code 从扩展中拉取更改。它还将 ChatSessionItems 变为托管对象,因此您只需更新其属性即可推送更改。

这是一个关于如何使用此 API 的简短示例:

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
  // Create a new controller with a unique id
  const controller = vscode.chat.createChatSessionItemController(
    'myExtension.chatSessions',

    // Refresh function. This is invoked when the controller is registered and
    // when the user presses the refresh button.
    async (token: vscode.CancellationToken) => {
      // Fetch sessions from your backend/storage
      const sessions = await fetchSessionsFromBackend();

      // Create managed chat session items
      const items = sessions.map(session =>
        controller.createChatSessionItem(
          vscode.Uri.parse(`my-scheme://session/${session.id}`),
          session.title
        )
      );

      // Tell VS Code about these items by updating `controller.items`. They will now show
      // in the chat sessions UI
      controller.items.replace(items);

      // The chat session items are live. This means you can update them just by updating properties on them
      setTimeout(() => {
        const currentTime = new Date().toLocaleTimeString();
        for (const item of controller.items) {
          item.label = `${item.label} - ${currentTime}`;
        }
      }, 10000);
    }
  );

  // We can also listen for changes in a chat session item's archived state
  controller.onDidChangeChatSessionItemState(item => {
    console.log(`Session ${item.label} archived: ${item.archived}`);
  });
}

聊天输出渲染器 API 更新

我们继续致力于聊天输出渲染器 API。此 API 允许扩展使用 webview 在聊天响应中呈现自定义交互式内容。

除了大量的错误修复外,我们现在还将渲染器作为 ChatOutputWebview 传递,而不是仅直接传递 Webview。这让扩展可以监控 webview 何时被销毁,以便它们可以清理任何相关资源。当 webview 再次可见时,VS Code 将重新创建它。

查看 聊天输出渲染器示例扩展,了解如何使用此 API。

便携模式检测

一个新的 env.isAppPortable 属性允许扩展检测 VS Code 是否在 便携模式 下运行。当应用程序从包含 data 目录的文件夹运行时,便携模式即被启用,这允许进行自包含安装,不会在宿主系统上留下痕迹。

if (vscode.env.isAppPortable) {
  // Running in portable mode - adjust behavior accordingly
}

此 API 仍处于提议阶段。您可以在此处找到该提议:vscode.proposed.envIsAppPortable.d.ts


工程

macOS 的 DMG 映像

VS Code 现在为 macOS 提供 DMG 映像,以提供原生拖放式安装体验。这些映像适用于所有受支持的架构,可从 VS Code 网站获取。

Screenshot showing the macOS DMG image mounted.

Windows 11 上下文菜单集成

在支持上下文菜单的情况下安装 VS Code 时,右键单击 Windows 11 文件资源管理器中的文件或文件夹现在会在顶层上下文菜单中添加一个条目,无需选择 显示更多选项 即可访问 VS Code。用户和系统安装程序都支持此新条目。

Screenshot showing VS Code in the Windows 11 context menu.

重构的 Windows 安装布局

我们重构了 Windows 上的安装布局,以解决与应用内更新相关的长期可靠性问题。最值得注意的是,旧版本执行的是原子文件替换操作,如果它们被系统关闭、用户干预或其他意外事件中断,可能会失败,有时会导致 VS Code 处于损坏状态。新实现灵感来源于 Chromium 的更新客户端,并使用版本化包路径。

避免 macOS 的连续更新

如果上一个更新尚未应用时有新的更新可用,VS Code 现在会使先前的更新无效,并继续应用新的更新,而不是强制用户重启应用程序两次。

Copilot 扩展已弃用

GitHub Copilot 扩展已被弃用。所有 AI 功能现在完全由 GitHub Copilot Chat 扩展提供。当您更新 VS Code 时,已弃用的 Copilot 扩展会自动卸载,而 Copilot Chat 扩展将保持安装状态,并提供完整的 Copilot 体验。

Screenshot showing the deprecated Copilot extension and the active Copilot Chat extension.

从 npm 包使用 codicons

Codicons 现在通过 @vscode/codicons npm 包使用,而不是直接捆绑在 VS Code 仓库中,并作为构建过程的一部分被合并。

值得注意的修复

  • vscode#276558 - 修复了在 editor.hover.enabled 设置为 onModifierKeyPressed 时按下修饰键无法立即触发悬停的问题
  • vscode#58814 - 文件描述符泄漏到终端进程

感谢

问题跟踪

对我们问题跟踪的贡献

拉取请求

vscode 的贡献

vscode-copilot-chat 的贡献

vscode-explorer-command 的贡献

vscode-js-debug 的贡献

vscode-python-environments 的贡献

vscode-windows-registry 的贡献

language-server-protocol 的贡献

python-environment-tools 的贡献


我们非常感谢大家在新功能准备就绪后立即进行试用,请经常回来查看并了解新功能。

如果您想阅读以前 VS Code 版本的发行说明,请访问 code.visualstudio.com 上的更新页面。

© . This site is unofficial and not affiliated with Microsoft.