前言
GitHub Copilot CLI 是 GitHub 官方推出的命令列工具,可以直接在終端機裡使用 AI 幫你寫程式、執行指令、解釋代码。自 2026 年 1 月起,Copilot CLI 正式支援 ACP(Agent Client Protocol),成為開放標準協議的一員。
這意味著,你可以用 OpenClaw 統一控制 Copilot CLI、Claude Code、Codex 等所有支援 ACP 的 coding agent,不再需要每個工具各學一套介面。
本文將詳細解說什麼是 ACP、如何讓 OpenClaw 操控 Copilot CLI,以及這種架構的實際應用場景。
什麼是 ACP?
ACP(Agent Client Protocol) 是由 Zed.dev 推動的開放標準協議,專門用來建立 AI agent 與客戶端之間的結構化溝通。
傳統上,如果你想用 AI 幫你寫程式,通常是:
- 直接對著 Claude Code 下指令
- 直接對著 Copilot CLI 下指令
- 每個工具有各自的 CLI 和操作邏輯
ACP 出現之後,所有支援 ACP 的工具都使用同一種「語言」溝通。你的客戶端(例如 OpenClaw)只需要學會 ACP,就能控制所有支援 ACP 的 agent。
ACP 的優勢
- 統一介面:一個協議控制所有主流 coding agent
- 標準化通訊:客戶端與 agent 之間有結構化的請求/回應格式
- 支援複雜工作流:可以建立多 agent 協作的場景
- 第三方工具整合:IDE、自動化腳件都可以透過 ACP 控制 agent
支援 ACP 的 Coding Agent
目前支援 ACP 的主流工具包括:
| 工具 | 開發者 | 特色 |
|---|---|---|
| Claude Code | Anthropic | 最強大的 coding agent |
| GitHub Copilot CLI | GitHub | 官方 CLI,整合 GitHub 生態 |
| Codex | OpenAI | 專精程式碼生成 |
| Pi | Anthropic | 實驗性 coding agent |
| OpenCode | 開源社群 | 開源的 coding agent |
| Gemini CLI | Gemini 系列 CLI |
設定流程
前置需求
- OpenClaw 已安裝並正常運作
- Copilot CLI 已安裝(
npm i -g @githubnext/github-copilot) - 基本的 CLI 操作經驗
Step 1:安裝 acpx 插件
OpenClaw 透過 acpx 插件來實作 ACP 協定。這是一個專門為 OpenClaw 開發的 ACP 前端代理。
openclaw plugins install @openclaw/acpx
Step 2:設定 OpenClaw 設定檔
編輯 ~/.openclaw/openclaw.json,在根層級加入以下設定:
{
"plugins": {
"entries": {
"acpx": {
"enabled": true,
"config": {
"permissionMode": "approve-all"
}
}
}
},
"acp": {
"enabled": true,
"dispatch": {
"enabled": true
},
"backend": "acpx",
"defaultAgent": "copilot"
}
}
設定說明
| 設定 | 用途 |
|---|---|
permissionMode: approve-all |
ACP session 是非互動式的,需要這個設定讓寫檔、exec 等操作不會被阻擋 |
defaultAgent: copilot |
預設綁定的 agent,設為 copilot 表示以 Copilot CLI 為主力 |
dispatch.enabled: true |
開啟 ACP 路由,讓 OpenClaw 能分配請求到外部 agent |
Step 3:重啟 Gateway
openclaw gateway restart
Step 4:驗證設定
確認 acpx 插件正常運作:
# 檢查 ACP 狀態
/acp status
確認 Copilot CLI 已正確啟動:
# 以 ACP 模式啟動 Copilot CLI
copilot --acp --version
三種使用方式
設定完成後,你有三種方式可以透過 OpenClaw 控制 Copilot CLI:
方法一:直接對話(最簡單)
當你向 OpenClaw 說「用 Copilot 幫我重構這個函式」時,OpenClaw 會自動將請求路由到 Copilot CLI。
你:幫我用 Copilot 重構 ~/project/utils.js 裡的 formatDate 函式
OpenClaw:好的,我會將這個請求發送給 Copilot CLI...
Copilot CLI:[執行重構,回傳結果]
OpenClaw:[將結果整理後回覆給你]
方法二:手動 Spawn 持久 Session
如果你想在同一個 thread 裡持續與 Copilot CLI 對話:
/acp spawn copilot --mode persistent --thread auto
在同一個 thread 裡的所有訊息都會發給 Copilot CLI,直到你主動關閉:
/acp close
方法三:使用 sessions_spawn 工具
在 OpenClaw 的工具層面,你可以直接呼叫 sessions_spawn 來啟動 Copilot CLI session:
{
"task": "幫我寫一個計算費波那契數列的函式",
"runtime": "acp",
"agentId": "copilot",
"thread": true,
"mode": "session"
}
常用 ACP 指令
| 指令 | 作用 |
|---|---|
/acp status |
查看當前 ACP 會話狀態 |
/acp steer <指令> |
發送 steer 指令給正在運行的會話 |
/acp cancel |
取消當前 turn |
/acp close |
關閉會話 |
⚠️ 模型選擇:誰決定用哪個模型?
這是 ACP 控制 Copilot CLI 時最重要的一個限制:
| 決定權 | 歸屬 |
|---|---|
| OpenClaw | 決定要把任務交給哪個 agent(Copilot CLI / Claude Code / Codex) |
| Copilot CLI | 決定這個任務要用哪個模型處理 |
也就是說,OpenClaw 告訴 Copilot CLI 要做什麼,但 Copilot CLI 自己決定用哪個模型。你無法從 OpenClaw 端指定要使用哪一個底層模型。
Copilot CLI 的模型選擇機制
Copilot CLI 本身有 /model 指令,可以在 session 內手動切換。Scott Hanselman 曾展示過可以在 14 種模型之間切換,包括:
- Claude Opus 4.5 / Sonnet 4.5 / Haiku 4.5
- GPT-5.2 Codex / GPT-4.1 / GPT-5 mini
- Gemini 系列模型
但這些選擇只在 Copilot CLI 內有效,OpenClaw 無法從外部指定。
模型受限於 Copilot 訂閱方案
| 訂閱方案 | 可用模型 |
|---|---|
| Copilot Pro | 基礎模型組 |
| Copilot Pro+ / Business / Enterprise | 更多高階模型(包含 Claude Sonnet 4.5 等) |
如果你需要完全掌控模型選擇?
如果你希望從 OpenClaw 完全控制使用哪個模型,有兩條路:
- 直接用 Claude Code 作為 OpenClaw 的 agent(繞過 Copilot CLI)
- 透過 Local Proxy 讓 Claude Code 使用 Copilot 的模型(同時掌控模型 + 享有 Copilot 訂閱)
第二條路是最多人採用的方案,下一節詳細解說。
🔀 進階方案:讓 Claude Code 使用 Copilot 的模型(Local Proxy)
為什麼需要 Local Proxy?
如果你想同時擁有:
- Claude Code 的操作介面(更強大的 coding agent 能力)
- Copilot 的模型訂閱(不用另外付費給 Anthropic)
你可以透過一個本地代理伺服器,把 Claude Code 發出的 Anthropic API 請求,轉換成 Copilot 的 OpenAI API 格式,再轉發到 Copilot 的後端。
運作原理
┌─────────────────────────────────────────────────────────────────────┐
│ Local Proxy 轉換層 │
│ │
│ Claude Code → Anthropic API格式 → copilot-proxy → OpenAI格式 → │
│ (本地) ← Anthropic SSE回應 ← ← OpenAI SSE回應 │
│ │
│ Port: 4141 轉換翻譯 │
└─────────────────────────────────────────────────────────────────────┘
↓
GitHub Copilot API(你的訂閱)
copilot-proxy 方案(推薦)
由社群開發的 schwarztim/copilot-proxy,功能完整且零依賴。
特色
- 零依賴:使用純 Node.js stdlib,不需要額外安裝套件
- 完整 API 翻譯:Anthropic Messages API ↔ OpenAI Chat Completions,雙向翻譯,包含 streaming SSE
- 工具呼叫:完整的 function calling 雙向翻譯
- 自動認證:從 6 個來源自動探測 GitHub token(環境變數、macOS Keychain、GitHub CLI、Device Flow 等)
- 所有 Claude 模型:支援 Opus 4.6、Sonnet 4.6、Haiku 4.5,以及 GPT 系列
模型名稱對照
Claude Code 發送的模型 ID 與 Copilot API 接收的名稱會自動轉換:
| Claude Code 發送 | Copilot API 接收 |
|---|---|
claude-sonnet-4-6 |
claude-sonnet-4.6 |
claude-opus-4-6 |
claude-opus-4.6 |
claude-haiku-4-5 |
claude-haiku-4.5 |
| GPT 系列(非 Claude) | 直接透傳,不轉換 |
安裝與啟動
# 下載並設定捷徑
git clone https://github.com/schwarztim/copilot-proxy.git ~/.copilot-proxy
ln -sf ~/.copilot-proxy/claude-copilot ~/.local/bin/claude-copilot
# 啟動方式一:使用 launcher(自動處理一切)
claude-copilot
# 啟動方式二:手動分步驟
# Step 1:啟動代理
node proxy.mjs
# Step 2:在另一個終端機執行 Claude Code,指向代理
export ANTHROPIC_BASE_URL=http://localhost:4141
export ANTHROPIC_API_KEY=sk-ant-copilot-proxy-not-a-real-key
claude
設定 Claude Code 的設定檔
編輯 ~/.claude/settings.json(Windows 路徑:C:\Users\YOUR_USERNAME\.claude\settings.json):
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:4141",
"ANTHROPIC_API_KEY": "sk-ant-copilot-proxy-not-a-real-key",
"ANTHROPIC_MODEL": "claude-sonnet-4.5"
},
"model": "claude-sonnet-4.5"
}
| 設定 | 值 | 說明 |
|---|---|---|
ANTHROPIC_BASE_URL |
http://localhost:4141 |
指向本地代理 |
ANTHROPIC_API_KEY |
sk-ant-copilot-proxy-not-a-real-key |
Claude Code 需要此欄位,代理不在乎內容 |
ANTHROPIC_MODEL |
claude-sonnet-4.5 |
指定預設使用 Copilot 的哪個模型 |
更換模型
只需修改 ANTHROPIC_MODEL 的值即可。Copilot 支援的模型包括:
claude-3.5-sonnet
claude-3.7-sonnet
claude-3.7-sonnet-thought
claude-sonnet-4.5
claude-opus-4
gemini-2.0-flash-001
gemini-2.5-pro
o3
gpt-5-mini
copilot-api 方案(官方工具)
如果你偏好使用官方或更簡單的方案,可以用 @anthropic-ai/claude-code 搭配 copilot-api:
安裝
npm install -g copilot-api @anthropic-ai/claude-code
啟動並認證
copilot-api start --proxy-env
# 會引導你前往 https://github.com/login/device 輸入驗證碼
認證成功後會顯示模型列表和監聽位址:
➜ Listening on: http://localhost:4141/ (all interfaces)
Claude Code 設定檔
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:4141",
"ANTHROPIC_AUTH_TOKEN": "sk-dummy",
"ANTHROPIC_MODEL": "claude-sonnet-4.5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "gpt-5-mini",
"DISABLE_NON_ESSENTIAL_MODEL_CALLS": "1",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"CLAUDE_CODE_ATTRIBUTION_HEADER": "0"
}
}
兩種 proxy 方案的比較
| 方案 | 優點 | 缺點 |
|---|---|---|
| copilot-proxy | 零依賴、功能完整、自動token探測 | 社群維護 |
| copilot-api | 官方支援、文件完整 | 需要另外安裝 npm 套件 |
與 OpenClaw ACP 的整合方式
有了 Local Proxy 之後,你的完整 workflow 可以是:
OpenClaw(協調者)
│
├── /acp spawn copilot → 用 Copilot CLI 處理 GitHub 操作(PR、Issue)
│
└── /acp spawn claude → 用 Claude Code(經 Copilot 模型)處理複雜程式開發
(透過 copilot-proxy 翻譯,模型走 Copilot 訂閱)
這樣 OpenClaw 不只控制了「用哪個 agent」,還透過 Claude Code + Copilot Proxy 間接控制了「用哪個模型」,同時完全使用你自己的 Copilot 訂閱,不需要另外付費。
實際應用場景
場景一:分工合作
你可以讓不同的 agent 處理不同的任務,充分發揮各 agent 的強項:
OpenClaw → Copilot CLI:處理 GitHub 操作(PR、Issue、程式碼審查)
OpenClaw → Claude Code:處理複雜的重構和 debug
OpenClaw → Codex:處理簡單的程式碼生成任務
場景二:自動化和 CI/CD
在 CI/CD pipeline 裡使用 ACP:
GitHub Actions Runner
→ OpenClaw(協調者)
→ Copilot CLI(執行 Script 生成)
→ OpenClaw(驗證結果)
→ 自動提交或回報
場景三:跨平台開發
一個設定檔控制所有主流 coding agent:
OpenClaw(Mac/Windows/Linux)
→ Copilot CLI(GitHub 生態)
→ Claude Code(複雜推理)
→ Gemini CLI(Google 生態)
注意事項
permissionMode 安全性
設定 permissionMode: approve-all 代表允許 Copilot CLI 執行任何命令。這在自動化場景下很方便,但建議:
- 確認工作目錄是安全的專案資料夾
- 不要在生產環境使用
approve-all - 考慮使用
permissionMode: ask並設定白名單
Copilot CLI 版本
ACP 支援從 Copilot CLI 1.1.0 版本開始。確認你的版本:
copilot --version
# 需要 1.1.0 以上才能使用 ACP
網路需求
Copilot CLI 的 ACP 模式仍然需要連線到 GitHub 伺服器進行驗證。確認你的網路可以正常存取 GitHub API。
故障排除
症狀一:/acp status 無回應
檢查 acpx 插件是否正確啟動:
openclaw plugins list | grep acpx
症狀二:Copilot CLI 驗證失敗
重新進行 GitHub 登入:
# 清除現有認證
copilot auth logout
# 重新驗證
copilot auth login
症狀三:permission denied 錯誤
確認 openclaw.json 設定正確,且 gateway 已重啟:
openclaw gateway restart
結語
ACP 讓 OpenClaw 成為真正的「AI 工具協調中心」。無論你偏好哪一個 coding agent,都可以透過 ACP 與 OpenClaw 整合,統一在一個介面裡管理所有工作。
Copilot CLI 的 ACP 支援是 GitHub 官方推動的重要方向象徵著 AI tooling 正在走向標準化與互通的時代。
參考資源
- GitHub Copilot CLI ACP 官方公告
- OpenClaw ACP Agents 文件
- acpx GitHub 仓库
- ACP 協議規格
- copilot-proxy — 用 Copilot 訂閱驅動 Claude Code(推薦)
- copilot-api — 官方 Copilot API 代理
- Connecting Claude Code to GitHub Copilot Models — 完整教學
- Claude Code 模型配置說明
- Copilot CLI 模型選擇文件
原文發表於 2026-04-03 更新於 2026-04-04:新增模型選擇機制說明、Local Proxy 兩種方案詳細教學