Visual Studio Code 中的 Copilot CLI 会话
Visual Studio Code 支持使用 GitHub Copilot CLI 在后台运行代理会话。你可以在 VS Code 的统一聊天视图中启动、监控和管理 Copilot CLI 会话,而代理会在你的本地机器上自主运行,同时你可以在编辑器中继续进行其他工作。你可以并行运行多个 Copilot CLI 会话,以同时处理独立的任务。
若要启动 Copilot CLI 会话,你可以创建一个新会话,或者将本地代理会话移交给 Copilot CLI,并传递现有上下文。
本文介绍了 Copilot CLI 代理的主要功能,以及如何从 Copilot CLI 启动和管理后台会话。

像 OpenAI Codex 这样的第三方提供商也提供后台功能。了解有关第三方代理的更多信息。
什么是 Copilot CLI 会话?
Copilot CLI 会话在你的本地机器上独立于后台运行,并使用 Copilot CLI 代理工具包(agent harness)。VS Code 通过 Copilot SDK 与这些代理集成,以启动、停止和监控后台会话的进度。VS Code 会自动为你安装和配置 Copilot CLI。
Copilot SDK 会话在 VS Code 之外运行,并且在你关闭 VS Code 窗口后仍会继续在后台运行。这种行为与使用编辑器内 VS Code 代理工具包且在 VS Code 停止时随之停止的本地代理不同。
你可以通过统一聊天视图与 Copilot CLI 会话进行交互。当后台会话需要你的输入或需要权限来执行操作时,你可以直接在聊天中进行处理。当会话需要输入时,代理状态指示器也会提供提示。
由于 Copilot CLI 会话在后台运行,它们非常适合范围明确、拥有所有必要上下文且不需要频繁用户交互的任务。例如:根据计划实现功能、创建概念验证的多个变体,或者实现明确定义的修复或功能。
Copilot CLI 支持聊天中的斜杠命令,包括可复用提示词、代理技能、钩子,用于管理长对话的 /compact,以及用于切换工具自动批准的 /yolo 或 /autoApprove。在 Copilot CLI 会话的聊天输入框中输入 / 即可查看可用命令。
隔离模式
Copilot CLI 支持两种类型的隔离模式来管理代理对代码库所做更改的应用方式:工作树 (Worktree) 隔离和工作区 (Workspace) 隔离。你可以在创建新的 Copilot CLI 会话时选择隔离模式。
为了隔离来自 Copilot CLI 代理的更改并防止干扰你的当前工作,请使用工作树 (Worktree) 隔离。在这种模式下,VS Code 会在单独的文件夹中为 Copilot CLI 会话创建一个 Git 工作树。代理所做的所有更改都会应用到该工作树中,从而使其与你的主工作区保持分离,直到你准备好审查并应用它们为止。
如果你希望 Copilot CLI 会话的更改直接应用到你当前的工作区,可以选择工作区 (Workspace) 隔离。在这种模式下,代理直接在你当前的工作区中操作,更改会原地应用。
要使用 Git 工作树和工作树隔离,你的工作区必须是一个 Git 仓库。
权限和批准
Copilot CLI 会话支持与本地代理相同的权限级别。可用的权限级别取决于你选择的隔离模式。
- 工作树隔离:权限级别自动设置为绕过批准 (Bypass Approvals) 且无法更改。由于代理是在你代码库的隔离副本(Git 工作树)上运行的,因此所有工具调用都会在无需确认对话框的情况下自动批准。
- 工作区隔离:与本地代理会话一样,所有三个权限级别(默认批准 (Default Approvals)、绕过批准 (Bypass Approvals) 和 自动驾驶 (Autopilot))均可用。请从聊天输入区域的权限选择器中选择一个级别。
Copilot CLI 会话的局限性
-
Copilot CLI 会话无法访问所有 VS Code 内置工具。你可以在聊天输入中显式添加上下文。
-
无法访问扩展程序提供的工具,且仅限于 CLI 工具可用的模型。
-
目前只能访问不需要身份验证的本地 MCP 服务器。
创建 Copilot CLI 会话
在 VS Code 中创建新的 Copilot CLI 会话
-
使用以下任一选项创建新会话
-
打开聊天视图(⌃⌘I (Windows, Linux Ctrl+Alt+I)),并在“会话目标”下拉菜单中选择 Copilot CLI
-
选择顶部的新建聊天图标,然后选择新建 Copilot CLI 会话
-
从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行 Chat: New Copilot CLI 命令
-
-
在工作区或工作树隔离模式之间进行选择
如果你使用工作树隔离,代理会在每轮对话结束时自动将更改提交到工作树,这样会话历史记录就能与提交历史记录保持一致。
提示你可以通过在会话列表中右键单击会话并选择在新窗口中打开工作树来打开会话的工作树。你也可以在源代码管理视图的仓库资源管理器 (
scm.repositories.explorer) 中查看工作树。 -
提交你的提示词以启动代理。可以选择添加额外的上下文,或选择特定的语言模型和自定义代理。
-
在聊天视图中跟踪会话状态。
你可以创建多个 Copilot CLI 会话以并行处理不同的任务。
将本地会话移交给 Copilot CLI
对于复杂的任务,可以先与 VS Code 中的本地代理交互以明确需求,然后将任务移交给 Copilot CLI 在后台自主执行。在使用 计划代理 (Plan agent) 创建计划,然后将该计划的实施移交给 Copilot CLI 时,此功能非常有用。
当你将本地代理对话移交给 Copilot CLI 会话时,完整的对话历史记录和上下文会被传递给后台会话。
将本地代理会话移交给 Copilot CLI
-
打开聊天视图 (⌃⌘I (Windows, Linux Ctrl+Alt+I))
-
与本地代理交互,直到准备好移交任务
-
要移交给 Copilot CLI,你有以下选项
-
打开会话目标下拉菜单,然后选择 Copilot CLI

