複数 Gateway(同一ホスト)

ほとんどのセットアップでは、1つの Gateway で十分です。単一の Gateway が複数のメッセージング接続とエージェントを処理できるためです。より強固な分離や冗長性が必要な場合(レスキューボットなど)は、分離されたプロファイル/ポートで別々の Gateway を実行してください。

分離チェックリスト(必須)

  • OPENCLAW_CONFIG_PATH — インスタンスごとの config ファイル
  • OPENCLAW_STATE_DIR — インスタンスごとのセッション、認証情報、キャッシュ
  • agents.defaults.workspace — インスタンスごとのワークスペースルート
  • gateway.port(または --port)— インスタンスごとに一意
  • 派生ポート(browser/canvas)が重複しないこと

これらが共有されている場合、config の競合やポート衝突が発生します。

推奨:プロファイル(--profile

プロファイルは OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH を自動的にスコープし、サービス名にサフィックスを付けます。

# メイン
openclaw --profile main setup
openclaw --profile main gateway --port 18789

# レスキュー
openclaw --profile rescue setup
openclaw --profile rescue gateway --port 19001

プロファイルごとのサービス:

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

レスキューボットガイド

同一ホスト上で2つ目の Gateway を実行し、以下を独立させます:

  • profile/config
  • state dir
  • workspace
  • ベースポート(+ 派生ポート)

これにより、レスキューボットがメインボットから分離され、プライマリボットがダウンした場合でもデバッグや config 変更を適用できます。

ポート間隔:派生 browser/canvas/CDP ポートが衝突しないよう、ベースポート間に最低20ポートの間隔を空けてください。

インストール方法(レスキューボット)

# メインボット(既存または新規、--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 control service port = base + 2(loopback のみ)
  • canvasHost.port = base + 4
  • Browser profile CDP ポートは browser.controlPort + 9 .. + 108 から自動割り当て

config または env でこれらのいずれかをオーバーライドする場合、インスタンスごとに一意に保つ必要があります。

Browser/CDP 注意事項(よくある落とし穴)

  • 複数インスタンスで同じ値に browser.cdpUrl を固定しないでください
  • 各インスタンスには独自の browser control ポートと CDP 範囲が必要です(gateway ポートから派生)。
  • 明示的な CDP ポートが必要な場合は、インスタンスごとに browser.profiles.<name>.cdpPort を設定してください。
  • リモート Chrome:インスタンスごと、プロファイルごとに browser.profiles.<name>.cdpUrl を使用してください。

手動 env の例

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