使用 Agents 窗口(预览版)

Agents 窗口是 VS Code 中专为“代理优先”工作流程构建的专用窗口。它是 VS Code 编辑器窗口的天然补充:编辑器窗口针对单个工作区中的代码相关工作进行了优化,而 Agents 窗口则针对跨项目的更高级别任务编排进行了优化,并以聊天和会话列表作为主要界面。

Agents 窗口让您可以从一处访问所有工作区,并允许您并行运行和跟踪跨项目的多个会话,而无需在单独的窗口中打开每个工作区。它与主 VS Code 窗口共享相同的代理会话、设置和快捷键,因此您可以随时在编辑器专注型工作流程和代理专注型工作流程之间自由切换,而不会丢失上下文。

在本文中,您将了解 Agents 窗口以及如何启动和管理跨项目的代理会话。

提示

Agents 窗口(代理优先)和 Chat 视图(代码优先)是与代理交互的主要界面。它们共享相同的会话和设置,因此您可以自由切换。如需了解如何选择,请参阅 在何处与代理协同工作

注意

Agents 窗口目前处于预览阶段。我们正在根据您的反馈积极改进它,并期待与开发者共同成长。请通过 在 GitHub 上提交 issue 分享您的体验,或浏览 现有的 issue

先决条件

打开 Agents 窗口

Agents 窗口作为主编辑器窗口旁边的专用 VS Code 窗口打开。要打开 Agents 窗口,请使用以下方法之一:

  • 在 VS Code 中,选择标题栏中的“在 Agents 中打开”按钮,或从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行 Chat: Open Agents Window

    您也可以直接从 VS Code 欢迎页面打开 Agents 窗口。

    Screenshot showing how to open the Agents window from the Open in Agents button in the title bar and from the Welcome page.

  • 从命令行运行 code --agents

  • 在浏览器中打开 https://insiders.vscode.dev/agents,即可从任何设备使用 Agents 窗口。有关设置说明,请参阅 在浏览器中使用 Agents 窗口

Agents 窗口需要 GitHub 身份验证才能访问您的 Copilot 订阅和会话。如果您已在 VS Code 中登录 GitHub,那么打开 Agents 窗口时您也将自动登录。

如果您更喜欢全时停留在编辑器窗口中,可以通过在标题栏中右键点击“在 Agents 中打开”按钮并选择“隐藏‘在 Agents 中打开’”来将其隐藏。您仍然可以随时通过命令面板或命令行打开 Agents 窗口。

界面概览

Agents 窗口会提取您在各个工作区中现有的 Copilot CLI、Cloud 和 Claude 代理会话。您可以在不同工作区的代理会话之间切换,而无需在单独的窗口中打开每个工作区。

Agents 窗口包含以下主要区域:

  1. 会话列表:位于侧边栏,您可以在此处查看和管理跨工作区的所有会话。默认情况下,会话按工作区分组。右键点击会话可查看更多命令,例如重命名、标记为完成、固定等。

  2. 自定义面板:位于会话列表下方,您可以在此处访问代理自定义项,以根据您的工作流程和偏好调整代理行为。

  3. 聊天区域:位于中心,您可以在此处查看聊天对话历史记录,并通过提示词与代理进行交互。

  4. 更改面板:位于右侧,您可以在此处审查代理在会话期间生成的文件更改和其他工件,并查看工作区的文件资源管理器。

Screenshot of the Agents window interface, showing the sessions list, customizations panel, chat area, and changes panel.

启动代理会话

Agents 窗口和主 VS Code 窗口共享相同的底层代理会话(Copilot CLI、Copilot cloud 和 Claude 代理)。这意味着您在 Agents 窗口中启动的任何会话都可以立即在主 VS Code 窗口中使用。

