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 启动和管理后台会话。

Screenshot of Copilot CLI session as a chat editor in VS Code.

提示

如果你主要在多个项目中与智能体协作,也可以在智能体窗口中管理你的 Copilot CLI 会话,这是一个与主 VS Code 窗口共享会话的智能体优先界面。

提示

OpenAI Codex 等第三方提供商也提供后台功能。详细了解第三方智能体

什么是 Copilot CLI 会话?

Copilot CLI 会话在你的本地机器后台独立运行,并使用 Copilot CLI 智能体环境。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 智能体的更改并防止其干扰你的正在进行的工作,请使用 工作树 隔离。在这种模式下,VS Code 会在单独的文件夹中为 Copilot CLI 会话创建一个 Git 工作树。智能体所做的所有更改都会应用到该工作树中,从而使其与你的主工作区保持分离,直到你准备好审查并应用它们为止。

如果你派生 (fork) 一个使用工作树隔离的 Copilot CLI 会话,派生后的会话将继续使用与原始会话相同的工作树。VS Code 仅在最后一个关联会话被删除或归档后才会移除共享的工作树。

如果你希望 Copilot CLI 会话的更改直接应用到当前工作区,可以选择 工作区 隔离。在这种模式下,智能体会直接在你的当前工作区中运行,更改将原地应用。

注意

要使用 Git 工作树和工作树隔离,你的工作区必须是一个 Git 仓库。

权限和审批

Copilot CLI 会话支持与本地智能体相同的权限级别。可用的权限级别取决于你选择的隔离模式。

  • 工作树隔离:权限级别自动设置为 跳过审批 (Bypass Approvals) 且无法更改。由于智能体是在代码库的隔离副本(Git 工作树)上操作,所有工具调用都将自动批准,无需确认对话框。
  • 工作区隔离:支持所有三种权限级别(默认审批 (Default Approvals)跳过审批 (Bypass Approvals)自动驾驶 (Autopilot)),这与本地智能体会话相同。在聊天输入区域的权限选择器中选择级别。

创建 Copilot CLI 会话

在 VS Code 中创建新的 Copilot CLI 会话

  1. 使用以下任一选项创建新会话

    • 打开聊天视图(⌃⌘I (Windows, Linux Ctrl+Alt+I)),然后从“会话目标”下拉菜单中选择 Copilot CLI

    • 点击顶部的 新聊天 图标,然后选择 新建 Copilot CLI 会话

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

  2. 在工作区或工作树隔离模式之间进行选择

    如果你使用工作树隔离,智能体会自动在每次执行结束时将更改提交到工作树,因此会话历史记录会与提交历史保持一致。

    提示

    你可以通过右键点击会话列表中的会话并选择 在新建窗口中打开工作树 来打开该会话的工作树。你也可以在源代码管理视图的仓库资源管理器 (scm.repositories.explorer) 中查看工作树。

  3. 提交你的提示词以启动智能体。或者,添加额外上下文或选择特定的语言模型和自定义智能体。

  4. 在聊天视图中跟踪会话状态。

提示

你可以创建多个 Copilot CLI 会话以并行处理不同的任务。

将本地会话移交给 Copilot CLI

对于复杂任务,首先在 VS Code 中与本地智能体交互以明确需求,然后将任务移交给 Copilot CLI 进行后台自主执行会非常有帮助。当使用计划智能体创建计划,然后将该计划的实现移交给 Copilot CLI 时,此功能特别有用。

当你将本地智能体会话移交给 Copilot CLI 会话时,完整的对话历史和上下文都会传递给后台会话。

将本地智能体会话移交给 Copilot CLI

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

  2. 与本地智能体交互,直到准备好移交任务

  3. 要移交给 Copilot CLI,你可以使用以下选项

    • 打开 会话目标 下拉菜单,然后选择 Copilot CLI

      Screenshot showing the Session Target dropdown in VS Code chat interface.

    • 如果你正在使用计划智能体,选择 开始实现 下拉菜单,然后选择 在 Copilot CLI 中继续,以在 Copilot CLI 会话中运行实现任务

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

Copilot CLI 会话将自动启动,并携带完整的对话历史和上下文。

远程控制 Copilot CLI 会话

"/remote on" 命令允许你从 github.com 或 GitHub 移动应用程序远程控制 Copilot CLI 会话。通过远程控制,你可以随时随地监控和引导正在进行的 Copilot CLI 会话,让你更加灵活地推进工作,而无需受限于特定设备。你可以在 VS Code 和 GitHub 之间保持完整的会话上下文和历史记录同步。

