委派任务
区分 GitHub Copilot CLI 的本地 autopilot 和 /delegate 到 cloud agent,并说明权限、checkpoint 和 PR 边界。
Copilot CLI 里有两种“让它自己做”的方式:本地 autopilot(自动驾驶模式)和 /delegate 到 cloud agent(云端代理)。它们不是同一个东西,风险面也不同。
官方页面给出的分工很清楚:autopilot 在本机 CLI session 里运行,你给 full permissions 后它本地工作;/delegate 把任务交给 GitHub 上的 Copilot cloud agent,远程创建 branch 和 draft PR,后台继续执行。
阅读目标:读完本章,你应该能判断任务该本地 autopilot,还是 /delegate 到 cloud agent。
1. 两种委派方式
- Autopilot:本地执行,适合你想实时看进度、任务依赖本地环境、并且你能接受 full permissions 的场景。
/delegate:远程执行,适合任务可以后台跑、你希望关掉本机也继续、并且结果通过 draft PR review。
flowchart TD
Task["要委派的任务"] --> Where{"在哪里执行?"}
Where -->|本地| Auto["Autopilot"]
Where -->|远程| Delegate["/delegate 或 &"]
Auto --> Local["本机文件 / shell / tools"]
Delegate --> Checkpoint["提交 unstaged changes checkpoint"]
Checkpoint --> Branch["新 branch"]
Branch --> DraftPR["draft PR + agent session"]
Local --> Review["本地 diff / tests"]
DraftPR --> ReviewPR["PR review"]
style Auto fill:#fef3c7,stroke:#d97706,stroke-width:2px
style Delegate fill:#dbeafe,stroke:#2563eb,stroke-width:2px
style ReviewPR fill:#dcfce7,stroke:#16a34a,stroke-width:2px
2. Autopilot 怎么启动
官方页面列出两种方式:
- 交互式:在 interactive session 里按
Shift+Tab,直到 status bar 显示 autopilot。 - 程序化:命令里加
--autopilot,并用权限选项控制它能做什么。
示例:
copilot --autopilot --yolo \
--max-autopilot-continues 10 \
-p "YOUR PROMPT HERE"这里的 --yolo 代表放开权限,实际项目默认不建议使用。更稳的做法是进入受限目录、容器或 disposable branch,再限制继续次数。
3. /delegate 怎么启动
在 interactive session 里输入:
/delegate 把 tests/api 下还没补全的集成测试补完也可以用 & 前缀(等价写法):
& 把 tests/api 下还没补全的集成测试补完官方文档说明,Copilot 会要求把 unstaged changes 作为 checkpoint commit 到新 branch。之后 cloud agent 会打开 draft PR、后台修改,并请求你 review。CLI 会给出 pull request 和 agent session 链接。
4. 选择标准
用 autopilot:
- 任务必须访问本地环境。
- 你要实时观察执行。
- 你能接受本机 full permissions 风险。
- 任务在 disposable branch 或沙箱里。
用 /delegate:
- 任务可以异步跑。
- 需要 PR review。
- 不想占用本机。
- 希望通过 agent session 和 draft PR 留痕。
两者都不适合:
- 无边界生产命令。
- 删除、部署、云资源修改。
- 含敏感日志、token、客户数据的任务。
- 没有测试或 review 标准的模糊任务。
5. 委派 prompt 写法
目标:
补齐 API integration tests
范围:
只改 tests/api
不要改:
production code
workflow files
验收:
运行 API test
在 PR 说明失败项不管本地还是远程,委派任务都必须能通过 diff、test、PR 或 session log 复盘。
深读:为什么 checkpoint 很重要
/delegate 前让 Copilot checkpoint unstaged changes,是为了把当前上下文固定到一个可追踪状态。如果你把未审查的脏改动直接带进 cloud agent,后面很难分清哪些是你已有改动,哪些是 agent 新增改动。
所以委派前先看 git status,再决定 checkpoint 是否合理。
本章自检
完成本章后,用这 4 个问题检查:
- 任务需要本地环境,还是可以远程执行?
- 是否已经检查
git status和当前分支? - Autopilot 是否在沙箱或受限 branch 中运行?
/delegate生成的 draft PR 是否能被 reviewer 直接审?
通过标准:委派之后仍然有清晰的 diff、测试、session 或 PR review 链路。
官方来源
- Delegating tasks to Copilot —— 官方 autopilot 和
/delegate页面。 - About GitHub Copilot CLI —— 官方 CLI 概念页。
- About GitHub Copilot cloud agent —— 官方 cloud agent 概念页。