Skip to main content
Skip to content

在 GitHub Copilot CLI 中使用 Autopilot 模式

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

有关何时使用 Autopilot 模式以及移交任务前要考虑的内容的概述,请参阅 允许GitHub Copilot自主工作。

启动或切换到 Autopilot 模式

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

  1. 在终端中,启动 CLI:

    Shell
    copilot
    
  2. 按 Shift+Tab ,直到状态行显示 Autopilot 模式。

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

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

    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 模式:

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

若要离开 Autopilot 模式,请按 Shift+Tab 以切换到另一种模式。

从计划迁移到 Autopilot 模式

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

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

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

Shell
copilot --plan --mode autopilot

当计划准备就绪时,此命令会自动从规划模式切换到 Autopilot 模式。 它不会等待交互式计划审批。 有关确切的行为和兼容选项,请参阅 GitHub Copilot CLI 命令参考。

配置权限

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

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 的本地沙盒。

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

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

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

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

注意

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

有关权限的可用命令选项的更多详细信息,请参阅 GitHub Copilot CLI 命令参考。

限制自主运行的任务

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

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

有关当前默认值和接受的值,请参阅 GitHub Copilot CLI 命令参考。 有关AI credit限制的操作步骤,请参阅在 AI credit 中设置 GitHub Copilot CLI 会话限制。

停止和审阅工作

  1. 若要中断正在运行的轮次,请按 Esc 两次。

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

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

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

有关所有中断和评审控件,请参阅 GitHub Copilot CLI 命令参考。

选择下一个任务的模式

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

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

  • 在交互式会话期间,输入 /settings stayInAutopilot false。
  • 将 "stayInAutopilot": false 添加到你的用户配置文件(~/.copilot/settings.json)中。 有关详细信息,请参阅“GitHub Copilot CLI 配置目录”。

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

注意

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

以编程方式运行 Autopilot 模式

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

  1. 确定任务所需的权限。

  2. 设置适合任务的续写限制或 AI credit 限制。

  3. 使用 -p 和 --autopilot 运行提示。 例如:

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

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

有关编程选项的完整列表,请参阅 GitHub Copilot 命令行界面编程参考 和 GitHub Copilot CLI 命令参考。