-
如果你正在使用 计划代理,选择开始实施下拉菜单,然后选择在 Copilot CLI 中继续,以便在 Copilot CLI 会话中运行实施过程

-
Copilot CLI 会话会自动启动,并继承完整的对话历史和上下文。
从终端使用 Copilot CLI
除了从聊天视图启动 Copilot CLI 会话外,你还可以直接从 VS Code 终端使用 Copilot CLI。

打开 Copilot CLI 终端
VS Code 会注册一个 GitHub Copilot CLI 终端配置文件,你可以使用它打开专用的 Copilot CLI 终端。你可以通过多种方式打开 Copilot CLI 终端:
-
选择终端面板中 + 按钮旁边的下拉菜单,并选择 GitHub Copilot CLI
-
从命令面板运行 Chat: New Copilot CLI Session 命令以在面板中打开 Copilot CLI 终端,或运行 Chat: New CLI Session to the Side 以在当前编辑器旁边的编辑器选项卡中打开它
-
从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行 Terminal: Create New Terminal (With Profile) 命令,并选择 GitHub Copilot CLI
-
在任何 VS Code 集成终端中输入
copilot,即可直接启动 Copilot CLI
Copilot CLI 终端支持以下 Shell
- macOS 和 Linux 上的 bash 和 zsh
- Windows 上的 PowerShell 和 命令提示符 (Command Prompt)
从终端启动和恢复会话
当你从 Copilot CLI 终端启动新会话时,VS Code 会自动检测该会话并将其显示在聊天视图的会话列表中。然后,你可以从终端或聊天视图跟踪进度、发送后续提示词或审查更改。
若要恢复终端中的现有 Copilot CLI 会话,请在会话列表中右键单击该会话,然后选择在终端中恢复。
VS Code 会自动处理 Copilot CLI 终端的身份验证,因此你无需单独登录。
多仓库工作区
如果你的工作区包含多个 Git 仓库,当你启动 Copilot CLI 会话时,VS Code 会在聊天输入中显示一个仓库选择器。使用此选择器可以选择要在哪个仓库中创建工作树。
会话启动后,该会话的仓库选择器将被禁用。工作树将出现在“源代码管理仓库”视图的工作树节点下所选仓库的下方。
要查看工作区中的所有仓库,请启用 scm.repositories.explorer 设置并打开“源代码管理”视图。
在 Copilot CLI 中使用自定义代理(实验性功能)
自定义代理允许你为 VS Code 中的代理定义自定义角色和职责。例如,你可以创建一个用于执行代码审查的自定义代理。自定义代理可以定义特定的指令和行为。
创建 Copilot CLI 会话时,你可以选择一个自定义代理来处理任务。自定义代理将按照定义的行为进行操作。
在 Copilot CLI 中使用自定义代理
-
通过 github.copilot.chat.cli.customAgents.enabled 设置启用 Copilot CLI 的自定义代理
-
使用命令面板中的 Chat: New Custom Agent 命令在你的工作区中创建自定义代理(⇧⌘P (Windows, Linux Ctrl+Shift+P))
-
创建新的 Copilot CLI 会话,并从“代理”下拉菜单中选择该自定义代理

-
输入提示词,并注意自定义代理已被用于处理该任务
目前,仅在工作区中定义的自定义代理可用于 Copilot CLI 会话。了解有关创建自定义代理的更多信息。
相关资源
- 代理概览:了解不同代理类型以及如何在代理之间移交任务
- 自定义代理:创建自定义代理角色和职责
- GitHub Copilot CLI 文档