Gateway
複数の Gateway
ほとんどのセットアップでは Gateway は 1 つで十分です。1 つの Gateway で複数のメッセージング接続とエージェントを処理できます。より強力な分離や冗長性(例: レスキューボット)が必要な場合にのみ、プロファイルとポートを分離して複数の Gateway を実行してください。
レスキューボットのクイックスタート
最も簡単なレスキューボットのセットアップ:
- メインボットはデフォルトプロファイルのままにします。
- レスキューボットは、独自の Telegram ボットトークンを使用して
--profile rescueで実行します。 - レスキューボットには別のベースポート(例:
19789)を設定します。
これにより、プライマリボットが停止していても、レスキューボットでデバッグや設定変更を行えます。派生するブラウザ/CDP ポートが衝突しないように、ベースポート間には少なくとも 20 ポートの間隔を空けてください。
# レスキューボット(別の Telegram ボット、別のプロファイル、ポート 19789)openclaw --profile rescue onboardopenclaw --profile rescue gateway install --port 19789メインボットがすでに実行中であれば、通常はこれだけで十分です。オンボーディングですでにレスキューサービスがインストールされている場合は、最後の gateway install を省略してください。
openclaw --profile rescue onboard の実行中:
- レスキューアカウント専用の別の Telegram ボットトークンを使用します(オペレーター専用に保ちやすく、メインボットのチャンネル/アプリのインストールから独立し、DM ベースの簡単な復旧経路になります)。
rescueというプロファイル名を維持します。- メインボットより少なくとも 20 大きいベースポートを使用します。
- 自分ですでに管理しているワークスペースがない限り、デフォルトのレスキューワークスペースを使用します。
--profile rescue onboard による変更内容
--profile rescue onboard は通常のオンボーディングフローを実行しますが、すべてを別のプロファイルに書き込むため、レスキューボットには次のものが個別に作成されます:
- プロファイル/設定ファイル
- 状態ディレクトリ
- ワークスペース(デフォルト:
~/.openclaw/workspace-rescue) - 管理対象サービス名
- ベースポート(および派生ポート)
- Telegram ボットトークン
それ以外のプロンプトは通常のオンボーディングと同じです。
一般的な複数 Gateway のセットアップ
同じ分離パターンは、1 台のホスト上の任意の Gateway の組み合わせやグループに使用できます。追加する各 Gateway に、固有の名前付きプロファイルとベースポートを割り当てます:
# メイン(デフォルトプロファイル)openclaw setupopenclaw gateway --port 18789 # 追加の Gatewayopenclaw --profile ops setupopenclaw --profile ops gateway --port 19789両方で名前付きプロファイルを使用することもできます:
openclaw --profile main setupopenclaw --profile main gateway --port 18789 openclaw --profile ops setupopenclaw --profile ops gateway --port 19789サービスも同じパターンに従います:
openclaw gateway installopenclaw --profile ops gateway install --port 19789フォールバック用のオペレーター経路にはレスキューボットのクイックスタートを使用し、異なるチャンネル、テナント、ワークスペース、または運用ロールにまたがる複数の常駐 Gateway には一般的なプロファイルパターンを使用してください。
分離チェックリスト
Gateway インスタンスごとに、以下を一意にしてください:
| 設定 | 目的 |
|---|---|
OPENCLAW_CONFIG_PATH |
インスタンスごとの設定ファイル |
OPENCLAW_STATE_DIR |
インスタンスごとのセッション、認証情報、キャッシュ |
agents.defaults.workspace |
インスタンスごとのワークスペースルート |
gateway.port(または --port) |
インスタンスごとに一意 |
| 派生するブラウザ/CDP ポート | 以下を参照 |
これらのいずれかを共有すると、設定、状態、またはポートの競合が発生します。
OPENCLAW_ALLOW_MULTI_GATEWAY=1 によって設定ごとの単一インスタンス制約がスキップされる場合でも、Gateway の起動時には状態ディレクトリの所有権が一意であることが強制されます。
ポートマッピング(派生)
ベースポート = gateway.port(または OPENCLAW_GATEWAY_PORT / --port)。
- ブラウザ制御サービスのポート = ベース + 2(local loopback のみ)。
- Canvas ホストは Gateway HTTP サーバー自体(
gateway.portと同じポート)で提供されます。 - ブラウザプロファイルの CDP ポートは、
browser control port + 9から+ 108の範囲で自動的に割り当てられます。
これらを設定または環境変数で上書きする場合は、インスタンスごとに一意にする必要があります。
ブラウザ/CDP に関する注意(よくある落とし穴)
- 複数のインスタンスで
browser.cdpUrlを同じ値に固定してはいけません。 - 各インスタンスには、(Gateway ポートから派生する)固有のブラウザ制御ポートと CDP 範囲が必要です。
- CDP ポートを明示的に指定する場合は、インスタンスごとに
browser.profiles.<name>.cdpPortを設定します。 - リモート Chrome には、プロファイルおよびインスタンスごとに
browser.profiles.<name>.cdpUrlを使用します。
手動での環境変数設定例
OPENCLAW_CONFIG_PATH=~/.openclaw/main.json \OPENCLAW_STATE_DIR=~/.openclaw \openclaw gateway --port 18789 OPENCLAW_CONFIG_PATH=~/.openclaw/rescue.json \OPENCLAW_STATE_DIR=~/.openclaw-rescue \openclaw gateway --port 19789簡易チェック
openclaw gateway status --deepopenclaw --profile rescue gateway status --deepopenclaw --profile rescue gateway probeopenclaw statusopenclaw --profile rescue statusopenclaw --profile rescue browser statusgateway status --deepは、以前のインストールで残された古い launchd/systemd/schtasks サービスを検出します。gateway probeの警告テキスト(multiple reachable gateway identities detectedなど)は、意図的に複数の分離された Gateway を実行している場合、または到達可能なプローブ対象が同じ Gateway であることを OpenClaw が確認できない場合にのみ表示されるのが正常です。同じ Gateway への SSH トンネル、プロキシ URL、または設定済みのリモート URL は、転送ポートが異なる場合でも、複数の転送経路を持つ 1 つの Gateway です。