提示

远程控制是远程运行智能体会话的两种方式之一。你还可以通过 SSH 或开发隧道将智能体窗口连接到远程机器。详细了解远程智能体会话

启用远程控制后,VS Code 会实时将会话历史、工具活动和状态更新流式传输到关联的 GitHub 任务页面。你在一个地方执行的操作会实时反映在另一个地方。如果会话需要工具调用审批或问题输入,提示会同时显示在这两个位置,你可以在任何一个地方进行响应。

使用 Copilot CLI 会话的远程控制功能

  1. 从聊天视图启动或恢复一个 Copilot CLI 会话。

  2. 在聊天输入框中输入 "/remote on" 以启用远程控制并创建关联的 GitHub 任务页面。

  3. 选择 在 GitHub 上打开 以打开关联的任务页面,或扫描二维码在你的移动设备上打开。

随时运行 "/remote" 以检查当前的远程控制状态。"/remote" 命令仅显示状态,不会启用或禁用远程控制。

要停止将会话镜像到 GitHub,请在聊天输入框中输入 "/remote off"

要在 VS Code 中禁用 Copilot CLI 会话的远程控制支持,请关闭 github.copilot.chat.cli.remote.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置。

注意

远程控制需要 VS Code 中的 GitHub 身份验证,以及映射到 GitHub 仓库的工作区。如果需要额外的 GitHub 权限,VS Code 会在启用远程控制之前提示你授予权限。

在终端中使用 Copilot CLI

除了在聊天视图中启动 Copilot CLI 会话外,你还可以直接在 VS Code 终端中使用 Copilot CLI。

Screenshot showing the Copilot CLI session inside VS Code.

打开 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 上的 bashzsh
  • Windows 上的 PowerShell命令提示符 (Command Prompt)

从终端启动和恢复会话

当你从 Copilot CLI 终端启动新会话时,VS Code 会自动检测该会话并将其显示在聊天视图的会话列表中。然后,你可以在终端或聊天视图中跟踪进度、发送后续提示词或审查更改。

要在终端中恢复现有的 Copilot CLI 会话,请在会话列表中右键点击该会话并选择 在终端中恢复

VS Code 会自动处理 Copilot CLI 终端的身份验证,因此你无需单独登录。

多仓库工作区

如果你的工作区包含多个 Git 仓库,当你启动 Copilot CLI 会话时,VS Code 会在聊天输入框中显示一个仓库选择器。使用此选择器选择应在哪个仓库中创建工作树。

会话启动后,该会话的仓库选择器将被禁用。工作树将显示在“源代码管理”视图中的“仓库”节点下的 工作树 节点中。

提示

要查看工作区中的所有仓库,请启用 scm.repositories.explorer 在 VS Code 中打开 在 VS Code Insiders 中打开 设置并打开“源代码管理”视图。

在 Copilot CLI 中使用自定义智能体

自定义智能体允许你在 VS Code 中为智能体定义自定义角色和职责。例如,你可以创建一个用于执行代码审查的自定义智能体。自定义智能体可以定义特定的指令和行为。

创建 Copilot CLI 会话时,你可以选择一个自定义智能体来处理任务。该自定义智能体将按照定义的行为进行操作。

在 Copilot CLI 中使用自定义智能体

  1. 使用 github.copilot.chat.cli.customAgents.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为 Copilot CLI 启用自定义智能体

  2. 使用命令面板中的 Chat: New Custom Agent 命令在工作区中创建自定义智能体(⇧⌘P (Windows, Linux Ctrl+Shift+P)

  3. 创建一个新的 Copilot CLI 会话,并从智能体下拉菜单中选择自定义智能体

    Screenshot showing custom agent selection in VS Code chat interface.

  4. 输入提示词,并观察自定义智能体是如何被调用来处理该任务的

注意

目前,只有工作区中定义的自定义智能体可用于 Copilot CLI 会话。详细了解创建自定义智能体

Copilot CLI 会话的局限性

  • Copilot CLI 会话无法访问所有 VS Code 内置工具。你可以在聊天输入框中显式添加上下文

  • 无法访问插件提供的工具,仅限于通过 CLI 工具可用的模型。

  • 目前只能访问不需要身份验证的本地 MCP 服务器。

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