要在 Agents 窗口中启动新的代理会话:

  1. 选择侧边栏顶部的“新建”或按 ⌘N (Windows, Linux Ctrl+N)

    Screenshot showing how to start a new agent session by selecting New at the top of the sidebar in the Agents window.

  2. 使用工作区下拉菜单为您的聊天会话选择一个本地文件夹或 GitHub 仓库。

    您可以直接在会话列表中悬停在某个工作区上并选择“+”(新建会话),从而启动作用域仅限于该特定工作区的会话。

    如果选定的文件夹或仓库尚未受信任,您将在启动会话前收到 信任提示

    提示

    您可以跟踪和创建通过 SSH 或开发隧道(dev tunnel)在远程机器上运行的会话。有关详细信息,请参阅 在远程机器上打开会话

  3. 选择工作区后,从下拉菜单中为该会话选择代理。

    Screenshot showing how to select the agent type from the dropdown after selecting a workspace when starting a new agent session in the Agents window.

    可用的代理类型取决于您选择的工作区类型:

    • 文件夹:在 Copilot CLI 或 Claude 代理之间选择以启动新会话。您可以选择“在...中继续”随时将当前会话移交给 Copilot Cloud 代理。
    • 仓库:在 GitHub 仓库中启动的会话使用 Copilot cloud 代理。
  4. 对于 Copilot CLI 会话,请选择文件夹隔离模式或工作树(worktree)隔离模式

    • 工作树隔离:代理在由 Git 工作树 支持的单独文件夹中运行,在您准备好合并之前,这会将更改与您的主工作区隔离开来。
    • 文件夹隔离:代理在您的主工作区中运行,更改直接应用于您的文件。这是非 Git 项目的默认行为。

    (可选)选择一个源代码控制分支作为会话的基础。

    Screenshot showing how to select folder or worktree isolation and optionally choose a source control branch when starting a new agent session in the Agents window.

  5. (可选)为该会话选择自定义代理和语言模型。您可以在会话期间随时更改这些设置。

  6. 输入描述您想要完成的任务的提示词,然后按 Enter

    代理会将您的任务拆解为若干步骤、编写代码、运行命令,并在出错时进行自我修正。继续对话以优化结果或改变方向。

管理和审查文件更改

Agents 窗口中的“更改”面板提供了一个专用视图,详细展示了会话期间的文件和代理编辑信息。“更改”面板分为两个主要标签页:

  • 文件标签页:工作区中所有文件的文件资源管理器视图。
  • 更改标签页:由代理更改、添加或删除的文件列表。选择“分支更改”下拉菜单以选择要查看的更改。

要审查代理所做的更改,请在“更改”标签页中选择一个文件,以打开差异(diff)视图,该视图显示代理所做的编辑与工作区当前状态的对比。

Screenshot showing the diff view in a modal window in the Agents window, with the layout controls in the diff view toolbar visible.

您可以将差异视图与 Agents 窗口内的聊天视图并排打开,或者在模态窗口中打开以专注于更改。使用差异视图工具栏中的布局控件可在不同的显示模式之间切换。

在审查差异视图中的更改时,点击某处编辑,然后选择“添加反馈”,直接在文件中输入反馈意见,并提示代理进行调整。

Screenshot showing how to add feedback from the diff view in the Agents window, with the Add Feedback button visible in the toolbar.

审查更改后,“更改”面板提供以下选项来处理代理所做的编辑:

  • 提交:使用文件夹隔离时,将代理所做的更改直接提交到您的工作区。
  • 合并:使用工作树隔离时,合并(并可选择同步上游)并创建拉取请求(Pull Request)。
  • 检出:对于 Copilot Cloud 会话,在本地检出与会话的拉取请求相关联的分支,以进行审查或请求进一步编辑。
  • 丢弃:如果您不想保留某项更改,可以直接从“更改”面板丢弃一个或多个编辑。

Screenshot showing the Changes panel in the Agents window, with the Files and Changes views visible.

创建新会话时,“文件”面板包含一个同步按钮,允许您在代理开始工作之前从基础分支拉取上游更改。这有助于代理从您分支的最新状态开始工作,并减少您合并其更改时出现冲突的几率。

