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. 安全檢查
啟動前:
git status是否乾淨或已知?- 當前目錄是否可信?
- 是否包含金鑰、客戶資料或生產配置?
- 要允許哪些 shell commands?
- 是否需要先 Plan?
執行中:
- 每個命令的目的是否說清?
- 是否修改了允許路徑以外的檔案?
- 是否跳過失敗測試?
- 是否自動提交、推送或開 PR?
結束後:
- 看 diff。
- 看測試輸出。
- 看回復方式。
- 需要 PR 時走正常 review。
本章自檢
你應該能回答:
- 當前任務為什麼適合 CLI,而不是 IDE Agent 或 Cloud Agent?
- 使用 interactive 還是 programmatic?
- 允許哪些工具和命令?
- 結果用 diff、exit code、測試、PR 還是 rollback 驗收?
透過標準:CLI 只在受控目錄和受控許可權下執行,產物能被工程證據驗證。
官方來源
- About GitHub Copilot CLI:官方 CLI 概念、介面、Plan、定製和安全邊界。
- Getting started with GitHub Copilot CLI:官方安裝、認證和基本使用。
- Responsible use of GitHub Copilot CLI:官方 responsible use 和風險說明。