本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

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 | Linux: deb rpm tarball Arm snap


欢迎来到2026年1月发布的Visual Studio Code。在这个版本中,我们进一步发展VS Code,使其成为多代理开发的家园

  • 聊天用户体验 - 聊天感觉更好,响应更快,推理结果改进,并且重新设计了内联聊天编辑器

  • 代理会话管理 - 现在更容易将任务委托给本地、后台和云中的代理,并在需要时介入

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

  • 代理可扩展性 - 利用Claude代理支持和新的Anthropic模型功能,重复利用您的知识,并通过MCP应用程序享受丰富的聊天互动

  • 智能体优化 - 智能体通过Copilot Memory以更智能的方式工作,并通过外部索引加快代码搜索

  • 代理安全与信任 - 在沙盒环境中运行终端命令,并且有有效的自动批准规则,让你感到自信

  • 工作台 & 生产力 - 使用新的集成浏览器在编辑器内测试您的应用程序

  • 终端增强 - 提高生活质量,使您的终端体验更加流畅和可靠

  • 编码和编辑器 - 一些重要的改进,使日常编码更加流畅

  • 扩展 & API - 为扩展作者提供更丰富的体验的新功能

祝你编码愉快!

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



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

内部人士:想尽快尝试新功能吗?
你可以下载夜间内部人士版本,尽快尝试最新更新。
下载内部人士版本


即将举行的活动

代理会议日

加入我们,参加Agent Sessions Day,在2月19日现场演示这些最新更新!了解VS Code如何发展成为统一的代理用户体验,同时保持其开放性、可扩展性和开发者选择的核心价值观。

代理会议日的视觉展示。

聊天用户体验

更快的响应、更清晰的推理和更少的摩擦。此版本带来了流式改进,可以实时显示进度,全新的内联聊天功能不会干扰您的工作,并且可以更好地了解模型的思考过程,使您在AI工作时保持流畅。

消息转向和队列(实验性)

设置

chat.requestQueuing.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
chat.requestQueuing.defaultAction
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

更新 1.109.3:在执行长时间任务时,您通常会在当前任务完成之前想到下一个任务,或者注意到代理朝着错误的方向前进。以前,您必须等待响应来完成或完全取消它。现在,您可以在请求仍在运行时发送后续消息。

截图显示发送按钮下拉菜单,包含添加到队列、消息控制和停止并发送选项。

当请求正在进行时,发送按钮会变成一个下拉菜单,有三个选项:

  • 添加到队列:您的消息将在当前响应完成后等待并自动发送。
  • Steer with Message:信号当前请求在完成当前活动工具执行后让步,然后立即处理您的新消息。使用此功能在代理出现错误方向时进行重定向。
  • 停止并发送:取消当前请求并立即发送您的新消息。

当你有多个待处理的消息时,拖动并更改它们的处理顺序。

使用

chat.requestQueuing.defaultAction
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
将发送按钮的默认操作设置为指引(默认)或队列输入:.

了解更多关于消息引导和队列的信息,请参阅文档。

现在,人类模型显示思考代币

设置

聊天.思考.方式
  • 在 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 模型。这些模型现在支持思考代币,使您能够更清楚地了解模型的推理过程。

在此次发布中,我们改进了聊天用户体验,以更有效地展示思维令牌。更多信息,更少噪音!

  • 选择详细或紧凑的思维风格以符合您的偏好(

    聊天.思考.方式
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    )。

  • 你会看到模型的思维过程与工具调用和响应交织在一起

    chat.agent.thinking.terminalTools
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    )。

  • 失败的工具调用会自动扩展以显示更多上下文

    chat.tools.autoExpandFailures
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    )。

  • 各种视觉增强,使跟踪模型活动更加直观,例如可滚动的思考内容和闪烁动画。

聊天响应中的美人鱼图

聊天响应现在可以呈现交互式Mermaid 图表 通过 渲染美人鱼图表工具。这使得模型可以使用流程图、序列图和其他可视化工具来视觉化地分解复杂的概念。这些图表是互动的,因此你可以平移和缩放以详细地探索它们,或者在全尺寸编辑器中打开它们以更方便地查看。

使用以下控件与美人鱼图进行交互:

  • 平移和缩放 - 按住 Alt/Option 并使用鼠标滚轮进行缩放,或在触控板上捏合以缩放。按住 Alt/Option 并拖动以在图表中平移。
  • 点击放大 - 按住 Alt/Option 并点击以放大。添加 Shift 以缩小。
  • 在编辑器中打开 - 使用此按钮在全屏编辑器中打开图表,以更好地查看较大的图表。
  • 复制源 - 右键单击图表并选择 复制图表来源复制它的Mermaid源代码。

截图显示聊天响应中有一个美人鱼图。

提问工具(实验性)

设置

chat.允许提问.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

当某些事情不明确时,代理现在可以使用问问题在聊天对话中提出澄清问题的工具。它直接在聊天中呈现一个或多个问题,具有单选/多选选项、自由文本输入,并将推荐答案突出显示以供快速决策。

截图显示了“问问题”工具的提问轮播,带有主题类型选项。

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

我们已经重新设计了我们的计划代理,以利用问问题确保您的实施计划与您的期望保持一致甚至超越期望的工具!

计划代理

内置的计划代理允许您在开始编码之前创建一个有组织的实施计划。这有助于确保AI理解任务要求,并生成符合您期望的高质量代码。

  • 该计划代理现在遵循一个结构化的四阶段迭代工作流程,以生成更高质量的实施计划:

    1. 发现 - 自动探索你的代码库,搜索相关文件并理解项目结构。
    2. 对齐 - 在执行计划之前暂停并提出澄清问题,早期捕捉到歧义。
    3. 设计 - 拟定一个包含明确步骤、文件位置和代码片段的全面实施计划。
    4. 细化 - 增加验证标准并记录规划期间做出的决策。
  • 您现在可以通过输入来调用计划代理/计划在聊天中,接着是你的任务描述。这为在切换到实施之前规划复杂的任务提供了一个快速入口。

