#Studio: one canvas for multi-agent teams

1 messages ยท Page 1 of 1 (latest)

mild sparrow
#

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)?

mild sparrow