目录

GitHub Copilot CLI 最佳实践

Copilot CLI 不是终端命令加速器,是住在终端里的 AI 编程伙伴。它能理解代码、提方案、写代码、改代码、跑测试、开 PR。前提是你得用它做编程的事,不是用它敲 find

两种界面、两种模式

  • copilot 交互模式,copilot -p "prompt" 单次执行
  • 默认是 Ask/Execute 模式,Shift+Tab 切换 Plan 模式
  • Plan 模式下先出计划,你批准后才写代码。非平凡工作必须用 Plan。

核心命令

/model 切换模型,/delegate 委托任务,/experimental 触发 Rubber Duck,/memory 看它对代码库的记忆,/mcp 管理 MCP 服务器,/compact 压缩上下文,/context 看 token 用量。

Prompt:说意图,不是说命令

别:

copilot -p "add auth"

要:

copilot -p "给 POST /api/users 加 JWT 认证,参考 POST /api/posts 的现有实现"

好的 prompt 四要素:做什么、在哪做、怎么做、不做什么。

Plan 模式

代码写出来便宜,改烂架构贵。非平凡工作都要先切 Plan 模式:

copilot
# Shift+Tab
# 输入需求,让它出计划,批准后再写

适用场景:新组件、数据库变更、API 重构、跨文件改动。计划不合适就毙掉重来,比改代码省事。

Rubber Duck

Claude Sonnet + Rubber Duck (GPT-5.4) 能弥补 Sonnet 和 Opus 之间 74.7% 的性能差距。在多文件(3 个以上)、长步骤(70 步以上)场景下效果最明显。

触发时机:计划起草后、复杂实现后、测试写完后执行前。Copilot 卡住时也会自动触发。

手动触发:

copilot -p "/experimental review 这个实现有没有并发问题"

/delegate

范围清晰的任务可以让它自主完成:

copilot -p "/delegate 为 auth 模块写单元测试,用 tests/auth/ 里的现有模式"

它会探索代码库、建分支、写代码、跑测试、开 draft PR。你 review就行,不用盯着实现。

适合:加测试、按已有模式实现功能、重构、样板代码。

Memory

它跨会话记住你的代码库:

copilot -p "/memory"

项目结构、编码风格、既有模式都不用每次解释。问它"这个模块干什么的"比你自己翻快。

MCP 服务器

连接外部工具扩展能力:

  • gh MCP — 更丰富的 GitHub 上下文
  • 文件系统 MCP — 精确的文件操作
  • 自定义 MCP — 内部工具、数据库
copilot -p "/mcp list"

安全

Copilot CLI 能改文件、能跑命令,和 IDE 版不一样。

权限从低到高:

选项 风险
每次单独批准 最低
--allow-tool='shell(git)' --allow-tool='write'
--allow-all-tools 最高

会话内批准了某个工具,Copilot 之后就不再问了。包括 rm -rf

规则:

  • 只在信任的目录启动
  • --allow-all-tools 时加 --deny-tool='rm'
  • 审查每一个请求,不只是命令,还有意图

拒绝时给反馈,别只是"no":

no, 用 repository 的错误处理模式

分阶段信任

按任务复杂度,不是按破坏性。

Stage 1:理解代码、回答问题、找代码 Stage 2:单文件改动(加验证、提取函数、改格式) Stage 3:多文件变更,用 Plan 模式 Stage 4/delegate 自主完成

一个参考工作流

copilot
# Shift+Tab → Plan 模式
"给 REST API 加限流,用现有 Redis,参考 cache 层的模式"
# 看完计划,不满意让它改,批准
# 看实现 diff,觉得有问题让它改
# 复杂?/experimental review
# 满意了
/delegate 给这个功能写测试

总结

  1. 它是编程伙伴,不是命令生成器
  2. 非平凡工作必须用 Plan 模式
  3. 复杂问题开 Rubber Duck
  4. 清晰任务用 /delegate
  5. 安全是你的责任,不是它的

用它加速实现,不替代你思考。