在本地验证代理更改

除了在“更改”面板中审查更改外,您还可以在提交或合并之前在本地验证代理所做的编辑。Agents 窗口支持在当前会话的上下文中运行任务和命令。例如,您可以运行构建或测试以确保代理所做的更改不会破坏您的项目,或者启动开发服务器以验证编辑在运行环境中的预期表现。

要在 Agents 窗口中配置任务:

  1. 启动或打开一个会话。

  2. 选择标题栏中的“任务”下拉菜单,然后选择“添加任务”。

    Screenshot showing the Add Task dialog in the Agents window, where you can configure a task to run in the context of the current session.

  3. 提供任务详情:

    • 名称:任务的描述性名称。
    • 命令:执行任务时要运行的命令(例如 npm run buildpytest)。
    • 运行选项:创建会话工作树时自动运行该任务。
    • 保存位置:选择将任务配置保存在工作区还是用户配置文件中,以便跨项目重用。
  4. 选择“添加任务”以保存任务配置。

任务配置完成后,它将出现在“任务”下拉菜单中,您可以在当前会话的上下文中运行它,以验证代理所做的更改。

如果您的应用程序涉及基于浏览器的行为,可以使用 Agents 窗口中的 集成浏览器。在聊天会话中选择一个 localhost 链接,即可在 Agents 窗口内的集成浏览器中打开它。浏览器标签页会在会话切换期间保持状态,因此如果您打开另一个会话,浏览器标签页将打开到您之前打开的页面,并保留该页面的状态。

Screenshot showing the integrated browser open in the Agents window, displaying a localhost page that was opened from a link in the chat session.

或者,您也可以从集成终端中选择 localhost 链接,或使用命令面板中的“Open Integrated Browser”命令打开集成浏览器(⇧⌘P (Windows, Linux Ctrl+Shift+P))。您可以使用集成浏览器中的布局控件将其显示为模态窗口,或将其嵌入到 Agents 窗口布局中与其他视图并列显示。

如果您想在当前会话的上下文中运行终端命令,请选择标题栏中的“打开终端”图标,打开一个集成终端,其当前工作目录设置为该会话的文件夹或工作树。

在远程机器上打开会话

您可以连接到远程机器以在该处启动会话,或跟踪在该机器上运行的现有会话的进度。当您离开主要开发机器但仍想查看代理的工作进展时,或者想要利用远程机器的资源(如专用硬件或特定的环境配置)时,这非常有用。

Agents 窗口通过 SSH 或开发隧道使用 代理主机协议 (AHP) 连接到远程机器。当您连接时,Agents 窗口会自动在远程机器上安装并启动 VS Code CLI。这也意味着远程机器必须处于开机状态且可通过网络访问。

通过 SSH 连接

前提条件:远程机器必须可通过 SSH 访问。无需在远程机器上安装额外的代理。

要通过 SSH 在远程机器上启动会话:

  1. 选择“新建”或按 ⌘N (Windows, Linux Ctrl+N) 启动新的代理会话。

  2. 在工作区下拉菜单中,选择“远程”标签页,然后选择“SSH”。如果您已经设置了 SSH 连接,它们将作为选项出现在下拉菜单中。

    Screenshot showing how to select SSH in the workspace dropdown when starting a new agent session in the Agents window.

  3. 输入远程机器的 SSH 连接字符串(例如 user@hostname)。

  4. 选择远程机器上用于会话的文件夹。

  5. 输入提示词并按 Enter 启动会话。

通过开发隧道(dev tunnel)连接

前提条件:远程机器上正在运行开发隧道。有关设置说明,请参阅 使用远程隧道进行开发

