核心用法
acp-router 是 OpenClaw 内部用于调度 ACP(Agent Communication Protocol)编码代理的路由中枢。当用户要求「在 Pi/Claude Code/Codex/OpenCode/Gemini/Kimi 中运行」时,该技能决定通过 sessions_spawn 走原生 ACP 运行时,还是通过 acpx CLI 走「传话游戏」直连模式。
强制前置检查:创建任何 ACP 编码代理线程前,必须先读取本技能,随后只能用 sessions_spawn(runtime: "acp"、thread: true),禁止再用 message(action="thread-create")。
模式选择:
- OpenClaw ACP 运行时(默认):
sessions_spawn+ ACP 生命周期管理,支持会话持久化、线程隔离、自动网关管理。 - Direct acpx 路径(备用):
exec调用本地acpx二进制,适用于 ACP 后端不可用或用户仅需「中继指令」场景。
故障自愈:若 ACP 后端异常,技能强制执行本地修复——安装插件固定版 acpx、验证版本、重启网关、重试一次,仅当修复失败后才提供降级选项(再次重试 ACP 或切 acpx),绝不默认 fallback 到 subagent 运行时。
显著优点
1. 双通道高可用:原生 ACP 与 acpx CLI 互为备份,网关故障时可无缝降级。
2. 强制前置校验:避免开发者在 ACP 线程创建时误用旧 API,降低集成错误率。
3. 自动修复闭环:从依赖安装到网关重启的全自动修复流程,减少人工介入。
4. 确定性会话命名:oc-<harness>-<conversationId> 规则确保同一会话上下文可复用。
5. 版本锁定安全:强制使用 extensions/acpx 本地固定版本,防止全局 acpx 漂移导致的不兼容。
潜在缺点与局限性
- 复杂故障仍需人工:若
~/.acpx/config.json配置损坏或网络阻断,自动修复后仍需用户确认重试。 - CLI 依赖本地 Node:acpx 路径依赖本地 Node/npm 环境,容器化场景需预装依赖。
- 异步队列隐式阻塞:默认等待队列完成,未显式加
--no-wait时可能延迟响应。 - 权限敏感:网关重启、npm install 需文件系统与进程权限,受限环境可能触发权限错误。
适合人群
- 需同时调度多个外部编码代理(Pi、Claude、Codex 等)的 OpenClaw 开发者
- 构建 ACP 集成工作流的平台工程师
- 追求高可用、可自愈的自动化运维场景
常规风险
- 供应链风险:
acpx及底层适配器(如@zed-industries/claude-agent-acp)来自 npm,需信任 Zed 等第三方包。 - 会话泄露:若未正确调用
sessions close,远程 harness 会话可能长期驻留。 - 命令注入:
task与prompt直接透传至 exec,需确保上游已做输入校验。