上下文Windows详细信息

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

截图显示上下文Windows控制和悬停消息,显示每个类别的详细信息。

内联聊天用户体验改进(预览)

设置

立线聊天.功能
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
内联聊天渲染模式
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

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

  • 一个使得在选择文本时更容易触发内联聊天的功能
    立线聊天.功能
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    )
  • 一个轻量级且更易于使用的上下文渲染(
    内联聊天渲染模式
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    )

模型选择器中的模型描述

在模型选择器中将鼠标悬停或使用键盘聚焦于某个模型时,现在您可以一览其详细信息。

截图显示语言模型选择器,带有悬停飞出描述当前选择的模型Claude Opus。

终端命令输出

更丰富的命令细节

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

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

    截图显示内联Python调用,仅呈现Python代码,以便于审核。

  • 工作目录

    截图显示命令将运行的目录,目录在标题中以“within”后指出。

  • 命令意图说明

    截图显示命令在悬停时的目标,解释为什么而不是仅仅解释是什么。

输出流

终端输出现在会在命令执行时间较长时自动扩展,使您可以立即了解正在发生的事情。快速命令保持折叠以减少视觉噪音。

交互式输入

嵌入终端现在完全可交互。您可以聚焦终端并直接输入,这在命令需要确认或需要用户输入时非常有用。光标现在是可见的,当终端准备好输入时,这使得情况很清晰。

删除所有隐藏终端

终端面板中的隐藏终端项目现在包括一个删除图标,可以一次清除所有隐藏终端。

截图显示在标签列表中的隐藏终端条目上删除图标。

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

我们正在开发新的实验VS Code 轻量版VS Code 深色通过使用阴影和透明度,增加焦点并为用户界面带来一种提升和轻盈的感觉。这些主题仍在开发中。

通过在vscode 仓库中提供反馈来告诉我们哪些地方有效,哪些地方可以改进。

VS Code 深色(实验性):

截图显示了新的实验性 VS Code 深色主题。

VS Code 轻量版(实验性):

截图显示了新的实验性 VS Code 浅色主题。

代理会话管理

委托、监控和切换而无需失去焦点。您现在可以从前端统一视图中并行运行多个代理会话,覆盖本地、后台和云环境。在会话之间跳转,一眼了解进度,并让代理独立工作,同时保持高效。

切换和委托不同类型的代理

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

选择器有两个主要用途:

  • 选择您想要开始的代理会话类型
  • 将正在进行的会话交给不同类型的代理(例如,在本地计划任务并在云端实施)

截图显示在不同环境中使用会话类型选择器继续会话。

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

跟踪代理会话

在处理多个代理时,跟踪您的活动代理会话是至关重要的,特别是在您在不同环境中拥有多个并行会话时。

代理会议视图

我们进一步改进了 VS Code 中的 Agent Sessions 视图,以使此任务更轻松:

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

代理状态指示器

设置

chat.agentsControl.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
chat.agentsControl.clickBehavior
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

在你有多个活动会话的情况下,快速查看哪些会话需要你的关注非常重要。我们添加了一个代理状态指示器 (

chat.agentsControl.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
在 VS Code 命令中心中提供代理会话更新的可见性。

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

截图显示了需要关注的代理状态指示器和计数。

我们还更新了指挥中心的聊天按钮,以便您可以配置点击时的行为。

chat.agentsControl.clickBehavior
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
). 默认情况下,它现在会循环切换不同的聊天视图状态:侧边栏、最大化或隐藏。

子代理

设置

聊天.子代理中的自定义代理.已启用
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

智能体可以使用子智能体来将复杂任务分解为更小的部分。子智能体的优点是它们在自己的专用上下文Windows中操作,并且不会增加主智能体的上下文Windows。

子代理现在可以并行运行,这可以显著加快可以拆分为独立任务的任务。

截图显示两个活跃的子代理在聊天中,旁边还有一个活跃的生成器。

为了更清楚地了解各个子代理在做什么,现在的聊天对话框会显示诸如正在执行的任务、为子代理使用的自定义代理以及当前使用的工具等详细信息。你可以展开子代理信息以显示其正在执行的全部详细信息,包括其最初提供的完整提示和返回的结果。

搜索子代理(实验性)

设置

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

搜索代码库通常是一个可能涉及多次迭代的任务,并且很快就会超出你的上下文Windows限制。我们添加了对搜索子代理的支持,该子代理在隔离的代理循环中运行,使其能够迭代地优化搜索,尝试多个查询,并探索你的工作区的不同部分。

这提高了复杂查询的搜索结果质量,当单个搜索不足以解决问题时尤为有用。它还保留了主要代理的上下文Windows,并使主要代理在搜索子代理执行其任务时能够继续工作。

云代理

当你开始一个新的云代理会话时,你现在有更多的选项来配置你的会话。从不同的模型中选择,使用你自定义的代理之一,或者从可用的合作伙伴代理中选择(如果有的话)。

  • 云代理的模型选择

    截图显示在聊天输入中选择云代理模型选择器。

  • 第三方编码代理 (预览)

    如果您在 GitHub Copilot 订阅中配置了第三方编码代理,例如 Claude 和 Codex,在选择云代理类型后,VS Code 将显示这些选项。

    截图显示聊天输入中云编码代理选择器。

    了解更多关于 第三方编码代理的可用性和启用情况 的信息,请参阅 GitHub 的变更日志。

  • 定制云代理的代理

    自定义代理中选择,这些代理可在目标 GitHub 仓库默认分支中使用。

    截图显示聊天输入中自定义代理选择器。

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

    当在多根工作区Windows或空工作区Windows中时,您现在可以选择用于云代理的文件夹。

    截图显示聊天输入中的多根支持。

  • 结账总是显示

    代理会话的检出选项现在即使在未安装GitHub Pull Requests扩展的情况下也会显示。当您选择此操作时,如果需要,它会安装GitHub Pull Requests,然后将其交给它来执行检出。

