现已发布!阅读关于 12 月份的新功能和修复。

Visual Studio Code 中的后台代理

Visual Studio Code 中的后台代理是基于 CLI 的代理,例如 Copilot CLI,它们在您的本地计算机上后台运行。它们可以自主运行,而您可以继续在编辑器中进行其他工作。后台代理可以使用 Git worktrees,使其独立于您的主工作区运行,并防止与您的活动工作发生冲突。

本文档涵盖了后台代理的关键功能,以及如何从 Copilot CLI 或 OpenAI Codex 启动和管理后台会话。

Screenshot of background agent session as a chat editor in VS Code.

什么是后台代理?

与在 VS Code 编辑器上下文中运行并感知其上下文的本地代理不同,后台代理通过本地计算机上的命令行界面 (CLI) 独立运行。您可以从 VS Code 的统一聊天视图中查看和管理所有后台代理会话。此视图还允许您直接从 VS Code 创建新的后台代理会话,或将本地代理对话移交给后台代理。

由于后台代理在没有用户交互的情况下在后台运行,因此它们非常适合范围明确且拥有所有必要上下文的任务。例如,根据计划实现功能、创建概念验证的多个变体,或实现明确定义的修复或功能。

后台代理会自主地将更改应用到您的代码库。为了防止干扰您在编辑器中的活动工作,后台代理可以使用 Git worktrees 在隔离环境中运行,在那里它们可以进行更改而不影响您的主工作区。当您使用 worktree 隔离启动后台代理会话时,VS Code 会自动为该会话创建一个单独的文件夹。您可以选择在主工作区中运行后台代理,但这可能会导致冲突。

后台代理通过 CLI 运行,无法直接访问 VS Code 内置工具和运行时上下文(例如失败的测试或文本选择)。它们也无法访问 MCP 服务器或扩展提供的工具。它们仅限于通过 CLI 工具提供的模型。后台代理可以运行终端命令,并且在需要时可能会提示您进行批准。

要将任务分配给后台代理,您可以直接从“聊天”视图创建新的后台会话,使用代理的专用 CLI,或将 VS Code 中的本地代理对话移交给后台代理会话。

Copilot CLI

Copilot CLI 是 VS Code 中的主要后台代理。您可以直接从终端使用 Copilot CLI,或者在 VS Code 中启动和管理会话。

要开始使用,请确保已安装并设置好 Copilot CLI。VS Code 应该会自动处理此问题,但您也可以选择通过以下命令手动安装 CLI

npm install -g @github/copilot

在 GitHub 文档中了解有关Copilot CLI的更多信息。

OpenAI Codex

OpenAI Codex 后台代理使用 OpenAI 的 Codex autonomously 执行编码任务。要使用 OpenAI Codex 代理,请确保从 Visual Studio Marketplace 安装OpenAI Codex扩展。

VS Code 中的 OpenAI Codex 使您可以使用 Copilot Pro+ 订阅进行身份验证并访问 Codex,而无需额外设置。在 GitHub 文档中获取有关GitHub Copilot 计费和高级请求的更多信息。

查看和管理后台代理会话

您可以在 VS Code 的“聊天”视图中查看和管理所有后台代理会话。通过从筛选选项中选择后台代理,筛选会话列表以仅显示后台代理会话。

Screenshot of background agent filter in VS Code Chat view.

从列表中选择一个后台代理会话,以在“聊天”视图中打开会话详细信息。如果您更喜欢在编辑器选项卡(聊天编辑器)中查看会话,请右键单击该会话并选择另存为编辑器

如果您更喜欢在终端而不是 VS Code 中的聊天对话中查看后台会话,请右键单击“聊天”视图中的会话,然后选择在终端中恢复代理会话。您可以直接在 VS Code 中与 Copilot CLI 进行交互。

Screenshot showing the Copilot CLI session inside VS Code.

启动后台代理会话

根据您的工作流程,您可以通过多种方式启动后台代理会话。您可以通过使用 CLI 创建新会话并直接提供任务详细信息,或从 VS Code 中的聊天视图启动新会话。

另一种方法——尤其是对于复杂任务——是首先在 VS Code 的聊天中与本地代理进行交互,一旦范围和详细信息明确,就将任务移交给后台代理会话。例如,您可以使用计划代理来概述多步功能实现,然后将实际编码委托给后台代理。

创建 Copilot CLI 后台代理会话

