概述
通常,当你以交互方式使用 Copilot CLI 时,会提交提示,然后等待 Copilot CLI 响应,然后再给出下一个说明。 此来回交互会持续到任务完成。
Autopilot 模式允许 Copilot CLI 完成任务,而无需在每个步骤后等待输入。 提供初始指令后,Copilot CLI 会自动完成每个步骤,直到确定任务完成为止。
CLI 的标准交互模式和自动驾驶模式之间的区别就像处理任务时与同事合作的不同:在标准交互模式下,他们执行大部分工作,但会定期与你讨论;而在自动驾驶模式下,你则是直接将任务交给同事,对他说:“这是我需要的——完成后告诉我。”
在 Autopilot 模式下, Copilot 继续执行,直到发生以下情况之一:
- 代理确定任务已完成。
- 出现防止进一步进度的问题。
- 按 Ctrl+C 以停止代理继续操作。
- 达到最大延续限制(如果已设置)。
若要在交互式会话期间切换到 Autopilot 模式,请按 Shift+Tab 并循环浏览可用模式,直到到达 Autopilot 模式,然后输入提示。 使用相同的键压从 autopilot 模式切换回标准交互模式。
Autopilot 模式的优点
-
**免动手自动化:**Copilot 在初始指令后,无需任何输入即可完成任务。 -
**效率:** 非常适合用于定义完善的任务,例如编写测试、重构文件或修复 CI 故障。 Autopilot 特别适合需要长时间多步骤会话的大型任务。 -
**批处理操作:** 适用于脚本编写和 CI 工作流,你希望 Copilot 运行至完成。 -
**安全:** Autopilot 模式允许 Copilot 执行多个自定向步骤来完成任务。 `--max-autopilot-continues` 限制在停止之前可以执行的步骤数,以避免无限循环。 在 autopilot 模式下,Copilot 不能执行任何需要权限的操作,除非您显式授予它完整权限。
注意事项
-
**任务适用性:** Autopilot 模式最适合定义完善的任务。 对于开放式探索、功能开发没有明确目标或要指导正在进行的工作的任务来说,它并不理想。 Copilot 将尽最大努力完成任何任务,但可能会在处理模糊或含糊不清的指令或任务时遇到困难,尤其是当这些任务需要细致的判断时。 这可能会导致一组代码更改,这些更改不是预期内容,并且不能在没有修正工作的情况下使用。 -
**信任:** 你需要信任 Copilot 才能做出合理的决策。 当向 Autopilot 模式授予所有权限时,效果最佳。 这等效于使用 `--allow-all` 选项运行 Copilot CLI。 应注意,这会授予 CLI 权限,以进行任何认为完成任务所需的更改,包括更改和删除文件。 -
**成本:** Autopilot 模式使用高级请求的方式与在标准交互式接口中工作时使用这些请求的方式相同。 在标准模式下,提交初始提示时会使用一个高级请求,然后每次回复 CLI 中的问题时,都会使用一个高级请求,代理使用你的响应来与 AI 模型交互。 这同样适用于 Autopilot 模式,除了你不参与启动下一步,因此使用附加的高级请求时无需你的直接参与。计费溢价请求的使用情况是使用乘数来确定的。 乘数因所使用的模型而异。
/model使用斜杠命令查看当前选定的模型及其乘数,并根据需要更改模型。 有关详细信息,请参阅 GitHub Copilot 中的请求 和 关于 GitHub Copilot 个人计划的计费。每次代理自主继续时,它将会在 CLI 中显示一条消息,告诉您该连续步骤使用了多少个高级请求(考虑到模型乘数),例如:
Continuing autonomously (3 premium requests)。
Permissions
进入 Autopilot 模式时,如果尚未授予 Copilot 所有权限,则会显示一条消息,提示你在三个选项之间进行选择:
1. Enable all permissions (recommended)
2. Continue with limited permissions
3. Cancel (Esc)
如果启用所有权限,你将从 autopilot 模式获得最佳结果。 如果选择继续使用有限的权限, Copilot 将自动拒绝任何需要审批的工具请求,这可能会阻止它完成某些任务。 稍后你可以在 autopilot 会话期间使用 /allow-all 命令(或其别名 /yolo)改变决定并授予完全权限。
比较 Autopilot 模式、--allow-all 和 --no-ask-user
`--allow-all`(及其别名 `--yolo`)是启动交互式会话时可以传递给 `copilot` 命令的权限相关选项。 有关可用选项的完整列表,请参阅 [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options)。
使用 --allow-all 和 --yolo 选项,CLI 代理可以使用所有工具、路径和 URL。 还可以使用 /allow-all 或 /yolo 斜杠命令在交互式会话期间设置这些权限。
注意
输入 /allow-all 并 /yolo 启用当前会话的权限。 再次输入这些斜杠命令不会禁用权限,换句话说,这些命令不会打开和关闭权限。
使用 --allow-all时,仍处于正常的交互式流中。
Copilot 在达到决策点时仍会停下来并询问你希望它做什么。 但是,当需要执行通常需要审批的内容(例如使用工具、路径或 URL)时 Copilot CLI ,无需请求权限即可继续操作。
`--no-ask-user` 选项抑制了 Copilot 通常会提出的澄清问题。 相反,代理必须自行做出决策,而不是寻求您的指导。 这提供了一定程度的自治。 但是,与 autopilot 模式不同, `--no-ask-user` 不允许代理通过后续步骤继续处理任务,需要与 AI 模型交互。 使用此选项时,CLI 不会在初始提示后使用其他高级请求,而无需你参与。
使用 autopilot 模式的典型工作流
Autopilot 模式非常适合实现大型详细工作计划。 通常,在使用Copilot的计划模式下创建实施计划后,切换到自动驾驶模式会很有用。 有关计划模式的详细信息,请参阅 GitHub Copilot CLI 的最佳做法。
例如:
-
启动交互式 Copilot CLI 会话。
(可选)可以包括
--allow-all授予权限的选项,以及--max-autopilot-continues用于在会话期间为 autopilot 模式设置最大延续限制的选项。 例如,可以启动会话copilot --allow-all --max-autopilot-continues 10以授予代理使用所有工具、路径和 URL 的权限,并将 autopilot 的最大延续限制设置为 10。 -
当交互式会话启动时,如果系统提示你信任当前文件夹中的文件,请接受此选项。
-
按 Shift+Tab 切换到计划模式,输入描述要实现的提示,然后处理 Copilot 以创建详细的计划。
-
一旦你有了满意的计划,请使用 CLI 提供的选项“接受计划并在 Autopilot 的基础上构建”。
-
如果收到有关权限的提示,请选择启用所有权限的选项。
-
交由 Copilot 实施计划。 可以定期检查进度。
以编程方式使用自动驾驶模式
以编程方式运行 Copilot CLI 时可以使用自动驾驶模式,例如,在命令行上传递 Copilot 提示符时,或者将 CLI 作为脚本或 CI 工作流的一部分时。 这样,就可以在初始命令之后自动执行任务,而无需与 CLI 交互。
使用选项 --allow-all 或 --yolo 授予 Copilot 使用所有工具、路径和 URL 的权限。 可以包含 --max-autopilot-continues 选项,设置最大续延限制,以防止失控循环。 在程序自动化的环境中,这一点尤为重要,因为如果出现问题,你将无法进行干预。
示例用法:
copilot --autopilot --yolo --max-autopilot-continues 10 -p“你的提示在这里”
概要
如果要 Copilot 接管任务并完成工作,而无需参与,请使用 Autopilot 模式。 最适合清晰、定义明确的任务,你信任 Copilot 能做出合理决策。
延伸阅读
-
[AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli#get-copilot-to-work-autonomously) -
[AUTOTITLE](/copilot/concepts/agents/copilot-cli/fleet) -
[AUTOTITLE](/copilot/how-tos/copilot-cli)