后台代理

与本地和云代理保持一致,我们对后台代理进行了几处改进:

  • 用于后台代理的自定义代理

    截图显示在背景聊天输入中选择自定义代理选择器。

  • 附加图片作为上下文

    截图显示在背景聊天输入中支持图像。

  • 多根工作区改进

    在多根工作区中,您现在可以选定要在后台代理中使用的文件夹。

    截图显示在背景聊天输入中支持多根。

  • 每回合结束自动提交

    我们已将背景代理循环更新,在每轮结束时将更改提交到Git工作树。这使我们能够删除背景会话的保持/撤销操作,并简化更改文件在工作集中的显示方式。

  • /背景代理的命令

    更新 1.109.5提示文件钩子,和技能现在可以作为聊天中的斜线命令供后台代理使用。

  • 重命名背景代理会话

    更新 1.109.5:现在您可以重新命名背景代理会话,以便更轻松地跟踪它们。

    截图显示支持重命名后台代理会话

代理会话欢迎页面(实验性)

设置

工作台.启动编辑器
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

最后但同样重要的是,我们正在尝试一个新的欢迎页面,并需要您的帮助来使其变得更好。当您有多个代理同时工作时,跟踪最近的会话很重要。新的欢迎页面将您的代理会话放在显眼的位置。

截图显示了Agent Sessions欢迎页面,其中包含最近的会话、快速操作和嵌入的聊天小部件。

通过设置将欢迎页面启用为您的启动编辑器

工作台.启动编辑器
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
代理会话欢迎页面告诉我们您的想法,并在vscode 仓库中发送反馈!

代理定制

通过您的代码库塑造AI的工作方式,并在您的团队中共享。Agent Skills现在允许您将领域专业知识打包成可重用的工作流程,组织范围内的指示确保一致性,并且新的控制选项使您可以对代理的调用方式和时间进行细粒度控制。

代理挂钩(预览)

设置

chat.hooks.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

更新 1.109.3:Hooks 可以在代理会话的关键生命周期点执行自定义 shell 命令。与指导代理行为的说明或自定义提示不同,Hooks 以确定性的方式运行您的代码,并保证结果。使用它们来强制执行安全策略、自动化代码质量检查、创建审计记录或注入项目特定的上下文。

VS Code 支持在会话特定点触发的八种钩子事件,包括预工具使用使用工具后用于拦截工具调用会话开始停止会话生命周期,以及子代理开始子代理停止用于跟踪嵌套代理的使用情况。

截图显示钩配置快速选择。

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

要开始,请使用/钩子在聊天中使用斜线命令来配置新的钩子,或者手动创建钩子文件。例如,您可以创建一个预工具使用在每次文件编辑后运行代码检查器,或在执行危险的终端命令之前阻止它们。

了解更多关于代理钩子的信息,请参阅文档。

使用技能作为斜线命令

现在可以在聊天中使用代理技能的斜线命令,提示文件。输入 输入:/在聊天输入中查看所有可用技能和提示,并选择一个技能立即调用。您可以在命令后添加额外的上下文,例如/webapp测试 登录页面/GitHub Actions 调试 PR #42输入:.

默认情况下,所有技能都显示在输入:/菜单。使用用户可调用禁用模型调用在你的技能文件中使用frontmatter属性来控制每个技能的访问方式:

  • 设置用户可调用:否隐藏技能的同时仍然允许模型自动加载。
  • 设置禁用模型调用:真在菜单中显示该技能,但防止模型自行加载。

了解更多关于使用技能作为斜线命令的文档信息。

为人工智能设置您的工作空间/初始化

通过始终开启的自定义指令例如Copilot指令.mdAGENTS.md,您可以确保AI使用您项目生成代码的约定。

要为您的项目提供一组基于代码库的初始指令,您现在可以使用/初始化在聊天中使用斜线命令来生成或更新你的工作区说明。

当你运行/初始化代理在你的工作区中发现现有的AI约定(例如Copilot指令.mdAGENTS.md), 分析你的项目结构和编码模式,并生成针对你项目的全面工作区说明。/初始化命令作为一个贡献的提示文件实现,因此你可以通过修改底层提示来自定义其行为。

特工技能通常可用

设置

chat.useAgentSkills
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
聊天.代理技能位置
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

智能体技能 现在已普遍提供并默认启用。技能提供了专业能力、领域知识和优化的工作流程,以帮助AI生成高质量的输出。每个技能文件夹包含针对特定领域的测试说明,例如测试策略、API设计或性能优化。

您现在可以像管理提示文件、说明或自定义代理一样,在 VS Code 中管理技能。使用 Chat: 配置技能 命令查看所有可用技能,或使用 Chat: 新建技能文件 在您的工作区或用户主目录中创建新的技能。

截图显示聊天视图中的配置技能选项。

默认情况下,VS Code 在寻找技能定义.github/技能.claude/技能您的工作区文件夹,或者在 ~/.copilot/skills~/.claude/技能在你的用户主目录中创建一个文件夹。你可以通过使用来指定VS Code应该查找技能的自定义路径

聊天.代理技能位置
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

如果您是扩展作者,您还可以通过将技能包含在扩展中并使用来包装和分发技能。聊天技能贡献点在package.json输入:

{
  "贡献": {
    "聊天技能": [
      {
        "路径": "./技能/我的技能"
      }
    ]
  }
}

路径必须指向包含一个的目录SKILL.md文件,和名字领域在SKILL.md前 matter必须与父目录名称匹配。例如,如果路径是./技能/我的技能目录必须包含一个SKILL.md名称:我的技能 在其前言中。在 Agent Skills 文档 中了解更多关于所需文件夹结构的信息。

全组织指示

