# 在 GitHub Copilot CLI 中使用 Autopilot 模式

提供 Copilot CLI 一个定义完善的任务，并允许它完成实现、测试和迭代，而无需在每个步骤后等待输入。

有关何时使用 Autopilot 模式以及移交任务前要考虑的内容的概述，请参阅 [允许GitHub Copilot自主工作](/zh/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/autopilot)。

## 启动或切换到 Autopilot 模式

可以从交互式 Copilot CLI 会话启动 Autopilot 模式。

1. 在终端中，启动 CLI：

   ```shell copy
   copilot
   ```

2. 按 <kbd>Shift</kbd>+<kbd>Tab</kbd> ，直到状态行显示 Autopilot 模式。

3. 如果 CLI 询问如何处理权限，请选择是启用所有权限、对会话使用手动审批还是取消。

4. 输入包含结果以及您期望的检查项的特定提示。 例如：

   ```copilot
   Add pagination to the users API. Preserve the existing response
   fields, add tests for the first and final pages, and run the API
   test suite.
   ```

还可以使用 `/autopilot` 斜杠命令启动或重新聚焦 Autopilot 模式：

```copilot
/autopilot Fix the failing API tests and verify the full test suite
```

若要离开 Autopilot 模式，请按 <kbd>Shift</kbd>+<kbd>Tab</kbd> 以切换到另一种模式。

## 从计划迁移到 Autopilot 模式

对于复杂的工作，请在允许自主执行之前创建和审查计划。

1. 在交互式会话中，按 <kbd>Shift</kbd>+<kbd>Tab</kbd> ，直到状态行显示计划模式。
2. 输入描述更改、约束和所需验证的提示。
3. 查看计划并要求 Copilot 对其进行修改，直到它符合你的要求。
4. 选择 **“接受计划”，然后在 Autopilot 执行模式下继续**。
5. 如果出现提示，请选择适合该任务的权限。
6. 监视实现，然后查看生成的更改和测试输出。

若要从命令行启动 plan-then-Autopilot 会话，请输入：

```shell copy
copilot --plan --mode autopilot
```

