在OpenClaw多Agent协同场景中,有一个步骤无论如何不能省略——启用ACP协议并配置gRPC跨节点通信。否则,所有子Agent依然只能挤在同一个本地进程里,互相争抢算力、内存和上下文资源,协同二字基本无从谈起。

简而言之,若想突破单台计算机的计算能力上限,让多个Agent跨设备处理长周期任务、分布式数据采集或高并发响应,就必须严格按照一套完整的跨节点配置流程操作。这一步不是可选项,而是必选项。
确认ACP协议已启用并具备跨节点能力
直接确认当前ACP是否已激活:
openclaw configget acp.enabled
若返回 false,或提示“key not found”,则表明ACP默认关闭。解决方法很简单:
openclaw configset acp.enabled true && openclaw configset acp.transport "grpc"
此处需特别注意:HTTP模式仅适用于同一机器的IPC通信,无法穿透防火墙或跨越局域网;而gRPC具备双向流与心跳保活机制,是跨设备协作的唯一可行通道。
改完之后重启服务:openclaw restart
为远程节点生成可信身份凭证
接下来需要解决一个基本问题:身份验证。远程节点之间的通信必须基于TLS协议,否则数据安全无法保障。
方案一:主节点签发证书
在主控机(比如你手头那台MacBook)上执行:
openclaw acp cert issue --host 192.168.3.105 --days 365 --output ~/.openclaw/certs/node-b.pem
请留意,192.168.3.105 必须为Windows工作站的真实IP地址,且该IP需绑定到物理网卡,不可使用 127.0.0.1 等本地回环地址。
方案二:离线生成密钥对
若目标设备无网络权限,或不愿让主节点直接触碰副节点的私钥,可采用离线方式。在Windows机器上先执行:
openclaw acp keygen --output C:openclawcertsself.key
随后将生成的 self.key 文件复制到主节点,由主节点完成签名:
openclaw acp cert sign --key C:openclawcertsself.key --host 192.168.3.105 --output C:openclawcertsnode-b-signed.crt
这一点至关重要——目标设备必须同时持有这两个文件,TLS连接方能成功建立。缺少任一个都无法正常通信。
配置跨节点Agent路由规则
证书就绪后,即可在逻辑层面注册远程Agent。
第一步,在主节点上注册一台ID为 data-collector-win 的远程采集Agent:
openclaw agents add data-collector-win --remote --addr grpc://192.168.3.105:50051 --cert ~/.openclaw/certs/node-b.pem
第二步,声明该Agent能够处理的任务类型。编辑主节点的 bindings 配置,添加以下JSON:
openclaw configset --json bindings '[{"agentId":"data-collector-win","match":{"intent":"scrape","source":"public-web"}},{"agentId":"main","match":{"intent":"summarize"}}]'
第三步,强制刷新路由缓存,以保证配置立即生效:
openclaw acp route flush && openclaw acp route sync
至此,主Agent若收到携带 intent=scrape 的请求,便会自动将其转发至位于192.168.3.105的 data-collector-win 实例处理,本地的显存和CPU完全不受影响。
启动远程Agent服务并测试连通性
最后一步,使Windows工作站正式运行。
在Windows机器上以管理员身份打开PowerShell,进入OpenClaw安装目录:
cd "C:Program FilesOpenClaw"
接着启动远程服务,务必确保证书路径和监听端口与之前注册时保持一致:
.openclaw serve --addr :50051 --cert C:openclawcertsnode-b-signed.crt --key C:openclawcertsself.key --mode remote
观察终端输出,正常情况下应看到两行关键日志:gRPC server started on :50051 和 ACP node registered as data-collector-win。缺少任意一行均表示启动未成功。
返回主节点,执行连通性测试:
openclaw acp ping data-collector-win
若返回 PONG (rtt: 12ms),恭喜,跨节点链路已成功建立。若超时,通常是由于Windows防火墙未放行TCP 50051端口,检查并添加相应规则即可。