要通过开发隧道在远程机器上启动会话:

  1. 选择“新建”或按 ⌘N (Windows, Linux Ctrl+N) 启动新的代理会话。

  2. 在工作区下拉菜单中,选择“远程”标签页,然后选择“Tunnels”并选择您的账户类型。

    Screenshot showing how to select Tunnels in the workspace dropdown when starting a new agent session in the Agents window.

  3. 从列表中选择活动的开发隧道。

  4. 选择远程机器上用于会话的文件夹。

  5. 输入提示词并按 Enter 启动会话。

重要

确保您的开发隧道需要身份验证(GitHub 或 Microsoft 账户)。如果隧道允许匿名访问,任何发现 URL 的人都可以连接您的机器并启动代理会话。在自动批准模式开启时,这尤其危险,因为未经授权的用户可以使用您的凭据触发 AI 辅助的命令执行。有关更多信息,请参阅 安全性

在浏览器中使用 Agents 窗口

Agents 窗口也作为一个 Web 客户端提供,网址为 https://insiders.vscode.dev/agents,因此您可以从任何带有浏览器的设备管理代理会话。当您远离主要开发机器、在移动设备上工作,或想在不本地安装 Visual Studio Code 的情况下查看远程主机上运行的会话时,此功能非常有用。

基于浏览器的 Agents 窗口通过 开发隧道 连接到您的开发机器。代理会话在远程主机上运行,浏览器充当聊天的轻量级客户端,用于审查更改和管理会话。

设置开发隧道

在使用浏览器中的 Agents 窗口之前,请在您要连接的机器上启动开发隧道:

  1. 在远程主机上,运行以下命令启动开发隧道:

    code-insiders tunnel
    

    如果您使用的是稳定版,请改用 code tunnel

    首次运行此命令时,系统会提示您使用 GitHub 或 Microsoft 账户进行身份验证。为了安全起见,默认情况下隧道需要身份验证。

  2. 隧道运行后,在任何设备的浏览器中打开 https://insiders.vscode.dev/agents

  3. 系统提示时,选择“使用 GitHub 继续”进行登录。如果您已经过身份验证,Agents 窗口将直接加载。

  4. 您的隧道主机将出现在窗口顶部的主机栏中。选择它进行连接。

  5. 选择远程机器上的文件夹,选择一个代理,并启动会话。

主机管理

基于浏览器的 Agents 窗口中的主机栏显示您可用的隧道主机。每个主机都会显示其连接状态:

  • 在线:主机可达,您可以启动或继续会话。
  • 离线:主机上的隧道未运行。请在主机上启动隧道以恢复在线状态。

您可以直接通过主机栏连接和断开主机。如果主机在您进行活动会话时离线,会话将显示断开连接状态。当主机恢复在线时,会话将自动重新连接。

创建子会话

当您有一个活动会话时,您可以启动一个子会话,以便代理在同一工作区内执行单独的并行任务。子会话与父会话共享相同的工作区和工作树,但以空白聊天界面开始。子会话不会携带父会话的对话历史记录。

当您想在同一个项目中处理一个独立任务,而不打断正在进行的会话或从头开始一个全新的会话时,此功能非常有用。

要创建子会话:

  1. 在活动会话中,选择窗口标题栏中的“新建子会话” (+)。

    请注意,聊天区域中会出现一个新的子会话标签页,与父会话的标签页并列。子会话不会作为单独的条目出现在会话列表中。

    Screenshot showing how a new sub-session tab appears in the chat area alongside the parent session tab in the Agents window.

  2. 输入提示词并按 Enter 启动子会话。

提示

要从会话对话中的特定点探索替代方向,请 分叉(fork)会话。分叉会话会创建一个新的独立会话,其中包含到特定点为止的对话历史记录副本。

管理您的会话

侧边栏中的会话列表显示了您跨工作区的所有活动会话。您可以按项目或时间范围对会话进行分组,以跟踪相关工作。每个会话条目都会显示关键信息,例如会话名称、工作区、代理类型和文件更改统计信息。

使用过滤和搜索选项来缩小列表范围,找到您想处理的会话。