当计划准备就绪时，此命令会自动从规划模式切换到 Autopilot 模式。 它不会等待交互式计划审批。 有关确切的行为和兼容选项，请参阅 [GitHub Copilot CLI 命令参考](/zh/copilot/reference/copilot-cli-reference/cli-command-reference#plan-then-autopilot)。

## 配置权限

进入 Autopilot 模式时，如果尚未授予 Copilot 所有权限，则会显示一条消息，提示你在三个选项之间进行选择：

```text
1. Enable all permissions (recommended)
2. Use Manual Approval for this session
3. Cancel (Esc)
```

如果启用所有权限，你将从 Autopilot 模式获得最佳结果。 如果选择手动审批， Copilot 将自动拒绝需要审批的任何工具请求，这可能会阻止其完成某些任务。 稍后可以在 Autopilot 会话期间使用命令 `/yolo`（或其别名 `/allow-all`）更改主意并授予完全权限。

在授予 Copilot 各种权限之前，请考虑使用本地沙盒或在云沙盒中运行会话，以限制可以访问的内容 Copilot 。

如果在使用 Autopilot 模式时启用本地沙盒，Copilot 会在不受中断的情况下完成其在沙盒内能够执行的任何操作。 但是，任何需要逃逸沙盒的步骤——例如向当前工作目录之外的文件写入内容——都会被拒绝。 有关本地沙盒的更多信息，请参阅 [关于 GitHub Copilot 的本地沙盒](/zh/copilot/concepts/about-cloud-and-local-sandboxes)。

## 比较 Autopilot 模式、`--allow-all` 和 `--no-ask-user`

这些控件会影响 Copilot CLI 如何工作的各个独立方面：

* **自动驾驶模式**控制继续运行。 代理可以执行后续步骤，这些步骤需要与 AI 模型进行额外的交互，而无需等待其他提示。
* \*\*`--allow-all`\*\*及其别名 `--yolo`控制审批。 它们允许代理无需请求权限即可使用所有工具、路径和 URL，但不启用自主继续执行。 在交互模式下，代理在需要进一步指示时仍会停止。
* **`--no-ask-user`** 抑制提出澄清性问题。 除非还启用了 Autopilot 模式，否则代理会做出决策，而不是请求输入，但不会在连续的模型交互中继续进行。

在交互式会话期间，可以使用 `/allow-all` 或 `/yolo` 启用所有权限。

> [!NOTE]
> `/allow-all` 和 `/yolo` 命令为当前会话启用所有权限。 再次输入任一命令不会禁用权限。

有关权限的可用命令选项的更多详细信息，请参阅 [GitHub Copilot CLI 命令参考](/zh/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)。

## 限制自主运行的任务

使用限制来防止任务持续更长时间或消耗比您预期更多的 AI credits。

* 使用 `--max-autopilot-continues=COUNT` 为自动延续消息设置上限。
* 使用 `--max-ai-credits=CREDITS` 设置软 AI credit 限制，以供编程方式使用。
* 在交互式会话中，使用 `/limits` 检查或更改 AI credit 限制。

有关当前默认值和接受的值，请参阅 [GitHub Copilot CLI 命令参考](/zh/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)。 有关AI credit限制的操作步骤，请参阅[在 AI credit 中设置 GitHub Copilot CLI 会话限制](/zh/copilot/how-tos/copilot-cli/use-copilot-cli/set-session-limit)。

## 停止和审阅工作

1. 若要中断正在运行的轮次，请按 <kbd>Esc</kbd> 两次。

2. 若要防止下一次提示在 Autopilot 模式下运行，请按 <kbd>Shift</kbd>+<kbd>Tab</kbd> 键以选择另一种模式。

3. 查看代理更改的文件。 在 CLI 中，可以使用以下命令打开差异视图：

   ```copilot
   /diff
   ```

4. 在提交或推送更改之前，先运行相关的测试、linters 和安全检查。

有关所有中断和评审控件，请参阅 [GitHub Copilot CLI 命令参考](/zh/copilot/reference/copilot-cli-reference/cli-command-reference#global-shortcuts-in-the-interactive-interface)。

## 选择下一个任务的模式

默认情况下，Autopilot 模式是粘滞模式：一旦 Copilot 确定任务已完成，Copilot CLI 将保留在 Autopilot 模式下，因此你输入的下一个提示也会在 Autopilot 模式下处理。 可以通过按 <kbd>Shift</kbd>+<kbd>Tab</kbd> 随时切换回标准交互模式。

如果希望Copilot CLI在每个任务完成后自动切换回交互模式，可以通过设置为 “`stayInAutopilot``false`禁用此行为”。 可以通过以下任一方式来进行：

* 在交互式会话期间，输入 `/settings stayInAutopilot false`。
* 将 `"stayInAutopilot": false` 添加到你的用户配置文件（`~/.copilot/settings.json`）中。 有关详细信息，请参阅“[GitHub Copilot CLI 配置目录](/zh/copilot/reference/copilot-cli-reference/cli-config-dir-reference#user-settings-copilotsettingsjson)”。

禁用此设置后，任务完成后 Copilot 会自动切换回标准交互模式。 若要在 Autopilot 模式下运行另一个任务，请按 <kbd>Shift</kbd>+<kbd>Tab</kbd> 并循环浏览可用模式，直到重新进入 Autopilot 模式，然后输入下一个提示。

> [!NOTE]
> 此设置仅控制任务完成后处于哪个模式。\_\_ 它不会导致 Copilot 在其判定任务已完成后继续工作。 当任务完成、出现问题、按 <kbd>Ctrl</kbd>+<kbd>C</kbd> 或达到延续限制时，Autopilot 仍会停止。

## 以编程方式运行 Autopilot 模式

对脚本或其他非交互式工作流使用程序化 Autopilot 模式，其中 CLI 必须在初始提示后继续。

1. 确定任务所需的权限。
2. 设置适合任务的续写限制或 AI credit 限制。
3. 使用 `-p` 和 `--autopilot` 运行提示。 例如：

   ```shell copy
   copilot --autopilot --yolo --max-autopilot-continues 10 -p“你的提示在这里”
   ```

   将 `YOUR PROMPT HERE` 替换为特定任务。 此示例授予所有权限，并将自动延续的最大数目设为 `10`。

有关编程选项的完整列表，请参阅 [GitHub Copilot 命令行界面编程参考](/zh/copilot/reference/copilot-cli-reference/cli-programmatic-reference) 和 [GitHub Copilot CLI 命令参考](/zh/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)。