cadenza.connect(...) wires two or more robots into a single coordination
terminal so they can talk to each other and share one human goal. It reuses
each robot’s user-facing narration channel for robot↔robot messages, routed
through a FastMCP server under the hood.
FastMCP is an optional extra. Install it with
pip install "cadenza-lab[mcp]".connect()
CoordinationTerminal
is a context manager (it owns the MCP server for the session); each robot passed
in gains a .comm link.
Robot-to-robot messaging
Each connected robot exposes a.comm link:
Splitting one goal across robots
term.coordinate(goal) takes a single human goal and splits it into per-robot
subgoals, then delegates each over the MCP. Routing is by explicit target
(name a robot in the goal), then capability (match the subtask to what each
robot can do), then round-robin.
route_by_capability=False to fall back to simple round-robin assignment.
Demo: two robots, one goal
Drive each robot
The
go1 / g1 / arm controllers each robot in the terminal drives.