RPCアダプター

OpenClawは外部CLIをJSON-RPCで統合する。現在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)

注意: 新しいiMessageセットアップにはBlueBubblesを使用してください。

  • OpenClawがimsg rpcを子プロセスとしてspawn(レガシーiMessage統合)。
  • JSON-RPCはstdin/stdout上の行区切り(1行に1つのJSONオブジェクト)。
  • TCPポート不要、デーモン不要。

使用されるコアメソッド:

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

レガシーセットアップとアドレッシングの詳細はiMessageを参照(chat_id推奨)。

アダプターガイドライン

  • Gatewayがプロセスを所有(開始/停止はプロバイダーライフサイクルに紐づく)。
  • RPCクライアントを堅牢に保つ: タイムアウト、終了時再起動。
  • 表示文字列より安定ID(例: chat_id)を優先。