OpenClaw 的 ACP Agent 是什麼?9 個問題講清怎麼接入外部編碼助手

作者:AI神經
日期:2026年3月24日 上午7:47
來源:WeChat 原文

整理版優先睇

速讀 5 個重點 高亮

ACP AgentOpenClaw透過ACP協議接入外部編碼助手嘅方式,目的係解決跨Agent工作流嘅上下文連續性問題。

整理版摘要

呢篇文章嚟自OpenClaw官方文檔,用9個問題解釋ACP Agent嘅定義、用法、同sub-agent嘅分別,同埋實際操作時嘅注意事項。作者想解決嘅問題係:AI助手越嚟越強,但工作流成日碎濕濕——呢個任務用Codex,嗰個任務用Claude Code,一轉窗口上下文就斷開。

整體結論係ACP Agent唔係一個新模型,而係一個接入層,令OpenClaw可以同一條線程入面調用唔同嘅外部編碼助手,保持對話連續性。文章詳細講咗點樣安裝插件、啟動會話、綁定線程,同埋點樣設定權限同沙盒邊界。

對於想整合唔同AI編碼助手嘅開發者嚟講,呢篇文提供咗一條清晰嘅操作路徑,同時提醒咗沙盒隔離同權限管理呢兩個最易出事嘅位。

  • ACP AgentOpenClaw透過ACP協議接入外部編碼助手(如Codex、Claude Code)嘅方式,唔係新模型。
  • 核心價值係實現線程綁定,令同一線程入面嘅多輪對話保持上下文連續。
  • 最短操作鏈路:安裝acpx插件、健康檢查、啟動持久會話、喺同一線程繼續追問。
  • 同sub-agent嘅分別ACP session係外部運行環境,sub-agent係OpenClaw原生委派,後者支援沙盒強制約束。
  • 上線前要注意沙盒邊界(ACP唔支援沙盒內再啟動ACP)同權限策略(預設non-interactive,寫文件可能報錯)。
值得記低
流程

ACP Agent 常用命令

安裝插件:openclaw plugins install acpx 啟用:openclaw config set plugins.entries.acpx.enabled true 健康檢查:/acp doctor 啟動持久會話:/acp spawn codex --mode persistent --thread auto 參數:--mode persistent|oneshot,--thread auto|here|off 常用調參:/acp status, /acp model, /acp permissions, /acp timeout

整理重點

ACP Agent係咩?點解要關注佢?

ACP Agent唔係新模型,亦唔係OpenClaw另起爐灶做嘅編碼助手。佢嘅準確定義係:OpenClaw透過ACP後端插件運行外部編碼harness嘅方式。官方文檔舉嘅例子包括Pi、Claude Code、Codex、OpenCode、Gemini CLI、Kimi。

ACP Agent嘅本質係接入層,令同一條工作流可以調用唔同嘅外部Agent。

ACP全稱Agent Client Protocol,係一套統一接口層。因為唔同Agent嘅啟動方式、會話方式、能力暴露方式都唔同,如果冇共同接口,平台每接入一個新Agent就要重新做一次集成。ACP嘅價值係令佢哋可以被同一種工作流調用、切換同續接。

整理重點

實際點樣用?最快四步搞掂

前提係OpenClaw版本至少v2026.2.26。最短操作鏈路如下:

  1. 1 安裝ACP後端插件:openclaw plugins install acpx,然後openclaw config set plugins.entries.acpx.enabled true
  2. 2 健康檢查:/acp doctor
  3. 3 啟動持久會話:/acp spawn codex --mode persistent --thread auto(注意飛書唔支援thread binding,要用--thread off)
  4. 4 喺同一線程繼續追問,用/acp status、/acp model、/acp permissions、/acp timeout調參

--mode persistent適合持續協作,--mode oneshot適合一次性任務;--thread auto|here|off分別對應自動綁定、僅當前線程、關閉線程綁定。

一次性執行任務可以咁樣寫:/acp spawn codex --mode oneshot --thread off

整理重點

同sub-agent有咩分別?邊個場合用邊個?

ACP session係外部harness runtime,sub-agent係OpenClaw原生委派運行。前者適合你明確想調CodexClaude Code呢類外部Agent,或者想沿用佢哋已有嘅會話能力;後者更適合平台內部多代理協作,同埋需要更強沙盒約束嘅場景。