您可以通过多种方式在 VS Code 中创建新的 Copilot CLI 后台代理会话

  • 从聊天视图

    1. 打开聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I))

    2. 选择“新建聊天”下拉菜单 > “新建后台代理

  • 当您在本地聊天会话中时

    • 在聊天输入中键入@cli <任务描述>并发送消息

    • 输入提示,然后选择继续处理 > 后台代理

  • 从命令面板运行Chat: New Background Agent命令(⇧⌘P (Windows, Linux Ctrl+Shift+P)

将打开一个新的后台代理会话,您可以在其中提供其他任务详细信息并跟踪 Copilot CLI 会话的进度。

提示

当您在终端中使用 GitHub Copilot CLI 启动会话时,VS Code 中的“聊天”视图会自动检测并显示此后台会话。您可以进一步在 VS Code 中与此后台会话进行交互。

创建 OpenAI Codex 后台代理会话

从“聊天”视图创建新的 OpenAI Codex 后台代理会话

  • 从聊天视图

    1. 打开聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I))

    2. 选择“新建聊天”下拉菜单 > “新建 Codex 代理

  • 从命令面板运行Codex: New Codex Agent命令(⇧⌘P (Windows, Linux Ctrl+Shift+P)

将打开一个新的 Codex 后台代理会话,您可以在其中提供其他任务详细信息并跟踪 Codex 会话的进度。

将代理会话移交给后台代理

对于复杂任务,首先在 VS Code 聊天中与本地代理进行交互以澄清需求,然后将任务移交给后台代理进行自主执行可能很有帮助。当您将本地代理对话移交给后台代理会话时,完整的对话历史记录和上下文将传递给后台代理。

要在后台代理会话中继续本地代理会话

  1. 打开聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I))

  2. 与本地代理进行交互,直到您准备好将任务移交给后台代理

  3. 要移交给后台代理,您有以下选项

    • 选择继续处理,然后选择后台

      Screenshot showing the "Continue in Chat" button in VS Code chat interface.

    • 如果您正在使用计划代理,请选择“开始实现”下拉菜单,然后选择“在后台继续”以在后台代理会话中运行实现

      Screenshot showing the "Start Implementation" button in VS Code chat interface.

    • 在聊天输入中键入@cli将任务移交给后台代理

后台代理会话将自动启动,并沿用完整的对话历史记录和上下文。您可以在“聊天”视图中监控后台代理的进度。

创建隔离的后台代理会话(实验性功能)

为了将后台代理的更改与您的主工作区隔离,您可以创建一个使用Git worktree的后台代理会话。当您创建 worktree 时,VS Code 会为该会话创建一个单独的文件夹。后台代理在此隔离文件夹中运行,以防止与您的活动工作发生冲突。

要在后台代理会话中使用 Git worktrees

  1. 在 VS Code 中启动新的 Copilot CLI 后台代理会话。

  2. 在聊天输入框中,选择Worktree作为隔离模式。

    Screenshot showing the "Worktree" isolation mode option in VS Code chat interface.

    当您选择Workspace时,后台代理会将更改直接应用到您的主工作区。

  3. 输入提示以启动代理会话。VS Code 会自动创建一个新的 Git worktree。

    后台代理所做的所有更改都将应用到 worktree 文件夹,从而将其与您的主工作区隔离。

  4. 在“源代码管理”视图的“存储库”视图中,您可以查看 Git worktree

    Screenshot showing Git worktree in VS Code Source Control view.

    Agents 视图还显示了后台代理会话的 worktree 路径。

  5. 在 Agents 视图中监控后台代理的进度

  6. 后台代理完成任务后,您可以查看并将更改从 worktree 合并回您的主工作区。

    在后台会话输出的底部,有一个本后台代理会话所更改文件的摘要,然后是此 worktree 中所有未完成的更改(这些更改可能来自后台代理,也可能来自您对 worktree 的自身编辑)。

    Screenshot showing the ability to keep worktree changes.

    您可以选择

    • 通过单击单个文件名或使用View All Edits diff 按钮来探索文件更改
    • 使用Keep按钮保留代理会话的待定更改,或使用Undo按钮删除它们
    • 使用Apply按钮将 worktree 上保留的所有更改应用到您的本地存储库

了解有关在 VS Code 源代码管理中使用 Git worktrees的更多信息。

将自定义代理与后台代理一起使用(实验性功能)

自定义代理允许您为 VS Code 中的代理定义自定义角色和身份。例如,您可以创建一个用于执行代码审查的自定义代理。自定义代理可以定义特定的指令和行为。

当您创建后台代理会话时,可以选择一个自定义代理来处理任务。后台代理将根据自定义代理定义的行为进行操作。

要启用自定义代理与后台代理

  1. 使用github.copilot.chat.cli.customAgents.enabled设置启用自定义代理以支持后台代理

  2. 通过命令面板中的Chat: New Custom Agent命令在您的工作区中创建自定义代理(⇧⌘P (Windows, Linux Ctrl+Shift+P)

    注意

    目前,只有在工作区中定义的自定义代理可用于后台代理会话。了解有关创建自定义代理的更多信息。

  3. 创建一个新的后台代理会话,并从“Agents”下拉菜单中选择自定义代理

    Screenshot showing custom agent selection in VS Code chat interface.

  4. 输入一个提示,并注意自定义代理被用来处理任务

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