2026年1月 (版本 1.109)
发布日期:2026年2月4日
更新 1.109.1:此更新解决了这些 安全问题。
更新 1.109.2:此更新解决了 聊天 中的一个问题。
更新 1.109.3:此更新解决了这些 问题,并引入了几个值得注意的功能
- 消息引导和排队:在请求仍在运行时发送后续消息
- Agent 钩子:在关键 Agent 生命周期点运行自定义 shell 命令
- Claude 兼容性:直接在 VS Code 中重用您的 Claude 配置文件
- 将技能用作斜杠命令:按需从聊天中调用 Agent 技能
更新 1.109.4:此更新解决了这些 问题。
更新 1.109.5:此更新解决了这些 问题,并添加了这些功能以改进 后台 Agent
- 支持斜杠命令,包括提示文件、钩子和技能
- 现在可以重命名后台 Agent 会话
- Kitty 键盘支持现在对所有用户可用
下载:Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
欢迎使用 2026 年 1 月版本的 Visual Studio Code。在此版本中,我们进一步发展 VS Code,使其成为 多 Agent 开发的中心。
-
聊天 UX - 聊天体验更好、更流畅,具有更快的流式传输、改进的推理结果和全新的内联聊天编辑器
-
Agent 会话管理 - 现在更容易将任务委派给本地、后台和云端的 Agent,并在需要时随时介入
-
Agent 定制 - 使用 Agent 编排构建您自己的工作流程,并通过 Agent 技能和全组织范围的定制获得一致的结果
-
Agent 可扩展性 - 通过 Claude Agent 支持和新的 Anthropic 模型功能重用您的知识,并享受与 MCP Apps 丰富的聊天互动
-
Agent 优化 - Agent 使用 Copilot Memory 更智能地工作,并借助外部索引体验更快的代码搜索
-
Agent 安全性和信任 - 借助沙盒和有效的自动批准规则,您可以放心地运行终端命令
-
工作台和生产力 - 使用新的集成浏览器,无需离开编辑器即可测试您的应用程序
-
终端增强 - 提高生活质量的改进,使您的终端体验更流畅、更可靠
-
编码和编辑器 - 几个有影响力的改进,使日常编码更流畅
-
扩展和 API - 为扩展作者提供构建更丰富体验的新功能
编码愉快!
观看我们的 VS Code 1.109 版本亮点视频,了解这些功能!
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新页面。
Insiders:想尽快尝试新功能?
您可以下载每晚的 Insiders 构建版本,并尽快尝试最新更新。
下载 Insiders
即将举行的活动
Agent 会话日
加入我们参加 Agent 会话日,观看这些最新更新的现场演示! 了解 VS Code 如何发展成为统一的 Agent UX,同时保持其开放性、可扩展性和开发人员选择的核心价值。

聊天 UX
更快的响应、更清晰的推理和更少的摩擦。此版本带来了显示正在进行中的进度的流式传输改进、不会妨碍您的全新内联聊天以及更好的模型思考可见性,让您在 AI 工作时保持专注。
消息引导和排队(实验性)
设置:
更新 1.109.3:在处理较长的任务时,您通常会在当前任务完成之前想到下一个任务,或者注意到 Agent 走错了方向。 以前,您必须等待响应完成或完全取消它。 现在,您可以在请求仍在运行时发送后续消息。

当请求正在进行时,“发送”按钮会更改为带有三个选项的下拉菜单
- 添加到队列:您的消息将等待并在当前响应完成后自动发送。
- 使用消息引导:发出信号,指示当前请求在完成活动工具执行后放弃,然后立即处理您的新消息。 使用此选项在 Agent 走错方向时进行重定向。
- 停止并发送:完全取消当前请求并立即发送您的新消息。
当您有多个待处理消息时,拖放它们以更改处理顺序。
使用
steer(默认值)或 queue。
了解更多关于 消息引导和排队 的文档。
Anthropic 模型现在显示思考标记
设置:
许多用户正在 VS Code 中使用 Anthropic 的 Claude 模型。 这些模型现在支持思考标记,以便让您更清楚地了解模型的推理过程。
在此版本中,我们增强了聊天 UX,以便更有效地显示思考标记。 更多信息,更少的噪音!
-
选择详细或紧凑的思考风格以适应您的偏好 (
chat.thinking.style). -
您将看到模型的思考过程与工具调用和响应交错 (
chat.agent.thinking.terminalTools). -
失败的工具调用会自动展开以显示更多上下文 (
chat.tools.autoExpandFailures). -
各种视觉增强功能,使跟踪模型活动更直观,例如可滚动的思考内容和闪烁动画。
聊天响应中的 Mermaid 图表
聊天响应现在可以使用 renderMermaidDiagram 工具渲染交互式 Mermaid 图表。 这让模型可以使用流程图、序列图和其他可视化工具以视觉方式分解复杂概念。 图表是交互式的,因此您可以平移和缩放以详细探索它们,或在全尺寸编辑器中打开它们以更轻松地查看。
使用以下控件与 Mermaid 图表交互
- 平移和缩放 - 按住 Alt/Option 并使用鼠标滚轮缩放,或在触控板上捏合缩放。 按住 Alt/Option 并拖动以在图表周围平移。
- 单击缩放 - 按住 Alt/Option 并单击以放大。 添加 Shift 以缩小。
- 在编辑器中打开 - 使用该按钮在全尺寸编辑器中打开图表,以便更好地查看更大的图表。
- 复制源代码 - 右键单击图表并选择
复制图表源代码以复制其 Mermaid 源代码。

提问工具(实验性)
设置:
与其在不清楚的情况下做出假设,Agent 现在可以使用 askQuestions 工具在聊天对话期间提出澄清问题。 它会在聊天中直接呈现一个或多个问题,并带有单/多选选项、自由文本输入和突出显示的推荐答案以供快速决策。