ACP同sub-agent嘅核心差異:外部runtime vs 原生委派,沙盒約束強度唔同。

另外,ACP Agent可以續接之前嘅工作——用resumeSessionId恢復已有會話,從筆記本切到手機都得,前提係目標Agent支援session/load(目前CodexClaude Code支援)。

整理重點

上線前最需要注意嘅兩大坑

第一個係沙盒邊界。ACP會話運行喺host runtime,唔喺OpenClaw沙盒入面,所以沙盒會話唔可以再啟動ACP,runtime: "acp"亦唔支援sandbox: "require"。如果你必須強制行喺沙盒入面,就要改用sub-agent。

權限同沙盒係ACP Agent最容易出問題嘅兩個位,一定要喺上線前測試清楚。

整理重點

一句話總結:線程變成工作現場

OpenClawACP Agent,本質上係用ACPCodex、Claude Code呢類外部編碼助手接入同一條工作流,令任務可以喺同一個上下文入面持續推進。過去我哋喺唔同Agent之間切窗口,而家OpenClaw想將線程變成工作現場。

用邊個Agent」開始變成運行時路由決策,而唔係平台綁定決策。

摘要
圖片
ACP Agent 唔係新模型,而係 OpenClaw 透過 ACP 接入外部編碼助手嘅方式。喺支援線程綁定嘅場景入面,佢可以將 Codex、Claude Code 呢啲外部 Agent 接入同一條工作流。呢篇文用 9 個問題講清楚佢嘅用法、邊界,同埋同 sub-agent 嘅分別。


AI 助手越嚟越勁,但工作流成日散修修:呢個任務喺 Codex,嗰個任務喺 Claude Code,一換視窗上下文就斷咗。OpenClaw 文檔裏面嘅 ACP Agent就係解決呢個問題。佢唔係再加一個新 Agent,而係將外部編碼助手接入 OpenClaw;喺支援線程綁定嘅場景入面,令到同一條線程連續咁做嘢。


Q1:OpenClaw 入面 ACP Agent 到底係咩?

ACP Agent 唔係新模型,亦唔係 OpenClaw 自己做一套編碼助手。

更加準確嘅定義係:OpenClaw 透過 ACP 後端插件執行外部編碼 harness 嘅方式。 官方文檔舉嘅例子包括 PiClaude CodeCodexOpenCodeGemini CLIKimi


Q2:ACP 係咩?點解佢重要?

ACP 全名係 Agent Client Protocol

可以當佢係一套更加統一嘅接口層。因為唔同 Agent 嘅啟動方式、對話方式、功能暴露方式都唔同,如果冇共同嘅接口,平台每接一個新 Agent,就要重新做一次整合。

所以 ACP 嘅價值,唔係令所有 Agent 變成一式一樣,而係令佢哋 可以用同一種工作流程呼叫、切換同埋接續


Q3:OpenClaw 用 ACP Agent,真正解決嘅係咩問題?

解決嘅係「上下文連續性」,唔係「視窗數量」。

官方文檔入面有個關鍵設計叫 thread-bound sessions。如果而家嘅頻道支援線程綁定,OpenClaw 可以將 ACP 會話綁定到目前嘅線程,之後嘅訊息繼續發俾同一個 ACP 會話。

佢嘅意義好直接:多輪追問嘅時候,冇咁容易甩咗上下文。


Q4:如果我想喺 OpenClaw 實際行到,最快嘅路徑係咩?

官方畀嘅最短操作鏈路可以歸納做四步。

前提:如果你想用 ACP Agent,OpenClaw 版本最好至少係 v2026.2.26。

1. 安裝 ACP 後端插件(喺 bash 度執行):
openclaw plugins install acpx
openclaw config set plugins.entries.acpx.enabled true
2. 先做健康檢查(喺 OpenClaw 嘅會話/聊天環境執行,下同):
/acp doctor
3. 啟動一個持久會話:
/acp spawn codex --mode persistent --thread auto
注意飛書目前唔支援 ACP thread binding,請用--thread off
圖片
4. 喺同一個線程入面繼續追問,並用呢啲指令調參:
/acp status
/acp model <provider/model>
/acp permissions <profile>
/acp timeout <seconds>

常用參數入面,--mode persistent 適合持續協作,--mode oneshot 適合一次性任務;--thread auto|here|off 分別對應自動綁定、淨係目前線程、關閉線程綁定。一次性執行任務嘅時候,可以咁樣寫:

