AI 编程教程中文版
从原理到实战

08 · Copilot CLI 工作流

说明 Copilot CLI 适合终端委派、远程 steering、回滚、自动化和与 Cloud Agent 协作的场景。

Copilot CLI 是终端里的 AI 编程助手。GitHub 官方概念页说明,它可以回答问题、写代码和调试、与 GitHub.com 互动,例如修改项目并创建 pull request。它不是旧版 gh copilot 的同义词,也不只是“解释命令”——它的核心是把 agent 的执行能力放进终端。

本章目标:你会判断什么时候用 Copilot CLI,什么时候留在 VS Code Agent Mode 或 Cloud Agent,并知道终端权限、工具 allowlist、自动化和回滚边界。

1. CLI 的两个界面

flowchart TD
  CLI["copilot"] --> Interactive["Interactive interface"]
  CLI --> Programmatic["Programmatic interface"]
  Interactive --> Ask["Ask / Execute"]
  Interactive --> Plan["Plan mode"]
  Interactive --> Auto["Autopilot"]
  Programmatic --> Prompt["copilot -p / --prompt"]
  Prompt --> Flags["allow / deny tools"]
  Ask --> Evidence["diff / output / PR"]
  Plan --> Evidence
  Auto --> Evidence
  Flags --> Evidence

交互式界面(interactive interface)适合你盯着终端逐步确认。程序化界面(programmatic interface)适合自动化场景,但更需要严格的工具权限,因为它可以无人盯守地执行任务。

2. 什么时候用 CLI

适合 Copilot CLI:

  • 任务主要发生在 terminal。
  • 你需要让 agent 看 git 状态、运行测试、解释命令输出。
  • 你在 ssh、tmux、远程开发机或无 IDE 环境中工作。
  • 任务可以通过 diff、exit code、测试和 PR 验收。
  • 需要脚本化调用,并通过 --allow-tool / deny flags 控制工具。

不优先用 CLI:

  • 需要实时看编辑器 diagnostics 和 pending edits:用 VS Code Agent Mode。
  • 任务天然是 GitHub issue 到 PR 的异步实现:用 Cloud Agent。
  • 只是围绕 PR、issue、file 提问:用 GitHub.com Chat。
  • 涉及生产资源、密钥、删除、部署:先人工拆解和限制环境。

3. Plan、Execute、Autopilot 的边界

官方文档说明,交互式界面有 ask / execute mode(问答 / 执行模式),也有 plan mode(计划模式)。Plan mode 会先分析请求、向你提出澄清问题、构建计划,然后再写代码。

选择规则:

  • Ask:解释报错、查看 git 状态、询问命令含义。
  • Plan:多步骤任务、范围不确定、风险较高。
  • Execute:范围明确,可以改文件和跑命令。
  • Autopilot:只用于低风险、可回滚、验证充分的任务。

不要把 Autopilot 当默认模式。自动批准工具会增加数据丢失和破坏性操作风险。

4. Programmatic interface 怎么控风险

程序化界面可以这样传入 prompt:

copilot -p "列出本周 main 分支上的所有 commit" \
  --allow-tool='shell(git)'

自动化里至少写清:

  • 从哪个目录启动。
  • 允许哪些工具。
  • 禁止哪些命令。
  • 输出如何保存。
  • 失败时是否停止。
  • 是否需要人工确认再提交或推送。

商业项目里,CLI 自动化最好放进容器、虚拟机或受限 runner,不要在 home directory、含密钥目录或生产机器上直接跑。

5. CLI 的定制能力

官方概念页列出 CLI 可用的定制方向:

  • Custom instructions。
  • MCP servers。
  • Custom agents。
  • Hooks。
  • Skills。
  • Copilot Memory。

这些能力会让 CLI 更贴合团队,但也会扩大权限面。先把基础工作流跑稳,再加 MCP、hooks、skills;不要第一天把所有扩展都打开。

6. 安全检查

启动前:

  1. git status 是否干净或已知?
  2. 当前目录是否可信?
  3. 是否包含密钥、客户数据或生产配置?
  4. 要允许哪些 shell commands?
  5. 是否需要先 Plan?

执行中:

  1. 每个命令的目的是否说清?
  2. 是否修改了允许路径以外的文件?
  3. 是否跳过失败测试?
  4. 是否自动提交、推送或开 PR?

结束后:

  1. 看 diff。
  2. 看测试输出。
  3. 看回滚方式。
  4. 需要 PR 时走正常 review。

本章自检

你应该能回答:

  • 当前任务为什么适合 CLI,而不是 IDE Agent 或 Cloud Agent?
  • 使用 interactive 还是 programmatic?
  • 允许哪些工具和命令?
  • 结果用 diff、exit code、测试、PR 还是 rollback 验收?

通过标准:CLI 只在受控目录和受控权限下执行,产物能被工程证据验证。

官方来源

接下来去哪

本页目录