Multi-Agent Coordination
Spawn sub-agents, delegate work, and orchestrate complex tasks across multiple agents.
Multi-Agent Coordination
Reeve supports multi-agent architectures where agents spawn, delegate to, and coordinate with each other. The three-tier model provides a natural hierarchy for complex work.
Three-Tier Architecture
Coordinator (top-level)
└─ Domain Managers (marketing, engineering, ops)
└─ Pipeline Manager (complex orchestration)
└─ Workers (focused task execution)Coordinator
The single top-level agent with allowAgents: ["*"]. It routes incoming requests to the appropriate domain manager and has full visibility across all agents.
Domain Managers
Specialized agents that own a domain (marketing, engineering, support). They:
- Receive tasks from the coordinator or users
- Spawn pipeline-manager for complex multi-step work
- Dispatch workers for focused tasks
- Monitor progress and report back
Pipeline Manager
A special orchestration agent spawned by managers for complex, multi-file, multi-phase work. It:
- Analyzes task scope and identifies independent work tracks
- Spawns parallel workers
- Monitors worker completion
- Verifies results before reporting done
Workers
Focused execution agents. They:
- Receive a single, well-scoped task
- Execute it within their workspace
- Report completion to their spawning agent
- Reset quickly (1h idle timeout)
Spawning Sub-Agents
Agents spawn sub-agents using the sessions_spawn tool:
sessions_spawn({
label: "write-landing-page",
agentId: "frontend-worker",
message: "Create a new landing page at /pages/launch.tsx with hero section, features grid, and CTA. Use the brand colors from BRAND.md.",
runTimeoutSeconds: 600
})Spawn parameters
| Parameter | Type | Description |
|---|---|---|
agentId | string | Which agent to spawn |
label | string | Human-readable label for tracking |
message | string | The task/instructions to send |
runTimeoutSeconds | number | Kill after this many seconds (default varies) |
Monitoring spawned agents
// List active sessions
sessions_list()
// Check specific session history
sessions_history({ sessionId: "sess_abc123" })Parallel Dispatch
For maximum throughput, managers dispatch multiple workers simultaneously:
// Spawn 3 workers in parallel
sessions_spawn({
label: "backend-api",
agentId: "backend-worker",
message: "Add GET /api/products endpoint..."
})
sessions_spawn({
label: "frontend-ui",
agentId: "frontend-worker",
message: "Create ProductList component at..."
})
sessions_spawn({
label: "write-tests",
agentId: "test-worker",
message: "Write integration tests for..."
})Each worker runs independently. The manager polls sessions_list to monitor completion.
Pipeline Manager Pattern
For complex work that spans multiple files or repos, managers spawn the pipeline-manager:
sessions_spawn({
label: "implement-billing",
agentId: "pipeline-manager",
message: `
Implement the billing integration:
1. Backend: Add Stripe webhooks to /api/billing
2. Frontend: Create billing settings page
3. Services: Add credit deduction endpoints
4. Tests: Integration tests for the full flow
Use parallel workers for independent tracks.
`,
runTimeoutSeconds: 900
})The pipeline manager then:
- Reads the task and creates a plan
- Identifies independent work tracks
- Spawns workers for each track with focused instructions
- Monitors completion and verifies results
- Reports back to the spawning manager
Subagent Policies
The allowAgents config controls which agents can be spawned:
// Coordinator — can spawn anything
{ "subagents": { "allowAgents": ["*"] } }
// Manager — can spawn pipeline-manager and self
{ "subagents": { "allowAgents": ["pipeline-manager", "marketing-manager"] } }
// Worker — can only spawn self (for retries)
{ "subagents": { "allowAgents": ["frontend-worker"] } }If an agent tries to spawn an agent not in its allowAgents list, the spawn is blocked. This prevents workers from escalating privileges by spawning coordinators or managers.
Communication Patterns
Direct messaging
Agents can send messages to other agents' sessions:
sessions_send({
target: "marketing-manager",
message: "Task complete: landing page deployed to /pages/launch"
})Announcements
Broadcast to multiple agents:
sessions_announce({
targets: ["marketing-manager", "eng-manager", "ops-manager"],
message: "Billing integration is live. Please update your respective docs."
})Goal-based coordination
For sustained work, use Goals instead of one-off spawns. Goals persist across sessions and provide budget controls, checkpoints, and progress tracking.