设置

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 中打开
输入:.

了解更多关于自定义指令的信息,请参阅文档。

自定义代理文件位置

设置

聊天.代理文件位置
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

和其他定制文件一样,例如提示文件、说明和技能,您现在可以配置 VS Code 寻找 自定义代理定义的位置 (.agent.md)。

默认情况下,VS Code 在你的工作区中搜索代理文件.github/agents文件夹。有了新的

聊天.代理文件位置
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
在设置中,您可以添加额外的目录进行搜索,这使得在项目之间组织和共享智能体或在工作区之外将它们保持在中央位置更加容易。

{
  "chat.agentFilesLocations": {
    "~/.vscode/agents": true,
    "共享/团队代理": true
  }
}

控制自定义代理的调用方式

设置

聊天.子代理中的自定义代理.已启用
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

自定义代理 现在在 frontmatter 头中支持额外的属性,使您能够更多地控制代理的调用方式。这对于设置代理编排 特别有用,可以自信地处理复杂的任务。

  • 用户可调用: 控制是否可以在聊天的代理下拉菜单中选择代理。设置为 创建只能通过编程访问或作为 子代理 的代理。

  • 禁用模型调用启用后,可防止该代理被其他代理作为子代理调用。这对于仅应由用户显式触发的代理很有用。

  • Agent限制当前代理可以调用的子代理。当指定时,代理只能将工作交给列出的代理。使用Agent工具以启用子代理调用。

目前,使用自定义代理作为子代理仍然受到限制。启用

聊天.子代理中的自定义代理.已启用
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
启用定制代理作为子代理。

---
名称: my-internal-agent
用户可调用: false
---

此代理只能作为子代理调用

以下示例显示了一个只能调用的智能体修改搜索子代理:

---
名称: Foo
工具: ['代理']
Agents: ['修改', '搜索']
---

该代理只能使用修改和搜索子代理。

支持多种模型的自定义代理

自定义代理 现在可以在头部前段指定多个模型。列表中第一个可用的模型将被使用,如果首选模型不可用,将提供回退选项。

---
名称: my-agent
模型: ['Claude Sonnet 4.5 ( copilot )', 'GPT-5 ( copilot )']
---

该代理更喜欢Claude Sonnet 4.5,但如果不可用,则回退到GPT-5。

聊天定制诊断

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

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

截图显示了聊天自定义诊断视图,其中加载了代理、提示、说明和技能。

语言模型编辑器

VS Code 中的语言模型编辑器为管理聊天中使用的语言模型提供了集中界面。这一版本,我们进一步提升了这一体验:

  • 每个提供者多个配置:为同一模型提供者创建多个配置,每个配置使用不同的 API 密钥。这有助于将个人账户和工作账户分开,或者为不同的项目使用不同的 API 密钥。例如,您可能会有一个使用个人 API 密钥的 Gemini 配置,另一个使用团队的 API 密钥的配置。

    截图显示了多个具有不同配置的Gemini组。

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

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

  • 其他用户界面改进:一些可用性改进,例如通过键盘切换模型可见性的切换,上下文菜单操作,和批量操作的多选。

  • 语言模型配置文件:模型配置现在存储在专用的chatLanguageModels.json文件。直接通过在语言模型编辑器右上角选择文件图标来打开此文件。这使您能够轻松查看、编辑或共享您的模型配置。

    截图显示在语言模型编辑器中打开配置文件的文件图标。

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

语言模型配置

设置

github.copilot.chat.implementAgent.model
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
inlineChat默认模型
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

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

    您现在可以为计划代理的实施步骤配置默认语言模型

    github.copilot.chat.implementAgent.model
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    )。将设置留空以使用默认模型。模型值应为符合格式的合格模型名称型号名称(供应商)例如GPT-5(Copilot)克劳德·松内特 4.5 (Copilot)输入:.

    截图显示了设置编辑器,其中包含github.copilot.chat.implementAgent.model设置。

  • 默认的内联聊天模型

    默认情况下,编辑器内联聊天使用所选供应商的默认模型。这使扩展能够提供专门针对内联聊天场景的模型。

    如果您更喜欢使用其他型号,您可以在此进行配置

    inlineChat默认模型
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    设置。此设置允许您选择一个一致的默认语言模型用于内联聊天,这样每次您开始一个内联聊天会话时,系统会自动使用您首选的模型,而无需每次都手动选择。

    截图显示了设置编辑器,其中包含 inlineChat.defaultModel 设置和可用语言模型的下拉列表。

  • 指定语言模型用于代理转交

    代理移交现在支持可选的模型参数,允许您在转换执行时指定要使用的语言模型。这使您能够直接从您的代理工作流程中控制特定模型的使用。.agent.md文件。

    型号值应为格式正确的合格型号名称型号名称(供应商)例如GPT-5(Copilot)克劳德·松内特 4.5 (Copilot)输入:.

    截图显示在代理文件中指定模型参数的代理切换配置。

特工自定义技能(实验性)

设置

聊天.代理自定义技能.启用
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

一个新的代理定制技能教导代理如何帮助你定制你的AI编码体验。当你询问有关创建自定义代理、指令、提示或技能的问题时,代理会自动加载此技能以提供准确的指导。

该技能涵盖:

  • 自定义代理 - 创建.agent.md包含工具、模型和行为的 frontmatter 配置文件
  • 自定义说明 - 写作.说明.md文件申请用于特定上下文的指导模式
  • 提示文件 - 构建可重用的提示.md常见任务模板
  • 技能 - 包装领域专业知识 SKILL.md文件
  • 工作区说明 - 在项目中设置统一规范Copilot指令.mdAGENTS.md

代理扩展性

此版本增加了对Claude代理的支持,使您可以直接利用Anthropic的代理SDK,MCP应用程序可以在聊天中呈现交互式可视化,并且新的提供商功能使您可以以更多种方式扩展代理的功能。

克劳德兼容性

