最新版 VSCode 将糟糕且实验性的 Copilot harness 设为默认
🎬 观看 VS Code 的故事!
VS Code 现已入驻 Instagram,关注 @vscode.ig 获取更新、技巧和更多内容。
重温 GitHub Copilot Day。
Visual Studio Code 1.142
发布于 2026 年 10 月 14 日 稳定版
1.142.0 下载
已安装?在 VS Code 中使用“检查更新”。想体验即将推出的功能,请使用 Insiders 版本。
版本亮点
本次更新新增了用于智能体工作流的共享画布,支持在不丢失上下文的情况下移动聊天,扩展了 Markdown 编辑器,并让管理员能更好地控制智能体权限。
-
画布(预览版):通过可视化交互画布与智能体协作,突破聊天局限。
-
移动聊天:在其他文件夹或新的 Git worktree 中继续聊天,不丢失对话历史。
-
Markdown 编辑器:更高效地处理 Markdown 文件,支持粘贴图片、重命名文件链接、面包屑导航等功能。
-
企业管理:强制执行智能体沙箱和权限策略,同时控制开发者可使用的权限模式。
-
重新设计的模型选择器:快速切换 Copilot 和 BYOK 贡献的模型,更直观地管理努力级别和上下文窗口。
智能体
Copilot harness
Copilot harness 由 Copilot SDK 驱动,这是一个共享基础,有助于统一 Copilot 各产品的行为、能力和改进。在 VS Code 中,Copilot harness 通过 Agent Host 运行会话,使会话可以在后台继续,并可从 VS Code 编辑器窗口和智能体窗口访问。
Copilot harness 此前已可从聊天输入框的 harness 选择器中使用。基于大量积极且有价值的反馈,我们正在逐步将其推广为 VS Code 中新会话的默认 harness。当你开始新会话时,harness 选择器中的 Copilot 表示该会话将使用 Copilot harness。

感谢大家提供的反馈。我们正在根据这些反馈改进体验。其中一个例子是把 Ask 重新作为 Copilot harness 中的内置 agent。大家的反馈表明,一个专用的只读体验仍然很有价值。在 agent 选择器中选择 Ask 即可使用。
了解如何配合 Copilot harness 使用,或查看 agent host 博客文章中的架构和工作流。如果有反馈或需求,请提交 issue。
画布(预览)
设置:chat.canvases.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开
画布是一种交互界面,用于与 agent 协作。画布在聊天窗口旁边打开,你和 agent 可以共同查看和更新同一个产物,而不必仅靠提示词来协调。
例如,用看板画布来规划和跟踪实现工作。你可以直接创建和移动卡片,agent 则可以把一个功能拆成任务、更新任务状态,或添加新发现的工作。画布在 VS Code 编辑器窗口和 Agents 窗口中都能用,画布扩展也支持 GitHub Copilot 应用。

