Bridge Protocol (Legacy) の仕組みと移行
分散した Node を Gateway に接続しようとするとき、どのプロトコルを選ぶべきか迷うことがあります。特に、既存のシステムをメンテナンスしたり、古い実装を参考にしたりしていると、現在の標準とは異なる接続方式に遭遇することがあります。
結論からお伝えすると、新しく Node クライアントを構築する場合は、統一された Gateway WebSocket プロトコル を使用してください。Bridge プロトコルは レガシー なものとして扱われており、現在の OpenClaw ビルドには TCP Bridge リスナーは含まれていません。この記事では、歴史的なリファレンスとしてその仕様をまとめます。
このプロトコルを理解・検証するために必要な要素は以下の通りです。
- TCP および JSONL(1行ごとに1つの JSON オブジェクト)の知識
- 有効な Node トークン(ペアリング用)
- TLS 証明書(TLS を有効にする場合)
- Tailscale 環境(Tailnet 経由で接続する場合)
クイックスタート
Section titled “クイックスタート”Bridge プロトコルでの接続とペアリングは、以下の 4 ステップで進みます。
- Hello 送信: クライアントが Node のメタデータとトークン(保持している場合)を含む
helloフレームを送信します。 - ペアリング確認: ペアリングされていない場合、Gateway は
error(NOT_PAIREDまたはUNAUTHORIZED) を返します。 - ペアリングリクエスト: クライアントが
pair-requestを送信します。 - 承認と完了: Gateway 側で承認されると、
pair-okとhello-okが送信されます。
hello-ok が返されると、serverName や canvasHostUrl などの情報が取得でき、通信が可能になります。
Transport の仕様
Section titled “Transport の仕様”Bridge は TCP をベースにしており、データは JSONL 形式でやり取りされます。
- Port: レガシーなデフォルトポートは
18790です。 - TLS:
bridge.tls.enabledが true の場合、TLS が使用されます。 - Discovery: TLS 有効時、Bonjour の TXT レコードには
bridgeTls=1とbridgeTlsSha256が含まれ、Node は証明書をピン留めできます。
なお、現在の設定スキーマからは bridge.* キーは削除されています。
フレームの種類
Section titled “フレームの種類”クライアントと Gateway の間では、以下のフレームがやり取りされます。
Client → Gateway
Section titled “Client → Gateway”req/res: チャット、セッション、設定、ヘルスチェックなどの RPC。event: 音声の書き起こしやエージェントのリクエストなど、Node からのシグナル。
Gateway → Client
Section titled “Gateway → Client”invoke/invoke-res:camera.*やsms.sendといった Node へのコマンド。event: 購読しているセッションのチャット更新。ping/pong: 接続維持のためのキープアライブ。
Exec lifecycle events
Section titled “Exec lifecycle events”Node は system.run のアクティビティを通知するために exec.finished や exec.denied イベントを発行できます。
ペイロードに含まれる主なフィールドは以下の通りです。
sessionKey(必須): システムイベントを受け取るエージェントセッション。runId: 実行を識別する ID。command: 実行されたコマンド文字列。exitCode,success,output: 完了時の詳細情報。
Tailnet での利用
Section titled “Tailnet での利用”Bridge を Tailnet IP にバインドするには、~/.openclaw/openclaw.json で以下のように設定します。
{ "bridge.bind": "tailnet"}この設定により、クライアントは MagicDNS 名や Tailnet IP を介して接続できるようになります。ただし、Bonjour はネットワークを跨げないため、必要に応じてホスト名を手動で指定してください。
トラブルシューティング
Section titled “トラブルシューティング”接続時に発生する代表的な問題と解決策です。
NOT_PAIRED/UNAUTHORIZEDエラー: クライアントがまだ Gateway に登録されていません。pair-requestを送信し、Gateway 側で承認を待機してください。- 接続できない: 現在の OpenClaw ビルドでは TCP Bridge リスナーは起動しません。最新のクライアントを使用している場合は、Gateway WebSocket プロトコルへの移行を検討してください。
Bridge プロトコルは後方互換性のためにドキュメント化されていますが、今後の開発では Gateway プロトコルの利用を強く推奨します。
セットアップに関する具体的な質問がある場合は、AI Setup Assistant を活用してください。
次のステップ
Section titled “次のステップ”- Gateway protocol: 最新の推奨プロトコルについて学ぶ
- Node client development: Node の開発ガイドラインを確認する
OpenClaw Expert
まだ解決しませんか?
このページで解決しない場合は、OpenClaw Expertに直接質問してください。