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)を優先