Reeve
Agent Management

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

ParameterTypeDescription
agentIdstringWhich agent to spawn
labelstringHuman-readable label for tracking
messagestringThe task/instructions to send
runTimeoutSecondsnumberKill 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:

  1. Reads the task and creates a plan
  2. Identifies independent work tracks
  3. Spawns workers for each track with focused instructions
  4. Monitors completion and verifies results
  5. 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.

On this page