ブリッジプロトコル(レガシー ノード トランスポート)
ブリッジプロトコルは レガシー のノード トランスポート(TCP JSONL)です。新しいノードクライアントでは、代わりに統合された Gateway WebSocket プロトコルを使用する必要があります。 新しいノードクライアント は、代わりに統合されたGateway WebSocketプロトコルを使用する必要があります。 新しいノードクライアント は、代わりに統合されたGateway WebSocketプロトコルを使用する必要があります。 オペレーターまたはノードクライアントを構築している場合は、 Gateway プロトコル を使用してください。 注記: 現在の OpenClaw ビルドには TCP ブリッジ リスナーは同梱されていません。本ドキュメントは履歴参照のために保持されています。 レガシーのbridge.* 設定キーは、もはや設定スキーマの一部ではありません。
従来の bridge.* 設定キーは設定スキーマの一部ではなくなりました。
従来の bridge.* 設定キーは設定スキーマの一部ではなくなりました。
両方が存在する理由
- セキュリティ境界: ブリッジは、完全な ゲートウェイ API サーフェスではなく、小さな 許可リスト を公開します。
- ペアリング + ノード ID: ノードの受け入れは ゲートウェイ によって管理され、ノードごとのトークンに紐づきます。
- 検出 UX: ノードは LAN 上で Bonjour により ゲートウェイ を検出するか、tailnet 経由で直接接続できます。
- ループバック WS: 完全な WS コントロールプレーンは、SSH 経由でトンネルしない限りローカルに留まります。
トランスポート
- TCP、1 行につき 1 つの JSON オブジェクト(JSONL)。
- オプションの TLS(
bridge.tls.enabledが true の場合)。 - レガシーのデフォルト リスナー ポートは
18790でした(現在のビルドでは TCP ブリッジは起動しません)。
bridgeTls=1 と
bridgeTlsSha256 が含まれ、ノードは証明書をピン留めできます。 Bonjour/mDNS の TXT レコードは
認証されていない点に注意してください。クライアントは、明示的なユーザーの意思または他のアウトオブバンド検証なしに、広告されたフィンガープリントを
信頼できるピンとして扱ってはなりません。
ハンドシェイク + ペアリング
- クライアントは、ノード メタデータ + トークン(既にペアリング済みの場合)を含む
helloを送信します。 - 未ペアリングの場合、ゲートウェイ は
error(NOT_PAIRED/UNAUTHORIZED)で応答します。 - クライアントは
pair-requestを送信します。 - ゲートウェイ は承認を待機し、その後
pair-okとhello-okを送信します。
hello-ok は serverName を返し、canvasHostUrl を含む場合があります。
フレーム
クライアント → ゲートウェイ:req/res: スコープ付き ゲートウェイ RPC(chat、sessions、config、health、voicewake、skills.bins)event: ノード シグナル(音声書き起こし、エージェント リクエスト、チャット購読、exec ライフサイクル)
invoke/invoke-res: ノード コマンド(canvas.*、camera.*、screen.record、location.get、sms.send)event: 購読された セッション 向けの チャット 更新ping/pong: キープアライブ
src/gateway/server-bridge.ts に存在していました(削除済み)。
Exec ライフサイクル イベント
ノードは、system.run のアクティビティを表面化するためにexec.finished または exec.denied イベントを送出できます。
これらは ゲートウェイ 内の system イベントにマッピングされます。(レガシー ノードでは、引き続き exec.started を送出する場合があります。)
これらはゲートウェイ内のシステムイベントにマッピングされます。 (レガシーノードはまだ exec.started を出力することができます。
これらはゲートウェイ内のシステムイベントにマッピングされます。 (レガシーノードはまだ exec.started を出力することができます。
ペイロード フィールド(特記がない限りすべて任意):
sessionKey(必須): system イベントを受信する エージェント セッション。runId: グルーピングのための一意な exec ID。command: 生または整形済みの コマンド 文字列。exitCode、timedOut、success、output: 完了の詳細(finished のみ)。reason: 拒否理由(denied のみ)。
Tailnet の使用
- ブリッジを tailnet IP にバインドします:
bridge.bind: "tailnet"を~/.openclaw/openclaw.jsonに設定します。 - クライアントは MagicDNS 名または tailnet IP 経由で接続します。
- Bonjour は ネットワークを跨ぎません。必要に応じて、手動の ホスト/ポート または 広域 DNS‑SD を使用してください。