使用键盘使用 Up 和 Down 在答案之间导航,或键入与相应答案匹配的数字(使用 Escape 跳过剩余问题)。
我们已经改进了我们的 Plan Agent,以便也利用 askQuestions 工具,以确保您的实施计划与您的期望相符!
计划 Agent
内置的 Plan Agent 允许您在开始编码之前创建一个结构化的实施计划。 这有助于确保 AI 了解任务要求并生成满足您期望的高质量代码。
-
Plan Agent 现在遵循结构化的 4 阶段迭代工作流程,从而生成更高质量的实施计划
- 发现 - 自主探索您的代码库,搜索相关文件并了解项目结构。
- 对齐 - 在承诺计划之前暂停以提出澄清问题,及早发现歧义。
- 设计 - 制定全面的实施计划,其中包含清晰的步骤、文件位置和代码片段。
- 完善 - 添加验证标准并记录在规划期间做出的决策。
-
现在可以通过在聊天中键入
/plan后跟您的任务描述来调用 Plan Agent。 这为规划复杂任务提供了一个快速入口点,然后再切换到实施。
上下文窗口详细信息
为了跟踪模型如何使用其上下文窗口,您现在可以在聊天输入区域看到上下文窗口指示器。将鼠标悬停在指示器上,以查看按类别划分的令牌使用情况明细。

内联聊天 UX 改进 (预览)
设置:
我们继续改进内联聊天体验,并有两个预览功能
- 一种提示,使在选择文本时触发内联聊天更容易 (inlineChat.affordance)
- 一种轻量级且易于使用的上下文渲染 (inlineChat.renderMode)
模型选择器中的模型描述
当鼠标悬停或键盘聚焦模型选择器中的某个模型时,您现在可以一目了然地查看其详细信息。

终端命令输出
更丰富的命令详情
为了更清楚地了解正在运行的命令,终端工具现在会显示其他详细信息
-
内联 Node、Python 和 Ruby 的语法高亮显示

-
工作目录

-
命令意图的描述

输出流
终端输出现在会自动展开,当命令需要时间执行时,让您立即了解正在发生的事情。快速命令保持折叠状态,以减少视觉干扰。
交互式输入
嵌入式终端现在完全可交互。您可以将焦点放在终端上并直接键入,这在命令提示确认或需要用户输入时非常有用。光标现在可见,清楚地表明终端已准备好接受输入。
删除所有隐藏终端
终端面板中的“**隐藏终端**”项目现在包含一个删除图标,可使用一个操作清除所有隐藏终端。

告诉我们您对我们新主题的看法 (实验)
我们正在开发新的实验性 `VS Code Light` 和 `VS Code Dark` 主题,以提高专注度,并通过使用阴影和透明度为 UI 带来提升和轻盈感。这些主题仍在开发中。
请通过在 vscode 仓库 中提供反馈,告诉我们哪些有效,以及我们可以改进的地方。
VS Code Dark (实验):

VS Code Light (实验):

编辑模式现在已隐藏 (实验)
设置:
编辑模式现在默认情况下从聊天中的代理下拉菜单中隐藏。使用代理提供了编辑模式功能的超集,并为代码编辑任务产生更好的结果。
如果您的组织已禁用代理模式,编辑模式仍将显示在代理下拉菜单中。您还可以通过禁用 手动恢复编辑模式。
代理会话管理
委派、监控和切换,而不会失去焦点。您现在可以在本地、后台和云环境中并行运行多个代理会话,所有这些都来自单个统一视图。在会话之间跳转,一目了然地跟踪进度,让代理独立工作,同时保持您的工作效率。
在代理类型之间切换和委派
VS Code 使您可以在 不同环境(在 VS Code 中本地、在后台、在云中或与其他代理提供商)中启动代理会话变得容易。我们通过在聊天输入区域中引入新的会话类型选择器,使在这些不同的代理类型之间切换变得更容易。
选择器有两个主要用途
- 选择您想要启动的代理会话类型
- 将正在进行的会话移交给不同的代理类型(例如,在本地计划任务并在云中实施)