/acp spawn codex --mode oneshot --thread off

Q5:ACP Agent 同 OpenClaw 嘅 sub-agent,到底有咩分別?

最容易混淆嘅一點係:ACP session 係外部 harness runtime,sub-agent 係 OpenClaw 原生嘅委派執行。

前者適合你明確想調 CodexClaude CodeGemini CLI 呢類外部 Agent,或者想沿用佢哋現有嘅會話功能;後者更適合平台內部多代理協作,同埋需要更強沙盒限制嘅場景。


Q6:點解「線程綁定」係 ACP Agent 最似產品力嘅一部分?

因為佢將「聊天視窗」變咗做「任務空間」。

官方文檔提到,而家內建支援線程綁定嘅主要係 Discord threads/channels 同 Telegram topics。咁你就可以喺一個具體線程入面持續俾同一個 ACP Agent 任務,將補充需求同輸出都留喺同一個上下文入面。


Q7:ACP Agent 可唔可以接返之前嘅工作?

可以。OpenClaw 支援透過 resumeSessionId 恢復現有嘅 ACP 會話。

文檔舉嘅場景包括:由筆記本轉去手機、將 CLI 嘅互動式會話轉返去代理環境、或者喺網關重啟、超時之後繼續。前提係目標 Agent 支援 session/load,文檔而家指明支援嘅係 Codex 和 Claude Code


Q8:真正上線之前,最需要注意咩伏位?

主要有兩個:沙盒邊界 和 權限策略

先講沙盒。ACP 會話運行喺 host runtime,唔喺 OpenClaw 沙盒入面,所以沙盒會話唔可以再啟動 ACP,runtime: "acp" 亦唔支援 sandbox: "require"。如果你一定要強制喺沙盒入面執行,就應該改用 sub-agent

再講權限。ACP 會話係 non-interactive 嘅,冇 TTY。官方默認 permissionMode=approve-readsnonInteractivePermissions=fail,即係讀通常放行,但寫檔案或者執行指令一旦觸發權限確認,就好大機會直接報錯。想完全放開就用 approve-all;想保守啲但又唔想直接死,可以將 nonInteractivePermissions 設成 deny


Q9:而家支援邊啲 Agent?普通用戶應該點樣理解呢件事?

根據官方文檔,而家 acpx 內建 alias 包括 piclaudecodexopencodegeminikimi

但對普通用戶嚟講,更重要係理解一個變化:「用邊個 Agent」開始變成執行時路由決定,而唔係平台綁定決定。 你可以將唔同任務分配俾唔同 Agent,而將會話組織同上下文接續留俾 OpenClaw。


一句講曬

OpenClaw 嘅 ACP Agent,本質上係用 ACP 將 Codex、Claude Code 呢啲外部編碼助手接入同一條工作流,令任務可以喺同一個上下文入面持續推進。

以前,我哋喺唔同 Agent 之間切視窗;而家,OpenClaw 想將線程變成工作現場。



摘要
圖片
ACP Agent 不是新模型,而是 OpenClaw 通過 ACP 接入外部編碼助手的方式。在支持線程綁定的場景裏,它能把 Codex、Claude Code 這類外部 Agent 接進同一條工作流。本文用 9 個問題講清它的用法、邊界,以及和 sub-agent 的區別。


AI 助手越來越強,但工作流常常更碎:這個任務在 Codex,那個任務在 Claude Code,一換窗口上下文就斷。OpenClaw 文檔裏的 ACP Agent解決的正是這件事。它不是再加一個新 Agent,而是把外部編碼助手接進 OpenClaw;在支持線程綁定的場景裏,讓同一條線程連續工作。


Q1:OpenClaw 中 ACP Agent 到底是什麼?

ACP Agent 不是新模型,也不是 OpenClaw 另起爐灶做的一套編碼助手。

它更準確的定義是:OpenClaw 通過 ACP 後端插件運行外部編碼 harness 的方式。 官方文檔舉的例子包括 PiClaude CodeCodexOpenCodeGemini CLIKimi


Q2:ACP 是什麼?為什麼它重要?

ACP 全稱是 Agent Client Protocol

它可以理解成一套更統一的接口層。因為不同 Agent 的啓動方式、會話方式、能力暴露方式都不一樣,如果沒有共同接口,平台每接一個新 Agent,就要重做一遍集成。