如果你同时使用 VS Code 和 Claude,你不再需要维护单独的配置文件。VS Code 现在可以直接读取 Claude 配置文件,因此你的代理、技能、指令和挂钩可以在两个工具之间共享,无需重复。

VS Code 检测到以下 Claude 文件位置:

  • 说明克劳德.md在你的工作区根目录中的文件,.claude/CLAUDE.md,和~/.claude/CLAUDE.mdVS Code 也从该目录读取指令文件.claude/规则 文件夹。请参阅 自定义说明 了解详情。
  • Agent.md文件在.claude/agents 文件夹,遵循 Claude 子代理格式。请参阅 自定义代理文件位置 了解详情。
  • 技能:技能定义在.claude/技能~/.claude/技能 文件夹。请参阅 代理技能 了解详情。
  • 钩子:在中的钩子配置.claude/settings.json~/.claude/settings.json。请参阅代理挂钩了解详情。

这种兼容性适用于指令、代理、技能和挂钩,因此使用多个AI工具的团队可以共享一组配置文件。

代理编排

代理编排是一种强大的模式,用于构建复杂的AI工作流程,其中多个专业代理协作以实现共同目标。与其依赖一个代理来处理所有事情,编排将工作分布在专用代理上,每个代理都针对特定角色(如规划、实施、代码审查或研究)进行优化。

这种方法提供了几个关键优势:

  • 上下文效率:每个子代理在其自己的专用上下文Windows中操作,防止上下文溢出
  • 专业化:不同的代理可以使用为他们的任务优化的不同模型
  • 并行执行:独立任务可以在多个子代理之间并行运行

图表显示了一个由多个专业代理协作完成任务的编排系统。 图像来源 https://github.com/ShepAlderson/copilot-orchestra@ShepAlderson

VS Code 提供了所有设置代理编排流程的构建块,包括 自定义代理子代理,以及对 如何调用代理的额外控制。

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

  • Copilot管弦乐队 - 一个具有“指挥”的多智能体系统,通过完整的开发周期来协调规划、实施和代码审查子智能体

  • GitHub Copilot Atlas - 一个扩展的编排系统,拥有专门的代理,如“Prometheus”用于规划,“Oracle”用于研究,“Sisyphus”用于实施,“Explorer”用于快速代码库发现

克劳德特工(预览)

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

截图显示在会话目标选择器中,Claude 代理位于本地、背景和云旁边。

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

该集成正在积极开发中,我们计划在未来几个月内添加更多功能和改进。同时,我们非常希望听到您在 VS Code 中如何使用 Claude Agents 以及您希望看到哪些下一个功能的反馈。请不要犹豫,在 GitHub 上提供反馈

人类模型

设置

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 模型支持进行了多项改进:

  • 带穿插思考的消息 API:Anthropic 模型现在使用 消息 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 应用程序允许服务器在客户端显示丰富、交互式的用户界面。

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

截图显示由MCP应用程序生成的交互式火焰图可视化。

支持为MCP软件包定制注册表基础URL

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

代理优化

更智能的上下文,更快的搜索,更好的结果。借助 Copilot Memory,智能体可以在会话之间记住重要信息。外部索引将快速语义搜索带给非 GitHub 工作区。并且智能体现在可以在需要时,在您的许可下读取工作区外的文件。

Copilot记忆(预览)

设置

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

如果你发现自己反复向AI提供相同的上下文,现在你可以使用Copilot Memory来存储和回忆重要的信息,跨越多个会话。

通过新的记忆工具,您的聊天现在可以直接访问和更新 Copilot Memory。这使代理可以从您存储的记忆中检索相关上下文,并在您工作时保存新的知识。通过设置启用记忆工具

github.copilot.chat.copilotMemory.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
输入:.

记忆工具应能识别何时将特定信息存储为记忆(“在不确定时总是问澄清问题”),以及何时检索相关记忆以帮助其回应。

截图显示聊天中使用记忆工具,列出已存储的记忆,并在不确定时总是询问澄清问题。

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

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

设置

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

不在GitHub托管的工作区现在可以远程索引,以加快使用代理时的代码搜索。当您使用#代码库在非GitHub工作区中,VS Code构建了代码库的索引,使快速语义搜索成为可能,提供了与GitHub托管仓库相同的强大代码搜索功能。

该索引基于首次请求构建,构建时间取决于代码库的大小和您的网络连接。首次请求可能需要几分钟时间。后续请求会更快,因为它们使用缓存的索引。当您修改和保存文件时,索引会自动更新。

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

读取工作区外的文件

代理现在可以在您的许可下读取文件和列出当前工作区之外的目录。以前,访问请求会自动被拒绝。现在,当代理需要访问外部文件或文件夹时,VS Code 会提示您允许或拒绝该请求。

您也可以允许整个会话的访问,以避免在相同文件夹下未来的读取操作中重复提示。

截图显示一个提示,要求用户允许或拒绝访问工作区外的文件。

性能改进

在这一版本中,我们进行了许多性能改进:

  • 大型聊天:现在,长时间的聊天对话应该感觉更流畅地打开和滚动。我们还优化了如何持久化对话,使其更可靠。

  • 并行依赖任务:通过代理运行任务时,依赖任务现在是并行处理而不是串行处理。这可以显著减少具有多个独立构建步骤的项目的构建时间。查看我们的微软/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.终端.沙盒.网络
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

代理帐户具有与您的用户帐户相同的权限。为了帮助减轻与代理执行终端命令相关的风险,我们引入了实验性的终端沙盒功能。终端沙盒将文件系统访问限制在仅您的工作区文件夹,并且还允许您仅限制对受信任域的网络访问。

注意:目前终端沙盒化仅在 macOS 和 Linux 上支持。在 Windows 上,沙盒设置没有效果。

要启用终端沙盒,请设置

chat.tools.terminal.sandbox.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置为输入:.