提示:我们添加了一个新的 `workbench.action.chat.newLocalChat` 命令,用于创建新的本地聊天会话。将此命令绑定到键盘快捷方式,以获得更快的访问速度。
跟踪代理会话
在与多个代理一起工作时,尤其是在多个并行会话跨越不同环境时,跟踪您的活动代理会话至关重要。
代理会话视图
我们进一步改进了 VS Code 中的代理会话视图,以使这项任务更容易
- 在并排显示时调整会话列表的大小
- 多选会话以批量执行操作
- 改进堆叠视图,以提高导航会话和应用筛选器的效率
代理状态指示器
设置:
在您有多个活动会话的情况下,快速了解哪些会话需要您的关注非常重要。我们在 VS Code 命令中心添加了一个代理状态指示器 (
该指示器显示不同类型的状态信息:正在进行中、未读和需要您关注的会话。选择指示器以快速打开和筛选会话列表。

我们还更新了命令中心中的聊天按钮,以让您配置单击时的行为 (
子智能体
设置:
代理可以使用 子代理 运行子任务,以将复杂任务分解为更小的部分。子代理的好处是它们在自己的专用上下文窗口中运行,并且不会增加主代理的上下文窗口大小。
子代理现在可以并行运行,这可以显著加快可以分解为独立任务的任务的速度。

为了提供更多关于不同子代理正在做什么的可见性,聊天对话现在显示诸如它正在执行的任务、用于子代理的自定义代理以及当前使用的工具等详细信息。您可以展开子代理信息以显示它正在执行的完整详细信息,包括提供的完整初始提示以及它返回的结果。
搜索子代理 (实验)
设置:
搜索您的代码库通常是一项涉及多次迭代的任务,并且会迅速增加您的上下文窗口限制。我们添加了对搜索子代理的支持,该子代理在隔离的代理循环中运行,使其能够迭代地完善搜索、尝试多个查询并探索工作区的不同部分。
这提高了复杂查询的搜索结果质量,因为单个搜索不足。它还保留了主代理的上下文窗口,并使其能够在搜索子代理工作时继续工作。
云智能体
当您启动新的 云代理 会话时,您现在有更多选项来配置会话。您可以选择不同的模型,使用您的自定义代理之一,或选择可用的合作伙伴代理(如果可用)。
-
云代理的模型选择

-
第三方编码代理 (预览)
如果您已将第三方编码代理(例如 Claude 和 Codex)配置为 GitHub Copilot 订阅的一部分,VS Code 会在选择云代理类型后显示这些选项。

了解有关 第三方编码代理的可用性和启用 的更多信息,请参阅 GitHub Changelog。
-
云代理的自定义代理
选择目标 GitHub 仓库默认分支中可用的 自定义代理。

-
多根工作区和空工作区改进
当处于多根工作区窗口或空工作区窗口中时,您现在可以选择用于云代理的文件夹。

-
检出始终显示
现在,在代理会话中,即使未安装 GitHub Pull Requests 扩展,也会显示 **Checkout** 选项。选择此操作时,如果需要,它将安装 GitHub Pull Requests,然后将其交给 GitHub Pull Requests 执行检出操作。
后台代理
为了与本地和云代理保持一致,我们对 后台代理 进行了多项改进
-
后台代理的自定义代理

-
将图像作为上下文附加

-
多根目录工作区改进
在多根目录工作区中,现在可以选择要在后台代理中使用的文件夹。

-
每个回合结束时自动提交
我们已更新后台代理循环,以便在每个回合结束时将更改提交到 Git 工作树。这使我们能够删除后台会话的“保留/撤销”操作,并简化工作集中显示的文件更改的方式。
-
/斜杠命令用于后台代理
-
重命名后台代理会话
更新 1.109.5:现在可以重命名后台代理会话,以便更轻松地跟踪它们。

代理会话欢迎页面(实验性)
设置:
最后,我们正在试验一个新欢迎页面,需要您的帮助使其更加完善。当您同时运行多个代理时,跟踪最近的会话非常重要。新的欢迎页面将您的代理会话置于最显眼的位置。

通过设置 将欢迎页面设置为您的启动编辑器
agentSessionsWelcomePage。请告诉我们您的想法,并通过 vscode 仓库 向我们发送反馈!
代理自定义
塑造 AI 与您的代码库交互的方式,并在您的团队中共享它。代理技能现在允许您将领域专业知识打包到可重用的工作流程中,组织范围内的指令可确保一致性,而新的控件可让您对代理的调用方式和时间进行细粒度控制。
代理钩子(预览版)
设置:
更新 1.109.3:钩子允许您在代理会话期间的关键生命周期点执行自定义 shell 命令。与指导代理行为的指令或自定义提示不同,钩子以确定性的方式运行您的代码,并保证结果。使用它们来执行安全策略、自动化代码质量检查、创建审计跟踪或注入特定于项目的上下文。
VS Code 支持八个钩子事件,这些事件在会话期间的特定点触发,包括 PreToolUse 和 PostToolUse 用于拦截工具调用,SessionStart 和 Stop 用于会话生命周期,以及 SubagentStart 和 SubagentStop 用于跟踪嵌套代理的使用情况。

VS Code 使用与 Claude Code 和 Copilot CLI 相同的钩子格式,因此您可以跨工具重用现有的钩子配置。
要开始使用,请在聊天中使用 /hooks 斜杠命令来配置新的钩子,或手动创建钩子文件。例如,您可以在每次文件编辑后运行一个 lint 检查的 PreToolUse 钩子,或者在执行危险的终端命令之前阻止它们。
了解更多关于 代理钩子 的信息,请参阅文档。
将技能用作斜杠命令
代理技能现在作为聊天中的斜杠命令提供,与 提示文件 一起使用。在聊天输入中键入 / 以查看所有可用的技能和提示,并选择一个技能立即调用它。您可以在命令后添加额外的上下文,例如 /webapp-testing for the login page 或 /github-actions-debugging PR #42。
默认情况下,所有技能都出现在 / 菜单中。使用技能文件中的 user-invocable 和 disable-model-invocation 前置属性来控制每个技能的访问方式
- 将
user-invocable设置为false以隐藏菜单中的技能,同时仍然允许模型自动加载它。 - 将
disable-model-invocation设置为true以在菜单中显示技能,但防止模型自行加载它。
了解更多关于 将技能用作斜杠命令 的信息,请参阅文档。
使用 /init 设置您的 AI 工作区
有了 始终开启的自定义指令,例如 copilot-instructions.md 或 AGENTS.md,您可以确保 AI 使用您的项目约定来生成代码。
现在,您可以使用聊天中的 /init 斜杠命令来根据您的代码库生成或更新您的工作区指令,从而为您的项目做好初始指令准备。
当您运行 /init 时,代理会发现工作区中现有的 AI 约定(例如 copilot-instructions.md 或 AGENTS.md),分析您的项目结构和编码模式,并生成针对您的项目量身定制的全面工作区指令。/init 命令实现为贡献的提示文件,因此您可以修改基础提示来定制其行为。
代理技能正式发布
设置:
代理技能 现在正式发布并默认启用。技能提供专门的功能、领域知识和完善的工作流程,以帮助 AI 产生高质量的输出。每个技能文件夹包含针对特定领域的经过测试的指令,例如测试策略、API 设计或性能优化。
现在,您可以像管理提示文件、指令或自定义代理一样,在 VS Code 中管理技能。使用 **Chat: Configure Skills** 命令查看所有可用技能,或使用 **Chat: New Skill File** 在您的工作区或用户主目录中创建新技能。

默认情况下,VS Code 在您的工作区的 .github/skills 和 .claude/skills 文件夹中,或在您的用户主目录中的 ~/.copilot/skills 或 ~/.claude/skills 文件夹中查找技能定义。您可以使用
如果您是扩展作者,您还可以通过在扩展中包含它们并在 package.json 中使用 chatSkills 贡献点来打包和分发技能
{
"contributes": {
"chatSkills": [
{
"path": "./skills/my-skill"
}
]
}
}
path 必须指向包含 SKILL.md 文件的目录,并且 SKILL.md 前置属性中的 name 字段必须与父目录名称匹配。例如,如果路径是 ./skills/my-skill,则该目录必须包含一个 SKILL.md,其前置属性中包含 name: my-skill。了解有关所需文件夹结构的更多信息,请参阅 代理技能文档。
组织范围内的指令
设置:
此前,VS Code 已经添加了对组织级别自定义代理的支持。在此版本中,VS Code 还支持组织级别的自定义指令。如果您的 GitHub 组织为 Copilot 配置了自定义指令,它们将自动应用于您的聊天会话,从而确保团队中保持一致的指导。
此功能默认启用。您可以通过设置
false 来禁用组织指令。
了解更多关于 自定义指令 的信息,请参阅文档。
自定义代理文件位置
设置:
与提示文件、指令和技能等其他自定义文件一样,现在可以配置 VS Code 查找 自定义代理定义(.agent.md)的位置。
默认情况下,VS Code 在您的工作区的 .github/agents 文件夹中搜索代理文件。使用新的
{
"chat.agentFilesLocations": {
"~/.vscode/agents": true,
"shared/team-agents": true
}
}
控制自定义代理的调用方式
设置:
自定义代理 现在支持前置标题中的其他属性,这些属性让您可以更精细地控制代理的调用方式。这对于设置 代理编排 以自信地处理复杂任务特别有用。
-
user-invocable:控制是否可以从聊天的代理下拉菜单中选择代理。设置为false以创建只能以编程方式或作为 子代理 访问的代理。 -
disable-model-invocation:防止在启用时由其他代理将代理作为子代理调用。这对于应仅由用户显式触发的代理很有用。 -
agents:限制当前代理可以调用哪些子代理。如果指定,代理只能将工作交给列出的代理。使用agent工具启用子代理调用。
目前,将自定义代理作为子代理使用仍然受到设置的限制。启用
---
name: my-internal-agent
user-invocable: false
---
This agent can only be invoked as a subagent
以下示例显示了一个只能调用 Modify 和 Search 子代理的代理
---
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 文档,其中列出了所有活动自定义文件、其加载状态以及加载过程中发生的任何错误。

语言模型编辑器
VS Code 中的语言模型编辑器提供了一个集中式界面,用于管理和配置聊天中使用的语言模型。在此迭代中,我们进一步增强了此体验
-
每个提供程序的多重配置:为同一个模型提供程序创建多个配置,每个配置使用不同的 API 密钥。这对于区分个人和工作帐户,或为不同的项目使用不同的 API 密钥非常有用。例如,您可以拥有一个使用您的个人 API 密钥的 Gemini 配置,以及另一个使用您的团队 API 密钥的配置。

-
配置 Azure 提供程序的模型:配置 Azure 模型时,VS Code 会打开
chatLanguageModels.json配置文件并插入一个代码片段模板。该片段包含模型 ID、名称、端点 URL 和令牌限制等必需属性。然后,您可以填写每个要添加的模型的值。 -
管理提供程序组:通过选择配置操作来配置现有的提供程序组,例如更新 API 密钥。您还可以使用删除操作完全删除一个提供程序组。
-
其他 UI 改进:多项可用性改进,例如用于切换模型可见性的键盘访问、上下文菜单操作以及用于批量操作的多选功能。
-
语言模型配置文件:模型配置现在存储在一个专用的
chatLanguageModels.json文件中。通过选择语言模型编辑器右上角的图标,可以直接打开此文件。这使得查看、编辑或共享您的模型配置变得容易。
-
模型提供程序配置 UI:模型提供程序可以声明其配置模式,VS Code 提供 UI 供用户输入其配置。有关此新提出的 API 的详细信息,请参阅 聊天模型提供程序配置。GitHub Copilot Chat 扩展中的现有模型配置将自动迁移。
语言模型配置
设置:
-
计划实施的默认模型(实验版)
现在,您可以为计划代理的实施步骤配置默认语言模型(
github.copilot.chat.implementAgent.model)。保留设置为空以使用默认模型。模型值应采用模型名称 (供应商)格式的限定模型名称,例如GPT-5 (copilot)或Claude Sonnet 4.5 (copilot)。
-
内联聊天的默认模型
默认情况下,编辑器内联聊天使用所选供应商的默认模型。这使得扩展能够为内联聊天场景提供专门定制的模型。
如果您希望使用不同的模型,可以使用
inlineChat.defaultModel设置进行配置。此设置允许您为内联聊天选择一致的默认语言模型,以便在每次启动内联聊天会话时自动使用您喜欢的模型,而无需每次手动选择它。
-
指定代理交接的语言模型
代理交接现在支持一个可选的
model参数,允许您指定交接执行时要使用的语言模型。这使您可以直接从.agent.md文件控制特定代理工作流使用的模型。模型值应采用
模型名称 (供应商)格式的限定模型名称,例如GPT-5 (copilot)或Claude Sonnet 4.5 (copilot)。
代理自定义技能(实验版)
设置:
一个新的 agent-customization 技能教导代理如何帮助您自定义您的 AI 编码体验。当您询问创建自定义代理、指令、提示或技能时,代理会自动加载此技能以提供准确的指导。
该技能涵盖
- 自定义代理 - 创建带有 frontmatter 配置的
.agent.md文件,用于工具、模型和行为 - 自定义指令 - 编写带有
applyTo模式的.instructions.md文件,用于特定于上下文的指导 - 提示文件 - 构建用于常见任务的可重用
.prompt.md模板 - 技能 - 将领域专业知识打包在
SKILL.md文件中 - 工作区指令 - 在
copilot-instructions.md和AGENTS.md中设置项目范围的约定
代理可扩展性
此版本添加了 Claude Agent 支持,因此您可以直接利用 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 子代理格式的
.claude/agents文件夹中的.md文件。有关详细信息,请参阅 自定义代理文件位置。 - 技能:
.claude/skills和~/.claude/skills文件夹中的技能定义。有关详细信息,请参阅 代理技能。 - 钩子:
.claude/settings.json和~/.claude/settings.json中的钩子配置。有关详细信息,请参阅 代理钩子。
这种兼容性扩展到指令、代理、技能和钩子,以便使用多种 AI 工具的团队可以共享一组配置文件。
代理编排
代理编排是一种用于构建复杂的 AI 工作流的强大模式,其中多个专门的代理协作以实现共同目标。与其依赖单个代理来处理所有事情,不如将工作分配给专门构建的代理,每个代理都针对特定的角色进行了优化,例如规划、实施、代码审查或研究。
这种方法提供了几个关键优势
- 上下文效率:每个子代理在其自己的专用上下文窗口中运行,防止上下文溢出
- 专业化:不同的代理可以使用针对其任务优化的不同模型
- 并行执行:独立的任务可以在多个子代理之间并行运行
图片来源 https://github.com/ShepAlderson/copilot-orchestra 由 @ShepAlderson 提供
VS Code 具有使用 自定义代理、子代理以及更多控制 如何调用代理 设置代理编排流程所需的所有构建块。
社区创建了出色的代理编排系统示例,您可以直接使用或根据您的需要进行调整
-
Copilot Orchestra - 一个多代理系统,具有一个“指挥者”,它通过完整的开发周期编排规划、实施和代码审查子代理
-
GitHub Copilot Atlas - 一个扩展的编排系统,具有专门的代理,例如用于规划的“Prometheus”、用于研究的“Oracle”、用于实施的“Sisyphus”和用于快速代码库发现的“Explorer”
Claude Agent(预览版)
在此版本中,我们引入了 Claude Agent 支持,目前处于预览版。这使您可以将任务委托给使用 GitHub Copilot 订阅中包含的 Claude 模型 Claude Agent SDK。

此集成使用 Anthropic 的官方 Claude Agent 框架,这意味着它与其他的 Claude Agent 实现共享相同的提示、工具和整体架构。您可以在 Anthropic 文档 中了解有关 Claude Agent SDK 的更多信息。
此集成正在积极开发中,我们计划在未来几个月内添加更多功能和改进。与此同时,我们非常希望听到您对如何在 VS Code 中使用 Claude Agent 以及您希望看到哪些功能的反馈。请随时在 GitHub 上提供反馈!
Anthropic 模型
设置:
我们对 VS Code 中的 Anthropic 模型支持进行了多项改进
-
带有交错思考的消息 API:Anthropic 模型现在使用 消息 API,其中包括对交错思考的支持。这使得 Claude 能够在工具调用之间进行推理,在复杂的、多步骤任务中提供更周到和更具上下文的响应。使用 配置思考预算,或将其设置为
0以完全禁用扩展思考。github.copilot.chat.anthropic.thinking.budgetTokens设置,或者将其设置为0以完全禁用扩展思考。 -
工具搜索工具:我们启用了 工具搜索工具,以帮助 Claude 从更大的可用工具库中发现并选择最相关的工具。可以使用 切换此功能
github.copilot.chat.anthropic.toolSearchTool.enabled设置来指定 VS Code 应该查找技能的自定义路径。 -
上下文编辑(实验版):我们添加了对 上下文编辑的支持,以帮助更有效地管理更长的对话。此功能会清除先前回合的工具结果和思考令牌,有助于推迟总结并保持聊天会话中的更多上下文。通过启用 试用它
github.copilot.chat.anthropic.contextEditing.enabled设置来指定 VS Code 应该查找技能的自定义路径。
支持 MCP 应用
在本版本中,VS Code 添加了对 MCP 应用的支持。MCP 应用允许服务器在客户端显示丰富、交互式的 UI。
当服务器返回应用时,应用会自动显示。如果您是 MCP 服务器开发人员,可以通过查看以下内容了解有关 MCP 应用的更多信息

支持 MCP 包的自定义注册表基本 URL
VS Code 现在支持 MCP 服务器清单文件中的 registryBaseUrl 属性。这使得组织能够从私有或替代的包注册表(例如内部 Azure DevOps 源或自定义 PyPI 仓库)部署 MCP 服务器。
代理优化
更智能的上下文、更快的搜索、更好的结果。借助 Copilot 记忆,代理可以记住跨会话的重要信息。外部索引为非 GitHub 工作区带来快速的语义搜索。并且在获得您的许可后,代理现在可以在需要时读取工作区外部的文件。
Copilot 记忆(预览版)
设置:
如果您发现自己反复向 AI 提供相同的上下文,现在可以使用 Copilot 记忆来存储和回忆重要信息,跨会话使用。
借助新的记忆工具,您的聊天现在可以直接访问和更新 Copilot 记忆。这使得代理能够从您存储的记忆中检索相关上下文,并在您工作时保存新的学习成果。通过设置 启用记忆工具
true。
记忆工具应该能够识别何时将特定信息存储为记忆(“如有疑问,始终询问澄清问题”),以及何时检索相关记忆以告知其响应。

您可以从 GitHub 的 Copilot 设置查看和管理您的所有记忆。
非 GitHub 工作区的外部索引(预览版)
设置:
现在可以对未托管在 GitHub 上的工作区进行远程索引,以便在使用代理时进行更快的代码搜索。当您在非 GitHub 工作区中使用 #codebase 时,VS Code 会构建您的代码库的索引,从而实现快速的语义搜索,为 GitHub 托管的仓库提供相同的强大代码搜索功能。
索引是在第一次请求时构建的,并且可能需要几分钟,具体取决于仓库大小和您的网络连接。后续请求速度更快,因为它们使用缓存的索引。当您修改和保存文件时,索引会自动更新。
我们将在未来几周内逐步推出外部索引。请注意,已经托管在 GitHub 上的任何工作区都已支持远程索引,并且不需要更昂贵的调用来在第一次请求时构建索引。
读取工作区外部的文件
在获得您的许可后,代理现在可以读取文件和列出当前工作区外部的目录。 以前,访问尝试会被自动拒绝。现在,当代理需要访问外部文件或文件夹时,VS Code 会提示您允许或拒绝该请求。
您还可以允许对整个会话进行访问,以避免在同一文件夹下进行未来读取时重复提示。

性能改进
在此迭代中,我们进行了许多性能改进
-
大型聊天:长时间的聊天对话现在应该感觉更流畅,更容易打开和滚动。我们还优化了对话的持久化方式,使其整体上更可靠。
-
并行依赖任务:通过代理运行任务时,依赖任务现在并行处理,而不是顺序处理。这可以显著提高具有多个独立构建步骤的项目构建时间。查看我们的
microsoft/vscode仓库,看看区别!
代理安全性和信任
自信地运行代理命令。新的终端沙箱限制了代理执行命令的文件和网络访问权限,自动批准规则跳过安全操作的确认,并且改进的演示显示了正在运行的内容以及原因,因此您始终处于控制之中。
终端沙箱(实验版)
设置:
代理具有与您的用户帐户相同的权限。为了帮助减轻与代理执行的终端命令相关的风险,我们引入了实验性的终端沙箱功能。终端沙箱将文件系统访问限制为仅您的工作区文件夹,并允许您将网络访问限制为受信任的域。
注意:终端沙箱当前仅在 macOS 和 Linux 上受支持。在 Windows 上,沙箱设置无效。
要启用终端沙箱,请将
true。
启用沙箱后
- 命令默认情况下具有对当前工作目录的读写访问权限
- 命令在受控环境中运行,因此无需标准的确认对话框
- 默认情况下,所有域的网络访问均被阻止
了解有关配置 终端沙箱的更多信息,请参阅我们的文档。
终端工具生命周期改进
在此版本中进行了多项更改,以帮助解决有关不正确的后台终端行为的问题
-
现在,您可以手动将终端工具调用推送到后台,从而释放代理以继续执行其他工作。

-
新的
timeout属性需要由代理在对终端工具进行调用时填写,其中 0 表示没有超时。这为在发生意外情况时返回控制权给代理提供了一个额外的逃生途径。 -
新的
awaitTerminal工具使代理能够等待后台终端完成,这也需要timeout属性。如果模型利用此工具,预计可以防止先前用于等待后台命令完成的echo "successful"和sleep n调用。 -
新的
killTerminal工具使代理能够杀死后台终端以进行清理。这旨在防止代理以迂回的方式杀死进程以实现相同的结果,例如,当它想要停止旧的正在进行的服务器命令时。 -
关于当前工作目录如何工作的多项指令更改,因为活动的非后台终端始终保留当前工作目录,而后台终端始终从工作区目录开始。
终端自动批准
设置:
在启用终端自动批准的情况下(
Set-Locationdirodxxd- 标志和单个输入文件docker- 所有安全子命令npm、yarn、pnpm- 所有安全子命令
终端增强功能
更流畅、更强大的终端。聊天中的终端命令现在显示更丰富的详细信息,包括语法高亮和工作目录。Kitty 键盘协议支持改进了终端应用程序中的按键处理,新的选项允许您自定义粘性滚动并在受限制的工作区中使用终端。
选择性忽略粘性滚动
设置:
一些命令先前出现在粘滞滚动中,但这种行为并非总是期望的,例如 clear 之类的命令。从本次发布开始,您可以自定义要忽略哪些命令,并且它已经包含了一些常见的代理 CLI(在普通缓冲区中运行),例如 copilot、claude、codex 和 gemini。
移除 winpty 支持
对 node-pty 的 winpty 支持已被移除,这意味着终端将不再适用于 Windows 10 1809 版本(2018 年秋季)之前的 Windows 版本。ConPTY 是终端的现代机制,因此我们建议升级到较新版本的 Windows 10 或迁移到 Windows 11。您可以通过设置 "terminal.integrated.windowsUseConptyDll": true 来使终端工作,但请注意这目前是实验性的。
允许在受限制的工作区中打开终端
设置:
当未授予工作区信任时,会阻止打开终端,以保护用户免受 shell 可能通过设置变量(例如通过 .env 文件)来执行代码的攻击。注重安全的用戶通常会配置他们的 shell 以防止这种情况发生,因此有一个新的选择加入设置,允许在受限制的工作区中打开终端。
新的 VT 功能
设置:
已实现 Kitty 键盘协议,并将在此版本中推广到稳定版。此功能旨在修复有关传统编码方式的许多限制,具体而言
- 允许终端编码更多的修饰符和多个修饰符,而不仅仅是 alt 和 ctrl
- 处理按下和释放事件以及重复按下(按住键)
- 消除许多击键的歧义,例如 Escape,通常会发送
ESC(\x1b) 序列,而该序列也是所有转义序列的开始。
这要求在终端中运行的程序支持该协议并在运行时请求启用它。您会立即看到的一个好处是,shift+enter 应该可以在某些代理 CLI 中工作,而无需运行类似 /terminalSetup 的命令。
设置:
与上述类似,还有一个 win32 输入模式 的实验版本,它实现了类似的功能,但专门针对 Windows 及其伪终端后端 ConPTY 进行了调整。此版本将保持关闭状态,如果您在使用过程中遇到任何问题,请告知我们。
其他
- 独立控制粗体和淡色 SGR 属性 (
SGR 222,SGR 221)。此序列很少使用,但它明确且在使用时可能会破坏输出,因此我们决定支持它。
编码和编辑器
小的改进累积起来。双击选择方括号或字符串内容。自定义方括号匹配颜色。将代码片段限定到特定文件。正确检测 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+Tab 建议将 index 重命名为 chunkIndex。
注意:此功能目前仅适用于 TypeScript。
改进的幽灵文本可见性
行内建议(幽灵文本)现在在显示少于三个连续非空格字符的简短建议时显示点状下划线。此视觉指示器使区分幽灵文本和编辑器中的实际代码更加容易。当建议是单个字符(如 ))并且可能与现有代码混淆时,这尤其有用。

代码片段文件模式
现在可以使用 include 和 exclude glob 模式 来控制代码片段在哪些文件中出现。使用此功能将代码片段限制到特定文件或项目上下文,防止它们出现在无关的文件中。
例如,要创建一个仅在 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"
}
}
如果模式包含路径分隔符,则模式匹配绝对文件路径,否则仅匹配文件名。include 和 exclude 都可以是单个模式或模式数组。使用 exclude 可以防止代码片段出现在特定文件中,即使它们会匹配代码片段的语言范围。
改进的 shebang 语言检测
VS Code 现在具有改进的 shebang 语言检测支持,特别是对于使用 /usr/bin/env 以及其他标志的文件。带有 shebang(如 #!/usr/bin/env -S deno -A)的文件现在被正确检测为 TypeScript。这为使用 Deno 或 Bun 等运行时编写的 TypeScript 脚本提供了更好的语言支持,即使没有 .ts 文件扩展名。
工作台和生产力
测试、调试和发布,无需切换窗口。一个新的集成浏览器允许您直接在 VS Code 中预览和检查 localhost 站点,并提供 DevTools 和身份验证支持。
集成浏览器(预览版)
设置:
VS Code 长期以来都包含 Simple Browser,用于打开基本的网页,例如开发期间的 localhost 站点。但是,由于它依赖于 iframes,因此存在一些限制:无法进行网站身份验证,并且无法打开 Google、GitHub 和 Stack Overflow 等常用站点。
本次发布引入了 VS Code 桌面版的新集成浏览器,克服了这些限制。现在,您可以登录网站并浏览任何页面,就像在普通浏览器中一样。
亮点包括:
- 持久数据存储,具有可配置的范围(全局、工作区或内存 / 临时)
- 将元素添加到聊天:选择一个元素并将其发送给代理以获取帮助
- 功能齐全的 DevTools
- 键盘快捷键
- 在页面中查找
以及更多...
要试用它,请运行 Browser: Open Integrated Browser 命令。如果您想更广泛地使用集成浏览器,可以启用
您还可以配置集成浏览器以使用
在打开工作区时恢复编辑器
设置:
此前,VS Code 在重新打开工作区时总是会恢复所有打开的编辑器。现在有了新的
注意:未保存(脏)的编辑器始终会恢复,无论此设置如何,以防止数据丢失。
高级设置
设置:
现在,您可以配置 VS Code 始终在设置编辑器中显示高级设置,而无需每次都应用 @tag:advanced 过滤器。启用
通过拖放导入配置
现在,您可以将设置配置文件通过拖放 .code-profile 文件到 VS Code 窗口来导入。这提供了与拖放 .code-workspace 文件类似的体验,使共享和应用配置更加容易。
输出通道过滤器改进
输出面板过滤器现在支持否定模式和多个过滤器。使用 ! 排除输出中的特定行,例如 !debug 隐藏包含“debug”的所有行。您还可以使用逗号组合多个模式,以进行更精确的过滤。
按来源过滤问题
“问题”面板现在支持按诊断的来源或所有者进行过滤。当您只想关注特定类型的问题(例如构建错误)时,同时暂时隐藏来自其他来源(例如拼写检查器或 linter)的诊断时,此功能很有用。例如,在过滤器框中键入 source:ts 以仅显示 TypeScript 诊断,或使用 !source:cSpell 隐藏所有拼写检查器警告。
扩展编辑器显示配置默认值
扩展编辑器中的“功能贡献”选项卡现在显示扩展贡献的配置默认值。这使得更容易查看扩展提供的默认设置,例如特定于语言的编辑器配置。
在 git worktrees 中包含其他文件(实验性)
设置:
在使用后台代理时,会创建一个 git worktree 以隔离更改。现在有了新的
SCM 视图中的全部折叠操作
当在“源代码管理”视图的“更改”部分中将文件作为树查看时,现在可以使用根节点的上下文菜单中的“全部折叠”操作一次性折叠所有展开的目录结构,从而更轻松地浏览大量更改。
Git: 删除命令
一个新的 Git: 删除 命令允许您直接从命令面板运行 git rm 命令,作用于当前打开的文件。这将从工作目录和 Git 索引中删除该文件,然后关闭编辑器。这提供了一种更安全的常规文件删除替代方案,因为 git rm 仅对已提交且没有未提交更改的文件才成功。
禁用 blame 编辑器装饰悬停
设置:
现在,您可以禁用在将鼠标悬停在编辑器中内联 Git blame 装饰上时出现的悬停弹出窗口。将
false 以保持内联 blame 注释可见,同时防止悬停弹出窗口出现。如果您觉得弹出窗口分散注意力,但仍然想一目了然地查看 blame 信息,这将很有用。
默认禁用自动任务
设置:
为了提高安全性并防止在打开工作区时无意执行 tasks.json 中定义的任务,
off 而不是 on。
要恢复以前的行为,请在您的用户设置中将
on。
辅助功能改进
可访问视图中动态流式传输的聊天响应和思考
可访问视图现在动态流式传输聊天响应内容,就像 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 的 changelog,了解此版本中的所有内容。
最终的快速输入按钮位置 API
当您在 QuickPick 或 InputBox 上设置 buttons 属性时,现在可以使用新的 location 属性指定每个按钮的位置。这允许您将按钮放置在
Title:快速输入的顶部标题区域(如果未指定,则为默认值)Inline:渲染到输入框的右侧Input:渲染到输入框的右侧
最终的快速输入按钮切换 API
现在,您可以通过将 toggle 属性设置为 { checked: boolean } 在快速输入中创建切换按钮。切换按钮会维护开启/关闭状态,您可以使用新的 checked 属性读取和更新该状态。这对于具有两种状态的操作很有用,例如启用或禁用功能、应用过滤器或切换模式。
提议的 API
聊天模型提供者配置
我们引入了一个新的提议 API,允许聊天模型提供者扩展声明其配置要求通过 languageModelChatProviders 贡献点。使用此 API,VS Code 提供了一个内置的 UI,供用户输入其配置(例如 API 密钥和模型设置),并通过 API 将此配置传递给扩展。
这种方法将在未来的版本中取代现有的 managementCommand 属性。扩展不再需要通过命令实现自己的配置 UI,而是可以声明其配置模式并让 VS Code 处理用户体验。
VS Code 为原始属性类型(例如 string、number 和 boolean)提供本机 UI 控件。对于复杂的类型(例如 array 和 object),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 网站获取。

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

Windows 安装布局重新设计
我们重新设计了 Windows 上的安装布局,以解决与应用内更新相关的长期可靠性问题。最值得注意的是,以前的版本执行了原子文件替换操作,如果被系统关机、用户干预或其他意外事件中断,则可能失败,有时会导致 VS Code 处于损坏状态。新的实现借鉴了 Chromium 的更新客户端,并使用版本化的软件包路径。
避免 macOS 连续更新
如果新的更新在之前的更新仍待应用时可用,VS Code 现在将使之前的更新失效,并继续应用新的更新,而不是强制用户两次重启应用程序。
Copilot 扩展已弃用
GitHub Copilot 扩展已弃用。所有 AI 功能现在均由 GitHub Copilot Chat 扩展完全提供。当您更新 VS Code 时,已弃用的 Copilot 扩展将自动卸载,而 Copilot Chat 扩展将保持安装状态并提供完整的 Copilot 体验。

从 npm 包中使用 codicons
Codicons 现在通过 @vscode/codicons npm 包获取,而不是直接捆绑在 VS Code 存储库中,并作为构建过程的一部分合并。
值得注意的修复
- vscode#276558 - 修复在设置
editor.hover.enabled为onModifierKeyPressed时,按下修饰键时悬停未立即触发的问题 - vscode#58814 - 终端进程中文件描述符泄漏
感谢
问题跟踪
对我们问题跟踪的贡献
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @albertosantini (Alberto Santini)
拉取请求
对 vscode 的贡献
- @ChaseKnowlden:键盘修饰符上的悬停应立即触发 PR #276582
- @dalisoft (Davlatjon Sh):修复(typescript):
tsserver.useSyntaxServer.always描述 PR #286476 - @hkleungai (Jimmy Leung):vscode-dts:修复 WebviewPanel.dispose() 的 typedoc
- @Infro (John Heilman):如果用户选择了一种语言,让我们让它实际选择用户选择的语言。(Yaml vs yaml) PR #288153
- @Ishiezz (Isha Singh):修复:当引擎不支持时,不要建议隐式激活消息 PR #281302
- @KanishkRanjan (Kanishk Ranjan):修复:稳定设置树,并在启动期间修复,以停止早期扩展注册期间的幽灵滚动。
- @kiofaw (kiofaw):修复:将 AsyncIterableObject 替换为 AsyncIterableProducer PR #288079
- @lucas-gomes-santana (Lucas Gomes Santana):改进片段大小写转换对非拉丁脚本的支持(修复:#286165) PR #287150
- @newminkyung (minkyung):修复:屏幕录制模式 - 键盘叠加超时 PR #238860
- @RedCMD (RedCMD):修复:VB
increaseIndentPatternPR #291176 - @SimonSiefke (Simon Siefke)
- 修复:文件夹配置中的内存泄漏 PR #279230
- 修复:抽象任务服务中的内存泄漏 PR #289863
- @tamuratak (Takashi Tamura)
- 通过在下一个动画帧中安排 DOM 更新来优化 NativeEditContext 和 TextAreaEditContext 中的渲染性能 PR #285906
- 修复:防止在聊天列表中为最终答案渲染思考部分 PR #288178
- @vedbhadani (Ved BHadani):聊天上下文提供程序的自动激活事件 PR #280677
- @daviddossett (David Dossett):优化按钮和输入 PR #280457
对 vscode-copilot-chat 的贡献
- @24anisha (Anisha Agarwal):搜索子代理 - 设置可配置的 exp 变量 PR #3205
- @alexandear (Oleksandr Redko):工具:更新有关验证失败的问题报告信息 PR #3113
- @bstee615 (Benjamin Steenhoek):将攻击性级别和用户幸福度分数记录到遥测 PR #2897
- @DanielFabian (Daniel Fabian):为文档添加短期缓存,并在 linkifier 中按语言过滤。PR #2211
- @kevin-m-kent:修复 prompttypes 测量 PR #2799
对 vscode-explorer-command 的贡献
- @ArcticLampyrid (ArcticLampyrid):修复:使用 ShellExecuteW 代替 CreateProcessW,允许 UAC 对话框 PR #17
对 vscode-js-debug 的贡献
- @nayeemrmn (Nayeem Rahman):修复:不要为 deno 调试配置复制 --allow-all PR #2308
对 vscode-python-environments 的贡献
- @renan-r-santos (Renan Santos):修复在使用
shellStartup时激活图标状态 PR #837 - @StellaHuang95 (Stella Huang)
对 vscode-windows-registry 的贡献
- @thegecko (Rob Moran):小的代码示例修复 PR #33
对 language-server-protocol 的贡献
- @asukaminato0721 (Asuka Minato):添加 harper PR #2222
对 python-environment-tools 的贡献
- @elprans (Elvis Pranskevichus):修复合并用户系统上的 env 重复 PR #200
我们非常感谢大家在新功能准备就绪后立即进行试用,请经常回来查看并了解新功能。
如果您想阅读以前 VS Code 版本的发行说明,请访问 code.visualstudio.com 上的更新页面。