最新版 VSCode 将糟糕且实验性的 Copilot harness 设为默认

HN 中文独立开发 AI 2026-10-22T09:38:12.254804

🎬 观看 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 编辑器,并让管理员能更好地控制智能体权限。


智能体

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。

截图显示 harness 选择器,带有 Local 和 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 启动一个新会话。

每个画布都由一个画布扩展提供。要开始使用,有两种方式:

安装画布扩展后,你也可以在 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 中打开),你可以决定每个会话记住多少布局。改完设置后需要重新加载窗口。它支持以下取值:

窗口几何尺寸、窗格大小和侧边栏目前仍然在整个窗口范围内共享。

自定义 Agents 窗口的面板布局

现在可以选择 Agents 窗口中底部面板的对齐方式。右键点击面板标签,选择“对齐面板”(Align Panel),然后选择以下布局之一:

你的选择会按配置文件保存,并在最大化或还原面板时保留。


聊天

快速识别当前使用的 harness

聊天标题会显示当前使用的 harness 名称,例如 Copilot 或 Codex,这样无需打开 harness 选择器,也无需将鼠标悬停在会话列表上,就能直接识别。

截图显示编辑器窗口中的两个聊天会话,每个聊天标题前分别显示 Codex 和 Copilot 的 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 模型分开。

截图展示重新设计的模型选择器,选中了 Copilot 标签页并显示模型列表,其中选中的模型显示其思考深度和上下文大小。

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

截图展示模型选择器中的模型详情视图,提供选择思考深度和上下文大小的选项。


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 环境扩展中的几个问题:环境发现、解释器选择,以及终端激活。


企业版

自动把策略管理的聊天迁移到 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
  }

截图显示 Copilot 权限选择器,其中 Manual 和 Assisted 权限可用,Allow All 不存在。

用 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 版本的更新日志,了解此版本的全部内容。


已弃用的功能和设置

本次发布新增的弃用项


致谢

为 vscode 做出贡献的开发者:

对 vscode-pull-request-github 的贡献:

问题跟踪

对我们问题跟踪的贡献:


我们非常欢迎大家在功能就绪后第一时间试用,所以记得常回来看看有什么新东西。

查看原文