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 只在受控目錄和受控許可權下執行,產物能被工程證據驗證。

官方來源

接下來去哪

本頁目錄