Install
openclaw skills install @milkteawithsoybeanmilktast/openclaw-multi-instanceOpenClaw 多实例互联。当用户有多台机器运行 OpenClaw,想让它们互相通信、传文件、共享记忆时使用。触发词:多实例、互联、另一台服务器、同步记忆、实例通信。
openclaw skills install @milkteawithsoybeanmilktast/openclaw-multi-instance让多台机器上的 OpenClaw 实例互相通信、传文件、共享记忆,实现无感切换。
┌──────────────────┐ ┌──────────────────┐
│ 实例 A (本地) │ │ 实例 B (远程) │
│ │ SSH │ │
│ OpenClaw ────┼────────▶│ OpenClaw │
│ │ API │ │
└──────────────────┘ └──────────────────┘
│ │
└──── 定期对账(记忆叠加合并) ──┘
三种能力:
远程实例需要在配置中开启 Chat Completions endpoint:
// ~/.openclaw/openclaw.json
{
gateway: {
http: {
endpoints: {
chatCompletions: { enabled: true },
},
},
},
}
然后重启 Gateway:openclaw gateway restart
验证:用 curl 测试:
curl -sS http://<远程IP>:<端口>/v1/chat/completions \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{"model":"openclaw:main","messages":[{"role":"user","content":"ping"}]}'
获取 Token:查看远程实例的 gateway.auth.token 或环境变量 OPENCLAW_GATEWAY_TOKEN。
如果本地有公钥,直接让远程实例帮忙加:
通过 API 告诉远程实例:
"请把以下公钥加到 authorized_keys:
<本地 cat ~/.ssh/id_ed25519.pub 的内容>
追加到 ~/.ssh/authorized_keys,chmod 600"
如果远程有公钥,本地加:
# 获取远程公钥(通过 API 问远程实例要)
# 然后本地:
echo "<公钥内容>" >> ~/.ssh/authorized_keys
测试:ssh <用户>@<远程IP> "echo OK"
通过 scp 把身份和记忆同步过去:
scp IDENTITY.md SOUL.md USER.md MEMORY.md TOOLS.md AGENTS.md \
<用户>@<远程IP>:<远程workspace路径>/
scp -r memory/ <用户>@<远程IP>:<远程workspace路径>/memory/
注意权限:远程文件要 chown 给正确的用户。
创建 cron job,定期执行记忆合并。
合并原则(核心):
<!-- 来源: 实例A -->Cron 配置建议:每周一次,比如周日 00:00
sessionTarget: isolated
schedule: { kind: "cron", expr: "0 0 * * 0", tz: "Asia/Shanghai" }
payload: {
kind: "agentTurn",
message: "执行记忆同步:<1> scp 拉取远程的 MEMORY.md 和 memory/ <2> 叠加合并 <3> 推送合并结果回远程 <4> 输出同步报告"
}
搭建完成后,跟本地实例说:
跟远程实例说也一样,体验无感切换。
本 skill 包含:
| 文件 | 作用 |
|---|---|
SKILL.md | 本文件,给 OpenClaw 的搭建指南 |
scripts/sync-memory.sh | 记忆同步脚本(可选,也可以让 agent 自行合并) |
references/peer-config.json5 | 远程实例连接信息模板 |
⚠️ 必须告诉用户: