Skip to main content

多個 Gateway 閘道器(同一主機)

Most setups should use one Gateway because a single Gateway can handle multiple messaging connections and agents. 若需要更強的隔離或備援(例如救援機器人),請以隔離的設定檔/連接埠執行多個 Gateway。

隔離檢查清單(必要)

  • OPENCLAW_CONFIG_PATH — 每個實例獨立的設定檔
  • OPENCLAW_STATE_DIR — per-instance sessions, creds, caches
  • agents.defaults.workspace — 每個實例獨立的工作區根目錄
  • gateway.port(或 --port)— 每個實例必須唯一
  • 衍生的連接埠(瀏覽器 / 畫布)不得重疊
若上述項目有任何共用,將會發生設定競爭與連接埠衝突。

建議作法:設定檔(profiles,--profile

Profiles 會自動限定 OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH,並為服務名稱加上後綴。
各 Profile 的服務:

救援機器人指南

在同一台主機上執行第二個 Gateway 閘道器,並為其配置獨立的:
  • 設定檔 / 設定
  • 狀態目錄
  • 工作區
  • base port (plus derived ports)
This keeps the rescue bot isolated from the main bot so it can debug or apply config changes if the primary bot is down. 連接埠間距:基礎連接埠之間至少預留 20 個連接埠,確保衍生的瀏覽器 / 畫布 / CDP 連接埠永不衝突。

如何安裝(救援機器人)

Port mapping (derived)

基礎連接埠 = gateway.port(或 OPENCLAW_GATEWAY_PORT / --port)。
  • 瀏覽器控制服務連接埠 = 基礎連接埠 + 2(僅限 local loopback)
  • canvas host 由 Gateway HTTP 伺服器提供(與 gateway.port 使用相同連接埠)
  • 瀏覽器設定檔的 CDP 連接埠會自動從 browser.controlPort + 9 .. + 108 配置
If you override any of these in config or env, you must keep them unique per instance.

瀏覽器/CDP 注意事項(常見陷阱)

  • 不要 在多個實例上將 browser.cdpUrl 固定為相同的值。
  • 每個實例都需要自己的瀏覽器控制連接埠與 CDP 範圍(由其 Gateway 閘道器連接埠衍生)。
  • 若需要明確指定 CDP 連接埠,請為每個實例設定 browser.profiles.<name>.cdpPort
  • 遠端 Chrome:使用 browser.profiles.<name>.cdpUrl(每個設定檔、每個實例)。

手動環境變數範例

快速檢查