前言

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 Google 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 完全控制使用哪個模型,有兩條路:

  1. 直接用 Claude Code 作為 OpenClaw 的 agent(繞過 Copilot CLI)
  2. 透過 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 正在走向標準化與互通的時代。


參考資源


原文發表於 2026-04-03 更新於 2026-04-04:新增模型選擇機制說明、Local Proxy 兩種方案詳細教學