Multiple Gateways(同一主机)
大多数部署只需要一个 Gateway,因为单个 Gateway 就能处理多个消息连接与多个 agents。如果你需要更强的隔离或冗余(例如一个救援/兜底 bot),可以运行多个相互隔离的 Gateways,并使用独立的 profiles/ports。
隔离检查清单(必需)
OPENCLAW_CONFIG_PATH— 每个实例独立的 config 文件OPENCLAW_STATE_DIR— 每个实例独立的 sessions、creds、cachesagents.defaults.workspace— 每个实例独立的 workspace rootgateway.port(或--port)— 每个实例唯一- 派生端口(browser/canvas)不能重叠
如果这些被共享,你会遇到 config 竞争与端口冲突。
推荐:profiles(--profile)
Profiles 会自动为 OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH 做作用域隔离,并给 service name 加后缀。
bash
# main
openclaw --profile main setup
openclaw --profile main gateway --port 18789
# rescue
openclaw --profile rescue setup
openclaw --profile rescue gateway --port 19001按 profile 安装 services:
bash
openclaw --profile main gateway install
openclaw --profile rescue gateway installRescue-bot 指南
在同一台主机上运行第二个 Gateway,并为其分别配置:
- profile/config
- state dir
- workspace
- base port(以及派生端口)
这能让 rescue bot 与主 bot 隔离:当主 bot 出问题时,rescue bot 仍能用于调试或应用配置变更。
端口间隔:base ports 之间至少间隔 20 个端口,确保派生的 browser/canvas/CDP 端口永远不会撞。
安装方式(rescue bot)
bash
# Main bot(已有或新建,不带 --profile 参数)
# 运行在 18789 + Chrome CDC/Canvas/... 派生端口
openclaw onboard
openclaw gateway install
# Rescue bot(隔离 profile + 端口)
openclaw --profile rescue onboard
# Notes:
# - workspace 名称默认会后缀 -rescue
# - Port 至少应为 18789 + 20,
# 更好的做法是选择完全不同的 base port,比如 19789
# - 其余 onboarding 步骤与正常流程一致
# 安装 service(如果 onboarding 没有自动完成)
openclaw --profile rescue gateway install端口映射(派生)
Base port = gateway.port(或 OPENCLAW_GATEWAY_PORT / --port)。
- browser control service port = base + 2(仅 loopback)
canvasHost.port = base + 4- Browser profile CDP 端口从
browser.controlPort + 9 .. + 108自动分配
如果你在 config 或 env 中覆盖了其中任何一个,就必须确保每个实例都唯一。
Browser/CDP 备注(常见踩坑点)
- 不要把多个实例的
browser.cdpUrl固定到同一组值。 - 每个实例需要独立的 browser control port 与 CDP 范围(由其 gateway port 派生)。
- 如果你需要显式的 CDP 端口,请为每个实例设置
browser.profiles.<name>.cdpPort。 - 远程 Chrome:使用
browser.profiles.<name>.cdpUrl(按 profile、按实例)。
手工 env 示例
bash
OPENCLAW_CONFIG_PATH=~/.openclaw/main.json \
OPENCLAW_STATE_DIR=~/.openclaw-main \
openclaw gateway --port 18789
OPENCLAW_CONFIG_PATH=~/.openclaw/rescue.json \
OPENCLAW_STATE_DIR=~/.openclaw-rescue \
openclaw gateway --port 19001快速检查
bash
openclaw --profile main status
openclaw --profile rescue status
openclaw --profile rescue browser status