RPC-Adapter

OpenClaw integriert externe CLIs über JSON-RPC. Dabei kommen heute zwei Muster zum Einsatz.

Muster A: HTTP-Daemon (signal-cli)

  • signal-cli läuft als Daemon mit JSON-RPC über HTTP.
  • Event-Stream ist SSE (/api/v1/events).
  • Health-Probe: /api/v1/check.
  • OpenClaw verwaltet den Lifecycle, wenn channels.signal.autoStart=true gesetzt ist.

Siehe Signal für Setup und Endpoints.

Muster B: stdio-Kindprozess (imsg)

  • OpenClaw startet imsg rpc als Kindprozess.
  • JSON-RPC ist zeilenweise über stdin/stdout (ein JSON-Objekt pro Zeile).
  • Kein TCP-Port, kein Daemon erforderlich.

Verwendete Kernmethoden:

  • watch.subscribe → Benachrichtigungen (method: "message")
  • watch.unsubscribe
  • send
  • chats.list (Probe/Diagnostik)

Siehe iMessage für Setup und Adressierung (chat_id bevorzugt).

Adapter-Richtlinien

  • Gateway verwaltet den Prozess (Start/Stop ist an den Provider-Lifecycle gebunden).
  • Halte RPC-Clients resilient: Timeouts, Neustart bei Exit.
  • Bevorzuge stabile IDs (z. B. chat_id) gegenüber Display-Strings.