启用沙盒时:

  • 命令默认具有对当前工作目录的读写访问权限
  • 命令在没有标准确认对话框的情况下运行,因为它们在一个受控环境中操作
  • 默认情况下,所有域的网络访问都被阻止。

了解更多关于配置终端沙盒的详细信息,请参阅我们的文档。

终端工具生命周期改进

在此次发布中,为了帮助解决与不正确背景终端行为相关的问题,进行了几次更改:

  • 您现在可以手动将终端工具调用推到后台,让代理可以继续执行其他工作。

    截图显示带有播放图标的按钮,允许代理在后台继续执行该命令。

  • 一个新的超时属性是当调用终端工具时,代理需要填写的。其中0表示没有超时。这为在发生意外情况时将控制权交还给代理提供了额外的出口。

  • 新的等待终端工具使代理能够等待后台终端完成,这还需要超时财产。如果该模型利用此工具,预期是它可以防止回显 "成功"睡觉以前用于等待后台命令完成的调用。

  • 新的杀死终端该工具使代理能够杀死后台终端以清理自身。这旨在防止代理有时通过杀死进程以间接方式实现相同目的,例如当它想要停止一个正在进行的老的服务器命令时。

  • 关于当前工作目录如何工作的几项指令更改,因为活动的非后台终端总是保留当前工作目录,而后台终端总是从工作区目录开始。

终端自动批准

设置

chat.tools.terminal.enableAutoApprove
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
组织

以下命令在终端自动批准启用时默认自动批准(

chat.tools.terminal.enableAutoApprove
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
组织

  • 设置位置
  • 目录
  • xxd- 标志和一个输入文件
  • Docker- 所有安全子命令
  • npm纱线pnpm- 所有安全子命令

终端改进

一个更流畅、更强大的终端。聊天中的终端命令现在显示更丰富的细节,包括语法高亮和工作目录。Kitty 键盘协议支持改进了终端应用程序中的按键处理,并且新的选项允许您自定义粘性滚动并使用终端在受限的工作区中。

选择性地忽略粘性滚动

设置

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

一些命令在以前出现时,当这种行为不受欢迎时,会出现在粘性滚动中,例如像 清除从这个版本开始,你可以自定义哪些命令被忽略,并且它已经包含了一些常见的代理CLIs(在普通缓冲区中运行的那些),例如Copilot克劳德法典,和双子座输入:.

移除 winpty 支持

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

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

设置

终端.集成.允许在不受信任的工作区中
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

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

新的VT功能

设置

终端.集成.启用Kitty键盘协议
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
(实验性)

Kitty键盘协议已经实现,并将在本次发布中逐步推出到稳定版本。该功能旨在解决传统按键编码的一系列限制,具体包括:

  • 允许终端编码更多的修饰键和多个修饰键,不仅仅是alt和ctrl
  • 处理按下和释放事件,以及重复按下(按住一个键)
  • 消除许多按键的歧义,例如 Escape 通常发送 欧洲安全与合作会议输入:输入:\x1b) 序列,这同时也是所有转义序列的开始。

这需要终端中运行的程序支持该协议,并在运行时请求启用它。您会立即看到的一个重要好处是,在某些代理CLIs中,按shift+enter应该可以正常工作,无需运行像/终端设置输入:.

设置

终端.集成.启用Win32输入模式
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
(实验性)

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

其他:

编码和编辑器

小的改进,积少成多。双击以选择括号或字符串内容。自定义括号匹配颜色。将代码片段限制到特定文件。正确检测TypeScript shebangs。这些有针对性的改进使日常编辑更加顺畅。

括号匹配前景色

您现在可以使用新的功能自定义匹配括号的文本颜色编辑器括号匹配.前景颜色主题令牌。以前,您只能自定义背景编辑器括号匹配背景) 和边界 (编辑器括号匹配.边框) 颜色。新的颜色代币可以通过更改实际括号字符的颜色,使匹配的括号更加清晰地突出显示。

设置默认为,意味着括号继承其正常文本颜色。在你的 中配置它settings.json工作台颜色定制输入:

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

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

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

TypeScript的重命名建议

TypeScript的重命名建议现在也可以在覆盖现有声明时使用。在下面的视频中,用户更改了声明let index = 0;进入let chunkIndex = 0;通过输入新的标识符名称而不是使用重命名重构。 下一个编辑建议仍然建议重命名索引块索引 使用 Shift+Tab.

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

改进了幽灵文本的可见性

内联建议(幽灵文本)现在在显示少于三个连续非空白字符的短建议时显示虚线下划线。这个视觉指示使在编辑器中区分幽灵文本和实际代码变得更加容易。这在建议是一个单个字符(例如)这可能会与现有的代码混淆。

截图显示带有虚线下划线的建议文本。

片段文件模式

现在你可以通过 来控制片段出现在哪些文件中包含排除 glob 模式。使用此功能将片段限制在特定文件或项目上下文中,防止它们出现在不相关的文件中。

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

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

模式匹配绝对文件路径,如果包含路径分隔符,否则仅匹配文件名。两者包含排除可以是一个模式或一个模式数组。使用排除为了防止片段出现在特定文件中,即使在这种情况下它们本应符合片段的语言范围。

改进的 shebang 语言检测

VS Code 现在改进了 shebang 语言检测支持,特别是对于使用以下内容的文件/usr/bin/env带有额外的标志。像这样的带有 shebang 的文件#!/usr/bin/env -S deno -A现在可以正确地检测到这些文件是 TypeScript。这使得使用 Deno 或 Bun 等运行时编写的 TypeScript 脚本能够获得更好的语言支持,即使没有输入:.ts文件扩展名。

工作台和生产力

测试、调试和发布无需切换Windows。新的集成浏览器让您可以在 VS Code 中直接预览和检查本地主机网站,支持 DevTools 和身份验证。

集成浏览器(预览版)

设置

