#Studio: one canvas for multi-agent teams
1 messages ยท Page 1 of 1 (latest)
Hi all โ does anyone else hit this when running a multi-agent team?
Every time I tune a chief or figure out why a delegate edge did/didn't fire, I end up with 5โ10 tabs open: openclaw.json for allowAgents, the chief's AGENTS.md, each candidate's IDENTITY.md + SOUL.md + TOOLS.md, then walking symlinks under shared-workspace/projects/ to see what got written, then TASK.json for step order.
The data's correctly isolated for runtime โ but configuring, orchestrating, and debugging a team are three workflows that all need the same cross-file mental model, and cmd+tab-ing across 5 md files per agent scales badly past 2โ3 subagents.
So I built a standalone prototype that puts them on one canvas:
โข Configure โ click an agent โ side panel with all 5 config files; Cmd+S writes to disk; FileWatcher picks it up
โข Orchestrate โ graph of delegate edges (sessions_spawn), dataflow edges (symlinks), sequence edges (TASK.json order)
โข Debug โ per-session status badges; edge-click reveals the underlying allowAgents entry or symlink target
To set expectations: the prototype also has drag-to-connect symlink creation and a create/delete-agent flow. Those are for my own use and are deliberately NOT in the upstream v1 proposal โ v1 is the read-only graph + config-file editing subset deliberately minimum-viable.
Been running it on my own machine for a few months. Now writing an RFC to propose it as a native Studio tab in Control UI โ Lit, existing theme tokens (claw/knot/dash), reuses openclaw.i18n.locale and
openclaw.control.settings.v1 so theme + language sync with the rest of
the surface on the same machine. No new deps in v1.
Two architectural questions before I touch any Control UI code:
1. Graph rendering โ hand-rolled SVG + Lit (zero new deps, fits Lit style), a framework-agnostic lib (cytoscape / @antv/g6 / elkjs), or an isolated React island (reuses my React Flow prototype work)? Tentative lean: hand-rolled SVG for v1 (โค100 nodes is well in range), revisit later. Would value input.
2. Data layer โ new `GET /api/topology` + `topology.updated`
WS event, or fold into an existing namespace (e.g. /api/agents/topology)?
Full RFC: https://github.com/ccc330/openclaw-studio/blob/main/RFC.md
Prototype repo: https://github.com/ccc330/openclaw-studio
Not attached to any specific outcome โ happy to iterate, drop the idea, or hand it off. Screenshots below ๐
Screenshots + a short demo gif are in the README โ Discord won't let me attach them here:
https://github.com/ccc330/openclaw-studio/blob/main/README.md