选择任何会话以查看聊天对话历史记录并从中断处继续。“更改”面板会显示来自代理的最新文件更新和工作区的文件资源管理器视图。

Screenshot showing the sessions list in the sidebar in the Agents window.

右键点击列表中的任何会话以查看其他管理选项,例如重命名、删除等。有关高级会话管理(如归档、分叉、检查点和导出),请参阅聊天文档中的 管理聊天会话

提示

使用标题栏左上角的箭头按钮在最近的会话之间导航,而无需离开窗口。

针对您的项目和工作流程自定义代理

自定义”面板让您可以直接访问所有 AI 自定义选项:

自定义 功能作用:
代理 定义具有特定工具和指令的自定义代理角色。了解更多
技能 添加可移植的指令文件夹,代理会在相关时加载它们。了解更多
说明 设置准则以塑造 AI 生成代码的方式。了解更多
钩子 在代理会话的生命周期点运行 Shell 命令。了解更多
MCP 服务器 通过 MCP 标准将 AI 连接到外部工具和服务。了解更多
插件 安装预打包的自定义组件包。了解更多

代理自定义面板使您可以轻松地在一处管理所有自定义设置:

  • 查看和编辑项目(工作区)或所有项目(用户)的现有自定义设置。
  • 使用内置编辑器或通过提示词生成新自定义设置。
  • 从插件市场安装插件或 MCP 服务器。
  • 启用或禁用自定义设置,而无需移除它们。

使用代理自定义面板左上角的下拉菜单来选择自定义设置应用于哪个代理。

Screenshot showing the Agent Customizations panel in the Agents window, with the list of available customizations visible.

信任文件夹

当您第一次在 Agents 窗口中打开新文件夹或仓库时,系统会提示您信任该文件夹及其子文件夹。文件夹信任是一种安全措施,可防止代理在不受信任的文件夹中运行,从而避免您的机器上被执行恶意代码。

如果您选择不信任该文件夹,则无法在 Agents 窗口中为该文件夹启动或继续代理会话。

Screenshot of the folder trust prompt in the Agents window, asking the user to trust the folder before starting an agent session.

Agents 窗口与主 VS Code 窗口共享相同的工作区信任状态。如果您在 VS Code 中信任了某个文件夹,它在 Agents 窗口中也会被信任,反之亦然。有关工作区信任的详细信息,请参阅 工作区信任文档

切换到另一个 GitHub 账户

要在 Agents 窗口中使用不同的 GitHub 账户,请选择窗口右上角的账户图标并选择“注销”。注销后,选择“登录”以使用其他 GitHub 账户进行身份验证。

配置 Agents 窗口的设置

Agents 窗口共享您所有的 VS Code 设置,因此您已有的配置会自动迁移。当您希望 Agents 窗口中的行为与编辑器窗口不同时,您可以仅为 Agents 窗口覆盖特定设置,而不会影响您的主 VS Code 配置。

要仅为 Agents 窗口覆盖设置,请编辑您的设置文件并将值限定在 Agents 窗口部分下。从 Agents 窗口打开设置编辑器(⌘, (Windows, Linux Ctrl+,)),即可查看设置适用的范围。

在 Agents 窗口中使用 VS Code 扩展

Agents 窗口可以运行您的 VS Code 扩展,因此您可以将依赖的工具引入您的“代理优先”工作流程中。

仅提供静态内容(如主题、语法、语言和快捷键)的扩展会自动在 Agents 窗口中激活。我们还测试了市场中排名前 100 的扩展,当它们安装在您的默认 VS Code 配置文件中时,其中一些也会激活。

对于其他扩展,您可以使用 extensions.supportAgentsWindow Open in VS Code Open in VS Code Insiders 设置按 ID 启用它们。

"extensions.supportAgentsWindow": {
    "myextension.id": true
}

