@efengx/openclaw-channel-dragon
v0.5.58
Published
Dragon workbench channel for OpenClaw
Readme
Dragon OpenClaw Channel (dragon)
This package is an in-repo OpenClaw channel plugin that bridges OpenClaw to the Dragon agent-client workbench chat UI.
What it does (v0)
- Starts a local WebSocket server on a dynamically allocated available port.
- When OpenClaw sends outbound text through the
dragonchannel, the plugin broadcasts a JSON event to all connected workbench clients.
Then restart the OpenClaw gateway.
Workbench <-> plugin WS protocol (current)
Client -> plugin
{"type":"bind","agentId":"<id>","sessionKey":"main"}{"type":"user_text","text":"hello"}(echoes back asinbound_text){"type":"ping"}
Plugin -> client
{"type":"hello","channel":"dragon","connId":"..."}{"type":"bind_ack","agentId":"...","sessionKey":"main"}{"type":"outbound_text","text":"...","route":{...}}(from OpenClaw outbound){"type":"inbound_text","text":"...","route":{...}}(echo)
Next steps
- Add inbound message dispatch: client -> plugin -> OpenClaw inbound reply pipeline (route resolution + session recording + reply dispatch).
Multi-agent workbench routing
The desktop workbench scopes non-default OpenClaw sessions as:
openclaw-agent:<agentId>:<workbenchSessionId>The Dragon channel validates <agentId> against agents.list and dispatches
the turn with a canonical OpenClaw session key:
agent:<agentId>:dragon:direct:<dragonAgentId>:<encodedWorkbenchSessionId>Unscoped legacy workbench sessions continue to route to the configured default OpenClaw agent. The scoped session id is also retained by Dragon telemetry so chat history and message queues remain isolated when the workbench switches between agents.
