Architecture
Reasoning channel
The reasoning channel is request/response:- A
ReasoningJobis created by the backend and published to theassistant_channelpubsub topic for the integration. - The assistant plugin subscribes to an SSE stream and receives the job envelope.
- The plugin executes the reasoning (via local LLM, remote API, or subagent).
- The plugin posts the result back to the backend’s reasoning job completion endpoint.
Envelope shape
BYO encryption
When the job is BYO-encrypted, thepayload contains a BYOEnvelope with ciphertext and nonce fields. The plugin decrypts using the XChaCha20-Poly1305 key derived from the X25519 key exchange performed during pairing.
SSE stream
The plugin connects toGET /api/v1/openclaw/integrations/{id}/stream with the relay token as Bearer auth. Events are delivered as Server-Sent Events.
Heartbeat
The plugin posts heartbeat updates to/api/v1/openclaw/integrations/{id}/heartbeat every 30 seconds, carrying host status and capability information.
Capability probe
When the backend sends a reasoning job withpurpose: "capability_probe", the assistant self-describes its available skills and returns a capability profile. This is displayed in the desktop assistant settings.
Providers
StageWhisper’s provider registry mapsprovider_kind values (e.g., openclaw, hermes) to descriptors with install commands, pairing instructions, and protocol version requirements. Each provider implements the same envelope contract.
Current providers: OpenClaw, Hermes (coming soon).