启用扩展时请记住以下几点:

  • 通过这种方式启用的任何扩展都必须安装在您的默认 VS Code 配置文件中。
  • 扩展支持功能仍在不断演进。如果某个扩展在 Agents 窗口中表现不如预期,请 提交 issue,以便我们进行讨论。

如果您是扩展开发者,我们很乐意与您探讨在 Agents 窗口中启用扩展所带来的可能性。无论您是想构思利用跨项目运行代理的新场景,还是想分享有关您的现有扩展在 Agents 窗口中表现的反馈,都可以通过 GitHub issues 分享反馈和想法。

限制

  • 目前代理还无法直接为您打开集成浏览器。您可以从命令面板(Browser: Open Integrated Browser)启动集成浏览器,或通过在 Agents 窗口中选择 localhost 链接启动。

  • Agents 窗口目前仅支持以下代理类型:Copilot CLI、Copilot Cloud 和 Claude 代理。要使用本地或其他第三方代理,请从主 VS Code 窗口管理您的会话。

  • Copilot Cloud 会话仅支持 GitHub 托管的仓库。对于非 GitHub 项目,您仍然可以在 Agents 窗口中使用 Copilot CLI。

  • 代理下拉菜单目前没有“规划代理 (plan agent)”。您仍然可以在 Copilot CLI 或 Claude 代理会话中使用 /plan 命令。在 Copilot CLI 会话中,当您在提示词中要求创建计划时,规划代理也会自动调用。

  • 子会话目前尚不支持 Claude 代理会话。

  • Agents 窗口目前尚不支持多根工作区(multi-root)会话。您可以要求代理在单个会话中跨项目工作。

常见问题

我应该何时使用 Agents 窗口?

当您想要在 VS Code 中获得流线型的“代理优先”工作流程时,请使用 Agents 窗口。它提供了一个专注于端到端编排代理(验证、审查、PR)的界面,并跨项目支持代理自定义(插件、技能、MCP)。

当您想要功能齐全的编辑器(包含调试、笔记本、扩展生态系统和远程开发),且 AI 仅作为编码辅助而非核心体验时,请使用主 VS Code 窗口。

两种界面都支持代理式开发:Agents 窗口是为此目的专门构建的,而主 VS Code 窗口则在提供其他所有功能的同时支持代理开发。

我可以在 Agents 窗口中继续主 VS Code 窗口中启动的会话吗?

是的,在主 VS Code 窗口中启动的受支持代理类型(Copilot CLI、Copilot Cloud 和 Claude 代理)会话会自动出现在 Agents 窗口中。您可以在两个界面之间切换,而不会丢失任何会话历史或上下文。

我可以使用带有本地或第三方 CLI 代理的 Agents 窗口吗?

Agents 窗口目前仅支持使用 Copilot CLI、Copilot Cloud 和 Claude 代理的会话。如果您使用本地或第三方 CLI 代理,您仍然可以从主 VS Code 窗口管理这些会话,但它们暂时不会出现在 Agents 窗口中。

为什么 Copilot CLI 会话的更改没有应用到我的主工作区?

默认情况下,来自 Agents 窗口的 Copilot CLI 会话是使用 Git 工作树隔离创建的。这意味着代理在由 Git 工作树创建的独立文件夹中运行,这会将更改与您的主工作区隔离开来,直到您准备好合并它们。这允许您在将代理的更改整合到主代码库之前进行审查和测试。

您可以将工作树从 Agents 窗口合并回您的主工作区,或创建一个拉取请求以审查更改。

如何安装和更新 Agents 窗口?

Agents 窗口内置于 VS Code Insiders 中,并随其一起更新。无需额外的安装或设置。

我可以在 Agents 窗口中使用集成浏览器吗?

是的。您可以通过 Agents 窗口右上角的运行菜单访问集成浏览器,运行命令 Browser: Open Integrated Browser,或者在 Agents 窗口中选择 localhost 链接来打开集成浏览器。

后续步骤

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