画布在 VS Code 桌面应用的预览版中可用,适用于使用 Copilot harness 的本地会话。启用 chat.canvases.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开,然后用 Copilot harness 启动一个新会话。
每个画布都由一个画布扩展提供。要开始使用,有两种方式:
-
创建画布扩展:在聊天输入框中输入
/create-canvas,描述你希望项目使用的用户界面。该技能会在你的工作区中创建一个画布扩展,并打开它的画布。 -
安装聊天插件:目前,请通过 GitHub Copilot 应用安装一个包含画布扩展的聊天插件。然后切换到 VS Code,让 agent 列出可用的画布,并让它打开其中一个。
安装画布扩展后,你也可以在 Agents 窗口中通过“添加标签页 (+) > 画布”打开可用的画布。
浏览并安装社区提供的示例画布扩展。
想了解更多 canvas 支持,请参阅 VS Code 文档。
在文件夹和工作树之间移动聊天
以前,如果你在一个文件夹里开始调查某个任务,后来想改到 Git 工作树里实现,或者换一个代码仓库继续,就只能新建一个聊天、重新搭建上下文。
现在,在 Agents 窗口里,你可以让智能体把当前聊天移到另一个文件夹,或者移进一个新的 Git 工作树,对话历史会完整保留。已经有工作区的聊天也能切换工作区,智能体还可以把工作隔离到一个新的工作树里。
用自然语言提示智能体即可,例如:
Continue this task in a new Git worktree of the current repository before implementing it.
智能体会先结束当前回合,再移动聊天,工作区变化时会给出提示。之后它会在新位置自动继续任务,编辑和命令都在新位置执行,你原来的检出目录保持不变。
这个移动功能适用于使用 Codex 框架(harness)或 Interactive 模式下 Codex 的智能体会话,且会话中只有一个聊天和一个本地文件夹。关于前提条件,以及新位置里哪些文件可用,请参阅「把聊天移到另一个文件夹或工作树」。
Agents 窗口中的会话级布局(实验性)
设置项:sessions.experimental.layoutScope(在 VS Code 中打开 / 在 VS Code Insiders 中打开,仅限 Agents 窗口)
以前在 Agents 窗口切换会话时,VS Code 会跨会话共用布局设置,比如编辑器是否可见、详情区、面板是否可见。如果你习惯了 VS Code 为每个工作区分别记住布局,这种共用方式可能会打乱你的使用节奏。
有了新的实验性设置 sessions.experimental.layoutScope(在 VS Code 中打开 / 在 VS Code Insiders 中打开),你可以决定每个会话记住多少布局。改完设置后需要重新加载窗口。它支持以下取值:
-
session-shared(默认):这是当前行为。一个会话及其嵌套会话共享相同的编辑器和选中的面板视图。编辑器、详情和底部面板的可见性在现有工作区会话之间共享。
-
chat-shared:一个会话及其每个嵌套会话都保留自己的编辑器和选中的面板视图,而编辑器、详情和底部面板的可见性在现有工作区会话之间仍然共享。
-
chat:一个会话及其每个嵌套会话还保留自己的编辑器、详情构成和底部面板可见性。
窗口几何尺寸、窗格大小和侧边栏目前仍然在整个窗口范围内共享。
自定义 Agents 窗口的面板布局
现在可以选择 Agents 窗口中底部面板的对齐方式。右键点击面板标签,选择“对齐面板”(Align Panel),然后选择以下布局之一:
-
居中(Center):将面板对齐到聊天区域下方,为侧边窗格留出更多空间。
-
两端对齐(Justify):让面板横跨窗口的整个宽度。
你的选择会按配置文件保存,并在最大化或还原面板时保留。
聊天
快速识别当前使用的 harness
聊天标题会显示当前使用的 harness 名称,例如 Copilot 或 Codex,这样无需打开 harness 选择器,也无需将鼠标悬停在会话列表上,就能直接识别。

停止后台 shell
在 Copilot harness 会话中,聊天输入框上方的“后台 shell”(background shells)胶囊标签会列出智能体仍在后台运行的命令。当其中某个命令不再有用时——例如你想重新运行某个测试,或某个命令运行时间超出预期——你可以停止它,而不必等它运行结束。
选择“后台 shell”胶囊标签,选中某个 shell 打开其详情,然后在其命令旁选择“停止 shell”(Stop Shell)。只有该命令会结束,该 shell 也会从列表中移除。你可以通过键盘访问“停止 shell”,屏幕阅读器会在 shell 停止时进行播报。
停止 shell 的功能仅对附加(attached)shell 可用,也就是 agent 在当前请求中运行的那些 shell。分离(detached)shell 独立于 agent 运行,无法从这个界面停止。
Shell 详情还会在每个 shell 的命令上方显示完整描述,即使列表中被截断也一样。长输出不再被截断,你可以回滚查看之前的输出,无论是在 shell 详情中,还是在聊天响应的终端输出中。
BYOK 自定义端点的有状态响应
如果你的自带密钥(BYOK)模型使用无状态的 Responses API,在该模型在 chatLanguageModels.json 中的条目里设置 "statefulResponses": false,即可在每次请求时发送完整对话历史。
详见自定义端点配置。
本地 harness 的 Windows 沙箱不再受支持
本地 agent 会话中终端命令的 Windows 沙箱已被弃用。如需在 Windows 上执行沙箱化命令,请使用 Agent Host 会话。详见 Agent Host 沙箱文档。
重新设计的模型选择器
Copilot 和自带密钥(BYOK)提供商提供许多模型,每个模型在不同任务上各有优势。重新设计的模型选择器让你在工作变化时更容易选择和切换模型。
模型选择器使用标签页界面,将 Copilot 和 BYOK 模型分开。

将鼠标悬停在列表中的某个模型上,你可以进一步配置其思考深度和上下文窗口大小。

