Orchestration Reference¶
Implementation details for sub-agent orchestration. For the high-level design, see the v0.6.0 roadmap.
Session Model¶
@dataclass
class Session:
# ... existing fields ...
parent_session_id: str | None = None # set for workers
worker_sessions: list[str] = field(default_factory=list)
task_description: str = ""
is_worker: bool = False
Spawn Flow¶
- Leader calls
spawn_worker("Refactor auth to JWT") - Hub creates work dir at
/tmp/voice-hub-sessions/{leader_voice}/workers/{name}/ - Hub writes
.mcp.jsonwith newVOICE_HUB_SESSION_ID - Hub writes
CLAUDE.mdwith worker identity and task - Hub starts tmux session
voice-{leader}-{letter}and launches Claude Code - Claude loads MCP server, connects to hub
- Hub sends
worker_spawnedto browser → sub-tab appears - Worker reads task from CLAUDE.md and begins work
- Worker uses
report_statusandsend_messageto communicate progress
Worker CLAUDE.md Template¶
You are {Leader}-{Letter}, a worker for {Leader}.
Task: {task_description}
Report progress with `report_status`. When done, send results to {Leader} with `send_message`.
Message Routing¶
- Leader → worker:
send_message("Sky-A", "...") - Worker → leader:
send_message("Sky", "...") - Worker → worker: Not direct (route through leader)
- User → worker: Browser chat → hub queues as inbox message
API Endpoints¶
POST /api/sessions/{id}/workers— Spawn (called internally byspawn_worker)GET /api/sessions/{id}/workers— List workersDELETE /api/sessions/{id}/workers/{name}— Kill worker
Resource Limits¶
| Limit | Value | Rationale |
|---|---|---|
| Max per leader | 4 (A-D) | Prevent runaway spawning |
| Max total | 14 | System resource budget |
| Idle timeout | 30 min | Auto-cleanup |
Workflow Example¶
User says to Sky: "Refactor auth to JWT, update docs, and run tests."
- Sky spawns Sky-A (auth refactor), Sky-B (docs), Sky-C (tests)
- Sky tells user: "Three workers on it."
- Sky monitors via
list_workersandcheck_inbox - When Sky-A finishes, Sky tells Sky-C to run tests
- All done → Sky summarizes results to user
Claude Code Teams Comparison¶
| Claude Code | ClawMux |
|---|---|
| Hub-and-spoke messaging | Same — leaders route |
| File-based coordination (JSONL) | WebSocket message broker |
| Task list with states | task_description + list_workers |
| Plan mode approval | Future consideration |
| Context isolation per teammate | Same — separate Claude sessions |
| Single-level hierarchy | Same — no nested workers |