工作台.浏览器.打开本地链接
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
简单浏览器使用集成浏览器
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
livePreview.使用集成浏览器
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

VS Code 长期以来一直包括一个简单的浏览器,用于打开基本的网页,例如开发过程中的 localhost 网站。然而,由于它依赖于 iframes,因此存在一些限制:无法进行网站身份验证,也无法打开像 Google、GitHub 和 Stack Overflow 这样的常见网站。

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

亮点包括:

  • 持久化数据存储 具有可配置的作用域(全局、工作区或内存中/临时)
  • 将元素添加到聊天:选择一个元素并发送给代理以获取帮助
  • 功能齐全的开发者工具
  • 键盘快捷键
  • 在页面中查找

还有更多...

要试用它,请运行浏览器:打开集成浏览器命令。如果您想更广泛地使用集成浏览器,您可以启用

工作台.浏览器.打开本地链接
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
直接在新浏览器中打开本地链接(如上所示)。

您还可以配置集成浏览器,用其他浏览器替换简单浏览器

简单浏览器使用集成浏览器
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置,或用于Live Preview扩展的
livePreview.使用集成浏览器
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。

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

设置

工作台.编辑器.恢复编辑器
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

之前,VS Code 在重新打开一个工作区时会始终恢复所有打开的编辑器。有了新的

工作台.编辑器.恢复编辑器
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置中,您可以控制是否在打开工作区时恢复编辑器。当该设置被禁用时,VS Code 会以干净的编辑器区域启动,而不是重新打开您上一次会话中的标签页。

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

高级设置

设置

工作台.设置.始终显示高级设置
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

您现在可以配置 VS Code,使其在设置编辑器中始终显示高级设置,而无需应用@标签:高级每次过滤。启用

工作台.设置.始终显示高级设置
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
将设置默认显示高级设置。

通过拖放导入配置文件

您现在可以通过拖放导入设置配置文件.代码-个人资料将文件拖放到 VS Code Windows中。这提供了与拖放一个文件类似的体验。代码工作区文件,使分享和应用配置文件更加容易。

输出频道过滤改进

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

按来源筛选问题

问题面板现在支持按诊断的来源或所有者进行过滤。当您只想关注特定类型的问题,例如构建错误,同时临时隐藏来自拼写检查器或代码检查器等其他来源的诊断时,这非常有用。例如,输入来源:ts在过滤框中输入,仅显示 TypeScript 诊断,或使用!来源:c拼写隐藏所有拼写检查警告。

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

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

在git工作树中包含附加文件(实验性)

设置

git工作树包含文件
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

在使用背景代理时,会创建一个git工作树以隔离更改。使用新的

git工作树包含文件
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置中,您可以在工作树创建后指定附加文件或 glob 模式,这些文件或模式会被复制到工作树文件夹中。这在您的项目依赖于被 git 忽略且不包含在 git 仓库中的文件时非常有用(例如:本地配置文件或构建产物)。

在 SCM 视图中折叠所有操作

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

Git: 删除命令

一个新的Git: 删除命令可以让你运行git 移除从命令面板直接对当前打开的文件进行操作。这将文件从工作目录和Git索引中移除,然后关闭编辑器。这为常规文件删除提供了一种更安全的替代方法,因为git 移除仅在没有未提交更改的文件时成功。

禁用指责编辑器装饰悬停

设置

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

您现在可以禁用在编辑器中将鼠标移动到内联Git责备装饰上时出现的悬停弹出Windows。设置

git.blame.editorDecoration.hoverEnabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
保持内联责备注释可见,同时防止悬停弹出Windows出现。如果您发现弹出Windows分散注意力,但仍希望快速查看责备信息,这很有用。

自动任务默认禁用

设置

任务.允许自动任务
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

为了提高安全性并防止意外执行在定义中的任务任务.json当打开一个工作区时,

任务.允许自动任务
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置现在默认为而不是输入:.

要恢复以前的行为,请设置

任务.允许自动任务
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
在您的用户设置中。

无障碍改进

动态流式传输聊天响应和无障碍视图中的思考

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

在可访问视图中稳定的光标位置

当内容在无障碍视图中更新时(例如在流式传输聊天响应或使用终端时),光标位置现在保持稳定。这防止了可能中断屏幕阅读器导航的焦点变化,使您能够在新内容附加时以自己的速度阅读。

ARIA警报用于新的聊天会话

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

改进了无障碍视图中的工具调用信息

在可访问视图中,工具调用现在包括更完整的信息,使屏幕阅读器用户更容易理解 AI 代理正在执行哪些操作。

宣布光标位置命令

屏幕阅读器用户现在可以快速访问并收听他们当前的行和列位置,使用新的宣布光标位置 使用 Ctrl/Cmd+Alt+Shift+G

企业改进

了解更多关于VS Code企业功能的信息,请参阅我们的文档。

改进的 GitHub 组织策略执行

此版本包括对 GitHub 组织策略执行可靠性的改进。当登录多个帐户时,策略现在会根据首选的 GitHub Copilot 帐户正确应用。此外,即使在启动时暂时出现网络不可用情况,组织策略现在也能一致地执行,确保无论连接状态如何,管理的限制仍然有效。

扩展和API

新的扩展作者构建模块。最终确定的快速输入按钮API为您提供更多输入位置和切换状态的控制权。提议的API使聊天模型提供商能够声明配置模式,并且新的聊天资源提供商使扩展能够贡献动态提示、代理和技能。

GitHub 拉取请求

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

查看0.128.0版本的更新日志,了解此次发布中的所有内容。

最终确定了快速输入按钮位置的API

当你设置按钮物业在快速选择输入框, 现在你可以使用新的 来指定每个按钮的位置位置属性。这允许你将按钮放置在以下位置之一:

  • 标题快速输入的顶部标题区域(未指定时默认)
  • 内联渲染到输入框右侧
  • 输入显示在右侧输入框内

最终确定了快速输入按钮切换API