Markdown 编辑器
编辑模式更贴近 Markdown 源文件
编辑 Markdown 时,每个源文件行会显示在单独的视觉行上,让文档结构更易理解。只读模式仍然像以前一样渲染 Markdown。
粘贴图片
想把图片(比如截图)放进 Markdown 文档,直接粘贴到 Markdown 编辑器里就行。文本编辑器早就支持这个操作,现在 Markdown 编辑器也一样。省去了手动保存、再插入文件的麻烦,加图片更顺手。
重命名文件链接
Markdown 编辑器现在支持“重命名符号”(Rename Symbol,快捷键 F2)。你可以在原地改文件链接的名字,改动会自动同步到整篇文档里。
大纲与面包屑
Markdown 编辑器接入了“大纲”视图和面包屑。浏览标题结构、跳到某一节,都更方便了。
复制代码块
和 Markdown 预览一样,编辑器里的代码块在鼠标悬停时会显示复制按钮。复制多行代码片段很轻松,也不用担心误改内容。
编辑器体验
合并来自不同提供方的文档高亮
设置项:editor.occurrencesHighlightFromAllProviders
在 VS Code 中打开 / 在 VS Code Insiders 中打开
启用 editor.occurrencesHighlightFromAllProviders 后,VS Code 会合并所有提供方的文档高亮。默认情况下,它只采用优先级最高的那个提供方的高亮。
语言支持
Python
本次版本修复了 Python 环境扩展中的几个问题:环境发现、解释器选择,以及终端激活。
-
环境发现:由
uv管理的 Python 安装现在会出现在“全局”下。按路径选中某个解释器后,它的虚拟环境会被加进环境列表;在 VS Code 之外删除某个虚拟环境,选择状态也会随之更新。 -
项目专属环境:自动选择现在会优先采用项目自己的虚拟环境,而不是嵌套环境。Conda 环境选择和 Poetry 包操作都会遵循项目范围,后台刷新也不会再覆盖掉更新的解释器选择。
-
解释器配置:修复了
python.defaultInterpreterPath中${workspaceFolder}、相对路径以及python3这类命令的解析问题。项目视图的环境选择器里新增了“输入解释器路径”(Enter Interpreter Path)选项。 -
终端激活:Shell 启动时的激活现在会跟随全局解释器变化而更新;环境文件变化时,激活状态保持不变。环境文件通知中提供“Enable for Workspace”或“Enable for Folder”操作。
-
Python 安装:当需要
uv但尚未安装时,安装流程会提示安装uv,随后直接进入 Python 版本选择,无需刷新 PATH。
企业版
自动把策略管理的聊天迁移到 Copilot Agent Host
企业托管设置让管理员可以管控智能体(agent)权限和沙箱。当组织配置了非空的 permissions 对象,或把 sandbox.enabled 设为 true 时,VS Code 现在要求完整聊天会话使用 Agent Host 中的 Copilot harness,这样才能执行这些策略。
打开一个已存在、未归档的 Local 聊天时,它会自动迁移到 Copilot,并保留对话记录和未发送的草稿(包括附件)。不会自动发送任何内容。新聊天按当前组织策略,使用常规的模型和权限默认值。
只有在新的聊天成功打开后,VS Code 才会归档原聊天。如果在迁移过程中切换走,原聊天保持不变,未打开的目标聊天会被删除。
在这些策略生效期间,Claude、Codex 和终端聊天不可用。编辑器内联聊天仍可用于有限的读取和编辑任务。仅有空的 permissions 对象或旧版策略,不会触发这次迁移。管理员可以临时退出自动迁移。
临时保留 Local harness
需要更多时间迁移到 Copilot Agent Host 的管理员,可以在统一托管设置中把 vscode.temporaryDefaultToLocalHarness 设为 true:
{
"vscode": {
"temporaryDefaultToLocalHarness": true
}
}
这样会让 Local harness 保持可用,并停止自动切换到 Copilot,同时保留显式选择、记忆的选择和当前 harness 选择。把托管值设为 false 或删除该项,即可恢复正常路由。
注意:这个临时退出选项还会覆盖托管沙箱和权限设置要求的路由规则。Local 模式不执行这些仅限运行时的规则。Copilot Agent Host 会话中的强制执行保持不变。
独立管理 Copilot 权限模式
管理员可以允许“辅助(Assisted)”模式,同时阻止“全部允许(Allow All)”,这样开发者既能获得辅助审批,又不绕过权限检查。Copilot 权限选择器会显示组织托管设置允许的模式。
例如,把下面这段配置合并进统一托管设置:
{
"permissions": {
"disableBypassPermissionsMode": "disable",
"disableAssistedPermissionsMode": false
}

用 permissions.disableAssistedPermissionsMode 可以单独限制 Assisted 模式。permissions.defaultMode 只提供初始默认值,并不限制用户能选择哪些模式。
旧版的 ChatToolsAutoApprove: false 策略仍会同时阻止 Allow All 和 Assisted,除非你配置了明确的托管模式限制。只设置 permissions.defaultMode 不能替代这项旧版限制。
注意:Assisted 权限目前与
permissions.{allow,ask,deny}不兼容。如果你正在使用
permissions.allow、permissions.ask或permissions.deny中的任意一个,请把"disableAssistedPermissionsMode": true设为真。下一个版本将支持两者共存。
Windows 数值策略支持 DWORD 值
在 Windows 上,接受数值的策略支持 DWORD 和 QWORD。
扩展贡献
GitHub Pull Requests
GitHub Pull Requests 扩展又有新进展。这个扩展让你可以处理、创建和管理拉取请求(PR)与议题(issue)。新功能包括:
-
默认启用堆叠式拉取请求支持。
-
可以更新已在本地检出、且无冲突的拉取请求。
查看该扩展 0.170.0 版本的更新日志,了解此版本的全部内容。
已弃用的功能和设置
本次发布新增的弃用项
- Local 执行环境的 Windows 沙箱不再支持
致谢
为 vscode 做出贡献的开发者:
-
@bluerose73(Shengjie Ma):Copilot NES:新增 ExP 开关,用于省略 max_tokens PR #340327
-
@codelovingcat(Ürem Sancaktutan):修复 issue 337524 的多重 diff 顺序问题 PR #337565
-
@denizguney(Deniz Güney Yıldırım):修复 agent stop 命令的时长计算 PR #338278
-
@na2co3-ftw(na2co3):现代 UI:拖动已连接的标签页时阻止页面垂直滚动(修订版)PR #338180
-
@rksharma-owg(RKS):在后续清理过程中保留较新的调试器停止详情 PR #339530
-
@sgent-epic:agentHost:在工具续接过程中保留 BYOK 状态 PR #331749
-
@SimonSiefke(Simon Siefke)
- 修复:文档粘贴编辑中的内存泄漏 PR #338233
- 修复:原生上下文菜单关闭时的内存泄漏 PR #338214
- 修复:输出通道释放监听器中的内存泄漏 PR #338240
- 修复:调试适配器描述符工厂中的内存泄漏 PR #334103
- 修复:清空普通缓冲区时释放终端命令历史 PR #326931
- 性能优化:减少 1200 个字符串 PR #327689
- 修复:MainThreadDebugService 中的内存泄漏 PR #334102
- 修复:extHostTimeline 中的内存泄漏 PR #334098
- 修复:调试可视化注册中的内存泄漏 PR #340046
- 修复:隐藏状态栏命令参数中的内存泄漏 PR #338238
- 修复:扩展宿主语言模型提供者中的内存泄漏 PR #340579
-
修复:终端释放订阅中的内存泄漏 PR #340037
-
@Tabisharaza(TABISH AYUB RAZA):mcp:从工作区配置读取迁移后的本地服务器 PR #340034
-
@tuanvtdeptre199:当活动线程只有一个调用栈帧时,禁用“Step Out”操作 PR #336125
-
@tyrielv(Tyrie Vella):避免为传入更改的装饰生成不必要的 --numstat diff PR #339008
-
@yuezhang030:更新 VSC 模型 F 提示词 PR #340187
-
修复:文档粘贴编辑中的内存泄漏 PR #338233
-
修复:原生上下文菜单关闭时的内存泄漏 PR #338214
-
修复:输出通道释放监听器中的内存泄漏 PR #338240
-
修复:调试适配器描述符工厂中的内存泄漏 PR #334103
-
修复:清空普通缓冲区时释放终端命令历史 PR #326931
-
性能优化:将字符串数量减少 1200 个 PR #327689
-
修复:MainThreadDebugService 中的内存泄漏 PR #334102
-
修复:extHostTimeline 中的内存泄漏 PR #334098
-
修复:调试可视化注册中的内存泄漏 PR #340046
-
修复:隐藏状态栏命令参数中的内存泄漏 PR #338238
-
修复:扩展宿主语言模型提供程序中的内存泄漏 PR #340579
-
修复:终端销毁订阅中的内存泄漏 PR #340037
对 vscode-pull-request-github 的贡献:
-
@L4XB(Lukas):点击拉取请求编号时不再打开两个浏览器标签页 PR #8962
-
@strawberry-little-bear:修复概览 HTML 中格式错误的问题链接 PR #9025
-
@vsharha(Viktor Sharha):修复拉取请求概览中的可合并性轮询 PR #8954
问题跟踪
对我们问题跟踪的贡献:
-
@gjsjohnmurray(John Murray)
-
@RedCMD(RedCMD)
-
@IllusionMH(Andrii Dieiev)
-
@albertosantini(Alberto Santini)
我们非常欢迎大家在功能就绪后第一时间试用,所以记得常回来看看有什么新东西。