Visual Studio Code 中的后台代理
Visual Studio Code 中的后台代理是基于 CLI 的代理,例如 Copilot CLI,它们在您的本地计算机上后台运行。它们可以自主运行,而您可以继续在编辑器中进行其他工作。后台代理可以使用 Git worktrees,使其独立于您的主工作区运行,并防止与您的活动工作发生冲突。
本文档涵盖了后台代理的关键功能,以及如何从 Copilot CLI 或 OpenAI Codex 启动和管理后台会话。

什么是后台代理?
与在 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 的“聊天”视图中查看和管理所有后台代理会话。通过从筛选选项中选择后台代理,筛选会话列表以仅显示后台代理会话。

从列表中选择一个后台代理会话,以在“聊天”视图中打开会话详细信息。如果您更喜欢在编辑器选项卡(聊天编辑器)中查看会话,请右键单击该会话并选择另存为编辑器。
如果您更喜欢在终端而不是 VS Code 中的聊天对话中查看后台会话,请右键单击“聊天”视图中的会话,然后选择在终端中恢复代理会话。您可以直接在 VS Code 中与 Copilot CLI 进行交互。

启动后台代理会话
根据您的工作流程,您可以通过多种方式启动后台代理会话。您可以通过使用 CLI 创建新会话并直接提供任务详细信息,或从 VS Code 中的聊天视图启动新会话。
另一种方法——尤其是对于复杂任务——是首先在 VS Code 的聊天中与本地代理进行交互,一旦范围和详细信息明确,就将任务移交给后台代理会话。例如,您可以使用计划代理来概述多步功能实现,然后将实际编码委托给后台代理。
创建 Copilot CLI 后台代理会话
您可以通过多种方式在 VS Code 中创建新的 Copilot CLI 后台代理会话
-
从聊天视图
-
打开聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I))
-
选择“新建聊天”下拉菜单 > “新建后台代理”
-
-
当您在本地聊天会话中时
-
在聊天输入中键入
@cli <任务描述>并发送消息 -
输入提示,然后选择继续处理 > 后台代理
-
-
从命令面板运行Chat: New Background Agent命令(⇧⌘P (Windows, Linux Ctrl+Shift+P))
将打开一个新的后台代理会话,您可以在其中提供其他任务详细信息并跟踪 Copilot CLI 会话的进度。
当您在终端中使用 GitHub Copilot CLI 启动会话时,VS Code 中的“聊天”视图会自动检测并显示此后台会话。您可以进一步在 VS Code 中与此后台会话进行交互。
创建 OpenAI Codex 后台代理会话
从“聊天”视图创建新的 OpenAI Codex 后台代理会话
-
从聊天视图
-
打开聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I))
-
选择“新建聊天”下拉菜单 > “新建 Codex 代理”
-
-
从命令面板运行Codex: New Codex Agent命令(⇧⌘P (Windows, Linux Ctrl+Shift+P))
将打开一个新的 Codex 后台代理会话,您可以在其中提供其他任务详细信息并跟踪 Codex 会话的进度。
将代理会话移交给后台代理
对于复杂任务,首先在 VS Code 聊天中与本地代理进行交互以澄清需求,然后将任务移交给后台代理进行自主执行可能很有帮助。当您将本地代理对话移交给后台代理会话时,完整的对话历史记录和上下文将传递给后台代理。
要在后台代理会话中继续本地代理会话
-
打开聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I))
-
与本地代理进行交互,直到您准备好将任务移交给后台代理
-
要移交给后台代理,您有以下选项
-
选择继续处理,然后选择后台

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

-
在聊天输入中键入
@cli将任务移交给后台代理
-
后台代理会话将自动启动,并沿用完整的对话历史记录和上下文。您可以在“聊天”视图中监控后台代理的进度。
创建隔离的后台代理会话(实验性功能)
为了将后台代理的更改与您的主工作区隔离,您可以创建一个使用Git worktree的后台代理会话。当您创建 worktree 时,VS Code 会为该会话创建一个单独的文件夹。后台代理在此隔离文件夹中运行,以防止与您的活动工作发生冲突。
要在后台代理会话中使用 Git worktrees
-
在 VS Code 中启动新的 Copilot CLI 后台代理会话。
-
在聊天输入框中,选择Worktree作为隔离模式。

当您选择Workspace时,后台代理会将更改直接应用到您的主工作区。
-
输入提示以启动代理会话。VS Code 会自动创建一个新的 Git worktree。
后台代理所做的所有更改都将应用到 worktree 文件夹,从而将其与您的主工作区隔离。
-
在“源代码管理”视图的“存储库”视图中,您可以查看 Git worktree

Agents 视图还显示了后台代理会话的 worktree 路径。
-
在 Agents 视图中监控后台代理的进度
-
后台代理完成任务后,您可以查看并将更改从 worktree 合并回您的主工作区。
在后台会话输出的底部,有一个本后台代理会话所更改文件的摘要,然后是此 worktree 中所有未完成的更改(这些更改可能来自后台代理,也可能来自您对 worktree 的自身编辑)。

您可以选择
- 通过单击单个文件名或使用
View All Editsdiff 按钮来探索文件更改 - 使用
Keep按钮保留代理会话的待定更改,或使用Undo按钮删除它们 - 使用
Apply按钮将 worktree 上保留的所有更改应用到您的本地存储库
- 通过单击单个文件名或使用
了解有关在 VS Code 源代码管理中使用 Git worktrees的更多信息。
将自定义代理与后台代理一起使用(实验性功能)
自定义代理允许您为 VS Code 中的代理定义自定义角色和身份。例如,您可以创建一个用于执行代码审查的自定义代理。自定义代理可以定义特定的指令和行为。
当您创建后台代理会话时,可以选择一个自定义代理来处理任务。后台代理将根据自定义代理定义的行为进行操作。
要启用自定义代理与后台代理
-
使用github.copilot.chat.cli.customAgents.enabled设置启用自定义代理以支持后台代理
-
通过命令面板中的Chat: New Custom Agent命令在您的工作区中创建自定义代理(⇧⌘P (Windows, Linux Ctrl+Shift+P))
注意目前,只有在工作区中定义的自定义代理可用于后台代理会话。了解有关创建自定义代理的更多信息。
-
创建一个新的后台代理会话,并从“Agents”下拉菜单中选择自定义代理

-
输入一个提示,并注意自定义代理被用来处理任务
相关资源
- 代理概述:了解不同的代理类型以及如何跨代理移交任务
- 云代理:了解需要 GitHub 集成的云代理的任务
- 自定义代理:创建自定义代理角色和身份
- GitHub Copilot CLI 文档