您现在可以通过设置来在快速输入中创建切换按钮切换属性到{ 已选中: 布尔值 }快速输入按钮. 切换按钮保持开/关状态,您可以使用新的读取和更新该状态已检查属性。这对于具有两种状态的操作很有用,例如启用或禁用功能、应用过滤器或切换模式。

提议的API

聊天模型提供商配置

我们引入了一个新的提议API,该API使聊天模型提供者扩展能够通过配置要求来声明其需求。语言模型聊天提供者贡献点。通过这个 API,VS Code 为用户提供了内置的界面来输入他们的配置(例如 API 密钥和模型设置),并通过 API 将此配置传递给扩展。

这种方法将替换现有的管理命令在未来的版本中,扩展不再通过命令来实现其自己的配置用户界面,而是可以声明其配置模式,让 VS Code 处理用户体验。

VS Code 为基本属性类型(例如)提供了原生的用户界面控件字符串数字,和布尔对于像这样的复杂类型数组对象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"
            }
          },
          "必填": ["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;
    // 使用配置进行 API 调用...
  }
});

秘密配置模式中的 property 表示一个字段应该被安全存储并在用户界面中进行掩码处理。VS Code 会自动处理这些字段的安全存储。

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

聊天提示文件 API

我们引入了一个新的提议 API,使扩展能够贡献动态聊天资源。通过这个 API,扩展可以编程地提供提示文件、自定义代理、说明和技能,这些内容会显示在用户定义的文件旁边,从而实现根据项目上下文生成提示或从外部来源拉取资源等场景。

该 API 引入了一个聊天资源每个资源类型的接口和提供者注册方法:

// 注册一个技能提供者
vscode.chat.registerSkillProvider({
  onDidChangeSkills: onDidChangeEvent,
  provideSkills(context, token): ChatResource[] {
    return [{ uri: vscode.Uri.parse('my-extension:/skills/debugging/SKILL.md') }];
  }
});

// 对于其他资源类型,存在类似的注册方法:
// - registerCustomAgentProvider() 用于 .agent.md 文件
// - registerInstructionsProvider() 用于 .instructions.md 文件
// - registerPromptFileProvider() 用于 .prompt.md 文件

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

聊天项目控制器API

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

在这一迭代中,我们引入了一个基于控制器的 API,取代了之前的基于提供者模型。控制器 API 让扩展可以推送更改到 VS Code,而不是让 VS Code 从扩展中拉取。它还使得聊天会话项目成为管理对象,因此您只需更新其属性即可推送更改。

这是一个简短的示例,展示了如何使用此 API:

导入 * 作为 vscode 来自 'vscode';

导出 函数 激活(上下文: vscode.扩展上下文) {
  // 创建一个新的控制器,具有唯一的ID
  const 控制器 = vscode.聊天.创建聊天会话项控制器(
    '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);
    }
  );

  // 我们也可以监听聊天会话项目归档状态的变化
  controller.onDidChangeChatSessionItemState(item => {
    console.log(`会话 ${item.label} 归档: ${item.archived}`);
  });
}

Chat输出渲染器API更新

我们继续致力于聊天输出渲染器API。该API允许扩展程序使用webviews在聊天响应中渲染自定义交互内容。

除了修复一些错误之外,我们现在还传递渲染器作为聊天输出网页视图而不是只传递一个网页视图直接。这使得扩展可以监控WebView何时被销毁,以便清理任何相关的资源。当WebView再次变得可见时,VS Code将重新创建它。

查看聊天输出渲染器示例扩展了解如何使用此 API 的详细信息。

便携式模式检测

一个新的env.isAppPortable 属性允许扩展检测 VS Code 是否在 便携模式 中运行。当应用程序从包含 数据目录,允许进行自包含的安装,不会在主机系统上留下痕迹。

如果 (vscode.env.isAppPortable) {
  // 正在以便携模式运行 - 相应地调整行为
}

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


工程

macOS的DMG镜像文件

VS Code 现在为 macOS 提供 DMG 镜像,以提供原生的拖放安装体验。这些镜像适用于 VS Code 网站 上支持的所有架构。

截图显示macOS DMG镜像已挂载。

Windows 11上下文菜单集成

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

截图显示 VS Code 在 Windows 11 上下文菜单中。

重新设计的Windows安装布局

我们重新设计了Windows上的安装布局,以解决与应用内更新相关的长期可靠性问题。最显著的是,以前的版本执行原子文件替换操作,如果这些操作被系统关闭、用户干预或其他意外事件中断,可能会失败,有时会导致VS Code处于损坏状态。新的实现受到了Chromium更新客户端的启发,并使用了带版本的包路径。

避免对macOS进行连续更新

如果在之前更新尚未应用的情况下有新的更新可用,VS Code 现在会取消之前的更新并继续应用新的更新,而不是强制用户两次重启应用程序。

Copilot扩展已弃用

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

截图显示了已弃用的 Copilot 扩展和正在使用的 Copilot Chat 扩展。

从npm包中消费codicons

Codicons 现在通过 被消耗@vscode/codiconsnpm 包不再直接捆绑在 VS Code 代码库中,而是作为构建过程的一部分被纳入。

重要修复

  • vscode#276558 - 修复了按住修饰键时悬停不立即触发的问题编辑器悬停启用设置为在按下修饰键时
  • vscode#58814 - 将文件描述符泄漏到终端进程

谢谢

问题跟踪

对我们的问题跟踪的贡献:

拉取请求

贡献于Visual Studio Code输入:

贡献于vscode- copilot-聊天输入:

贡献于vscode资源管理器命令输入:

贡献于vscode-js调试输入:

贡献于vscode- Python- 环境输入:

贡献于vscode-视窗注册表输入:

贡献于语言服务器协议输入:

贡献于Python 环境工具输入:


我们非常感谢人们在新功能准备好后尽快尝试,所以经常查看这里并了解最新动态。

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