RPC アダプター

OpenClaw は JSON-RPC を介して外部 CLI を統合します。現在、2 つのパターンが使用されています。

パターン A:HTTP デーモン (signal-cli)

  • signal-cli は JSON-RPC over HTTP でデーモンとして実行
  • イベントストリームは SSE (/api/v1/events)
  • ヘルスプローブ:/api/v1/check
  • channels.signal.autoStart=true の場合、OpenClaw がライフサイクルを所有

セットアップとエンドポイントについては Signal を参照してください。

パターン B:stdio 子プロセス (imsg)

  • OpenClaw は imsg rpc を子プロセスとして起動
  • JSON-RPC は stdin/stdout 経由で行区切り(1 行につき 1 つの JSON オブジェクト)
  • TCP ポート不要、デーモン不要

使用される主要メソッド:

  • watch.subscribe → 通知(メソッド:"message")
  • watch.unsubscribe
  • send
  • chats.list(プローブ/診断)

セットアップとアドレス指定(chat_id が推奨)については iMessage を参照してください。

アダプターガイドライン

  • Gateway がプロセスを所有(起動/停止はプロバイダーライフサイクルに紐付け)
  • RPC クライアントを回復力のあるものに保つ:タイムアウト、終了時の再起動
  • 表示文字列よりも安定した ID(例:chat_id)を優先