多 Gateway 部署(同一主機)

大多數情境只需要一個 Gateway,因為單一 Gateway 就能同時處理多個通訊連線和代理。如果你需要更強的隔離或備援能力(例如一個救援機器人),可以用獨立的 profile 和連接埠來跑多個 Gateway。

隔離檢查清單(必要)

  • OPENCLAW_CONFIG_PATH — 每個實例各自的設定檔
  • OPENCLAW_STATE_DIR — 每個實例各自的 session、憑證、快取目錄
  • agents.defaults.workspace — 每個實例各自的工作區根目錄
  • gateway.port(或 --port)— 每個實例必須使用不同的連接埠
  • 衍生連接埠(瀏覽器/canvas)也不能重疊

如果這些路徑或連接埠共用,會出現設定競爭和連接埠衝突。

建議做法:使用 profile(--profile

Profile 會自動區隔 OPENCLAW_STATE_DIROPENCLAW_CONFIG_PATH,並在服務名稱後加上後綴。

# 主要
openclaw --profile main setup
openclaw --profile main gateway --port 18789

# 救援
openclaw --profile rescue setup
openclaw --profile rescue gateway --port 19001

以 profile 為單位安裝服務:

openclaw --profile main gateway install
openclaw --profile rescue gateway install

救援機器人指南

在同一台主機上執行第二個 Gateway,各自擁有獨立的:

  • profile/設定檔
  • 狀態目錄
  • 工作區
  • 基礎連接埠(加上衍生連接埠)

這樣即使主要機器人掛掉,救援機器人仍能獨立運作,用來除錯或調整設定。

連接埠間距:基礎連接埠之間至少保留 20 個連接埠的距離,避免衍生的瀏覽器/canvas/CDP 連接埠撞號。

安裝方式(救援機器人)

# 主要機器人(既有或全新安裝,不帶 --profile 參數)
# 在 port 18789 + Chrome CDC/Canvas/... 連接埠上運行
openclaw onboard
openclaw gateway install

# 救援機器人(獨立 profile + 連接埠)
openclaw --profile rescue onboard
# 注意:
# - 工作區名稱預設會自動加上 -rescue 後綴
# - 連接埠至少要設定在 18789 + 20 以上,
#   建議直接選一個完全不同的基礎連接埠,像 19789
# - 其餘 onboarding 流程與一般安裝相同

# 安裝服務(如果 onboarding 過程中沒有自動安裝的話)
openclaw --profile rescue gateway install

連接埠對應(衍生連接埠)

基礎連接埠 = gateway.port(或 OPENCLAW_GATEWAY_PORT / --port)。

  • 瀏覽器控制服務連接埠 = 基礎 + 2(僅限 loopback)
  • canvas host 與 Gateway HTTP 伺服器共用同一連接埠(即 gateway.port
  • 瀏覽器 profile CDP 連接埠從 browser.controlPort + 9 .. + 108 自動分配

如果你在設定或環境變數中覆寫了以上任何連接埠,必須確保每個實例的值都不重複。

瀏覽器/CDP 注意事項(常見地雷)

  • 不要在多個實例中把 browser.cdpUrl 設成相同的值。
  • 每個實例都需要自己的瀏覽器控制連接埠和 CDP 範圍(從各自的 gateway 連接埠衍生)。
  • 如果需要明確指定 CDP 連接埠,請在每個實例中分別設定 browser.profiles.<name>.cdpPort
  • 遠端 Chrome:使用 browser.profiles.<name>.cdpUrl(每個 profile、每個實例各自設定)。

手動環境變數範例

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