多个 Gateway(同一主机)
大多数设置应该使用一个 Gateway,因为单个 Gateway 可以处理多个消息连接和 agent。如果你需要更强的隔离或冗余(例如,救援机器人),请使用隔离的配置文件/端口运行单独的 Gateway。
隔离清单(必需)
- OPENCLAW_CONFIG_PATH — 每个实例的配置文件
- OPENCLAW_STATE_DIR — 每个实例的会话、凭证、缓存
- agents.defaults.workspace — 每个实例的工作空间根目录
- gateway.port(或 --port)— 每个实例唯一
- 派生端口(browser/canvas)不得重叠
如果这些共享,你将遇到配置竞争和端口冲突。
推荐:配置文件(--profile)
配置文件自动范围 OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH 并为服务名称添加后缀。
# main
openclaw --profile main setup
openclaw --profile main gateway --port 18789
# rescue
openclaw --profile rescue setup
openclaw --profile rescue gateway --port 19001
每个配置文件的服务:
openclaw --profile main gateway install
openclaw --profile rescue gateway install
救援机器人指南
在同一主机上运行第二个 Gateway,拥有自己的:
- 配置文件/配置
- 状态目录
- 工作空间
- 基础端口(加上派生端口)
这使救援机器人与主机器人隔离,以便在主机器人关闭时可以调试或应用配置更改。
端口间距:在基础端口之间至少留出 20 个端口,以便派生的 browser/canvas/CDP 端口永远不会冲突。
如何安装(救援机器人)
# 主机器人(现有或新鲜,不带 --profile 参数)
# 运行在端口 18789 + Chrome CDC/Canvas/... 端口
openclaw onboard
openclaw gateway install
# 救援机器人(隔离的配置文件 + 端口)
openclaw --profile rescue onboard
# 注意:
# - 默认情况下,工作空间名称将后缀为 -rescue
# - 端口应至少为 18789 + 20 个端口,
# 更好的选择是完全不同的基础端口,如 19789,
# - 其余的入门流程与正常相同
# 安装服务(如果在入门期间没有自动发生)
openclaw --profile rescue gateway install
端口映射(派生)
基础端口 = gateway.port(或 OPENCLAW_GATEWAY_PORT / --port)。
- browser 控制服务端口 = 基础 + 2(仅回环)
- canvasHost.port = 基础 + 4
- Browser 配置文件 CDP 端口从 browser.controlPort + 9 .. + 108 自动分配
如果你在配置或环境中覆盖其中任何一个,则必须保持每个实例唯一。
Browser/CDP 注意事项(常见陷阱)
- 不要在多个实例上将 browser.cdpUrl 固定到相同的值。
- 每个实例需要自己的 browser 控制端口和 CDP 范围(从其 gateway 端口派生)。
- 如果你需要明确的 CDP 端口,请为每个实例设置 browser.profiles.<name>.cdpPort。
- 远程 Chrome:使用 browser.profiles.<name>.cdpUrl(每个配置文件、每个实例)。
手动环境示例
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
快速检查
openclaw --profile main status
openclaw --profile rescue status
openclaw --profile rescue browser status