所以 ACP 的價值,不是讓所有 Agent 變得一樣,而是讓它們 能被同一種工作流調用、切換和續接


Q3:OpenClaw 用 ACP Agent,真正解決的是什麼問題?

解決的是“上下文連續性”,不是“窗口數量”。

官方文檔裏有個關鍵設計叫 thread-bound sessions。如果當前頻道支持線程綁定,OpenClaw 可以把 ACP 會話綁定到當前線程,後續消息繼續發給同一個 ACP 會話。

它的意義很直接:多輪追問時,不容易把上下文丟掉。


Q4:如果我要在 OpenClaw 裏實際跑起來,最短路徑是什麼?

官方給出的最短操作鏈路可以概括成四步。

前提:如果你想用 ACP Agent,OpenClaw 版本最好至少是 v2026.2.26。

1. 安裝 ACP 後端插件(在 bash 裏執行):
openclaw plugins install acpx
openclaw config set plugins.entries.acpx.enabled true
2. 先做健康檢查(OpenClaw 的會話/聊天環境裏執行,下同):
/acp doctor
3. 啓動一個持久會話:
/acp spawn codex --mode persistent --thread auto
注意飛書當前不支持 ACP thread binding,請使用--thread off
圖片
4. 在同一個線程裏繼續追問,並用這些命令調參:
/acp status
/acp model <provider/model>
/acp permissions <profile>
/acp timeout <seconds>

常用參數裏,--mode persistent 適合持續協作,--mode oneshot 適合一次性任務;--thread auto|here|off 分別對應自動綁定、僅當前線程、關閉線程綁定。一次性執行任務時,可以這樣寫:

/acp spawn codex --mode oneshot --thread off

Q5:ACP Agent 和 OpenClaw 的 sub-agent,到底有什麼區別?

最容易混淆的一點是:ACP session 是外部 harness runtime,sub-agent 是 OpenClaw 原生的委派運行。

前者適合你明確要調 CodexClaude CodeGemini CLI 這類外部 Agent,或想沿用它們已有的會話能力;後者更適合平台內部多代理協作,以及需要更強沙盒約束的場景。


Q6:為什麼“線程綁定”是 ACP Agent 最像產品力的一部分?

因為它把“聊天窗口”變成了“任務空間”。

官方文檔提到,當前內建支持線程綁定的主要是 Discord threads/channels 和 Telegram topics。這樣你可以在一個具體線程裏持續給同一個 ACP Agent 下任務,把補充需求和輸出都留在同一上下文裏。


Q7:ACP Agent 可以續接之前的工作嗎?

可以。OpenClaw 支持通過 resumeSessionId 恢復已有 ACP 會話。

文檔舉的場景包括:從筆記本切到手機、把 CLI 裏的交互式會話切回代理環境,或在網關重啓、超時後繼續。前提是目標 Agent 支持 session/load,文檔當前點名支持的是 Codex 和 Claude Code


Q8:真正上線前,最該注意什麼坑?

主要有兩個:沙盒邊界 和 權限策略

先說沙盒。ACP 會話運行在 host runtime,不在 OpenClaw 沙盒裏,所以沙盒會話不能再啓動 ACP,runtime: "acp" 也不支持 sandbox: "require"。如果你必須強制跑在沙盒裏,就該改用 sub-agent

再說權限。ACP 會話是 non-interactive 的,沒有 TTY。官方默認 permissionMode=approve-readsnonInteractivePermissions=fail,也就是讀通常放行,但寫文件或執行命令一旦觸發權限確認,就可能直接報錯。需要完整放開時用 approve-all;想保守但別直接崩掉,可以把 nonInteractivePermissions 設成 deny


Q9:現在支持哪些 Agent?普通用戶該怎麼理解這件事?

按官方文檔,當前 acpx 內建 alias 包括 piclaudecodexopencodegeminikimi

但對普通用戶來說,更重要的是理解一個變化:“用哪個 Agent”開始變成運行時路由決策,而不是平台綁定決策。 你可以把不同任務分派給不同 Agent,而把會話組織和上下文續接留給 OpenClaw。


一句話總結

OpenClaw 的 ACP Agent,本質上是用 ACP 把 Codex、Claude Code 這類外部編碼助手接入同一條工作流,讓任務能在同一個上下文裏持續推進。

過去,我們在不同 Agent 之間切窗口;現在,OpenClaw 想把線程變成工作現場。