多个 Gateway 网关
多个 Gateway 网关(同一主机)
大多数设置应使用一个 Gateway 网关,因为单个 Gateway 网关可以处理多个消息连接和智能体。如果你需要更强的隔离或冗余(例如救援机器人),请运行使用隔离配置档案/端口的独立 Gateway 网关。
隔离检查清单(必需)
OPENCLAW_CONFIG_PATH— 每个实例单独的配置文件OPENCLAW_STATE_DIR— 每个实例单独的会话、凭证、缓存agents.defaults.workspace— 每个实例单独的工作区根目录gateway.port(或--port)— 每个实例唯一- 派生端口(browser/canvas)不得重叠
如果这些被共享,你会遇到配置竞争和端口冲突。
推荐:配置档案(--profile)
配置档案会自动限定 OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH,并为服务名称添加后缀。
每个配置档案的服务:
救援机器人指南
在同一主机上运行第二个 Gateway 网关,并为它单独设置:
- 配置档案/配置
- 状态目录
- 工作区
- 基础端口(以及派生端口)
这样可以将救援机器人与主机器人隔离,因此当主机器人宕机时,它仍可用于调试或应用配置更改。
端口间距:基础端口之间至少保留 20 个端口,以确保派生的 browser/canvas/CDP 端口永不冲突。
如何安装(救援机器人)
端口映射(派生)
基础端口 = gateway.port(或 OPENCLAW_GATEWAY_PORT / --port)。
- browser 控制服务端口 = 基础端口 + 2(仅 loopback)
- canvas host 由 Gateway 网关 HTTP 服务器提供(与
gateway.port使用相同端口) - Browser profile CDP 端口会从
browser.controlPort + 9 .. + 108自动分配
如果你在配置或环境变量中覆盖了其中任何一个,必须确保它们在每个实例之间保持唯一。
Browser/CDP 说明(常见陷阱)
- 不要在多个实例上将
browser.cdpUrl固定为相同值。 - 每个实例都需要自己的 browser 控制端口和 CDP 范围(从其 Gateway 网关端口派生)。
- 如果你需要显式 CDP 端口,请为每个实例设置
browser.profiles.<name>.cdpPort。 - 远程 Chrome:使用
browser.profiles.<name>.cdpUrl(按配置档案、按实例设置)。