Nhiều Gateway (cùng một máy)

Hầu hết các trường hợp chỉ cần dùng một Gateway thôi, vì một Gateway có thể xử lý nhiều kết nối messaging và agent. Nếu các bạn cần cách ly mạnh hơn hoặc dự phòng (ví dụ: rescue bot), thì chạy các Gateway riêng biệt với profile/port được cách ly.

Checklist cách ly (bắt buộc)

  • OPENCLAW_CONFIG_PATH — file config riêng cho từng instance
  • OPENCLAW_STATE_DIR — session, creds, cache riêng cho từng instance
  • agents.defaults.workspace — thư mục workspace gốc riêng cho từng instance
  • gateway.port (hoặc --port) — port duy nhất cho từng instance
  • Các port phái sinh (browser/canvas) không được trùng nhau

Nếu các thứ này bị dùng chung, các bạn sẽ gặp xung đột config và port.

Khuyên dùng: profile (--profile)

Profile tự động phân tách OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH và thêm hậu tố vào tên service.

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

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

Service theo từng profile:

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

Hướng dẫn Rescue-bot

Chạy Gateway thứ hai trên cùng máy với các thứ riêng:

  • profile/config
  • state dir
  • workspace
  • base port (cộng với các port phái sinh)

Điều này giữ cho rescue bot được cách ly khỏi bot chính, để nó có thể debug hoặc áp dụng thay đổi config khi bot chính bị down.

Khoảng cách port: để ít nhất 20 port giữa các base port để các port phái sinh browser/canvas/CDP không bao giờ va chạm.

Cách cài đặt (rescue bot)

# Main bot (đã có hoặc mới, không dùng tham số --profile)
# Chạy trên port 18789 + Chrome CDC/Canvas/... Ports
openclaw onboard
openclaw gateway install

# Rescue bot (profile + port được cách ly)
openclaw --profile rescue onboard
# Lưu ý:
# - tên workspace sẽ được thêm hậu tố -rescue theo mặc định
# - Port nên ít nhất là 18789 + 20 Port,
#   tốt hơn là chọn base port hoàn toàn khác, như 19789,
# - phần còn lại của onboarding giống như bình thường

# Để cài service (nếu chưa tự động cài trong quá trình onboarding)
openclaw --profile rescue gateway install

Ánh xạ port (phái sinh)

Base port = gateway.port (hoặc OPENCLAW_GATEWAY_PORT / --port).

  • browser control service port = base + 2 (chỉ loopback)
  • canvasHost.port = base + 4
  • Browser profile CDP port tự động phân bổ từ browser.controlPort + 9 .. + 108

Nếu các bạn override bất kỳ cái nào trong config hoặc env, phải giữ chúng duy nhất cho từng instance.

Lưu ý Browser/CDP (lỗi thường gặp)

  • Không được đặt browser.cdpUrl cùng giá trị trên nhiều instance.
  • Mỗi instance cần browser control port và CDP range riêng (phái sinh từ gateway port của nó).
  • Nếu cần CDP port cụ thể, đặt browser.profiles.<name>.cdpPort cho từng instance.
  • Remote Chrome: dùng browser.profiles.<name>.cdpUrl (theo profile, theo instance).

Ví dụ env thủ công

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

Kiểm tra nhanh

openclaw --profile main status
openclaw --profile rescue status
openclaw --profile rescue browser status