Patterns
Pattern: Orchestrator-Workers
Pattern: Orchestrator-Workers
Category: Orchestration Source: Internal usage (CEO focus groups), FOR-0012 Status: Active
When to Use
When a central agent needs to coordinate multiple specialist agents, deciding which ones to invoke, synthesizing their outputs, and driving toward a unified result. Best when the coordinator needs judgment about who to consult and in what order.
How It Works
- An orchestrator agent receives a task or question
- It analyzes the task and determines which specialist workers are relevant
- It invokes each worker (sequentially or in parallel), providing tailored context
- Workers return their outputs to the orchestrator
- The orchestrator synthesizes results, resolves conflicts, and produces a final deliverable
- Shared resources (memory, artifacts, version control) may be used across workers
Example
The CEO focus group command: Oscar (CEO) receives a strategic topic, identifies which specialist roles are relevant (reading their role.md and agent.md), synthesizes each specialist's likely perspective based on their responsibilities, identifies agreements and conflicts, and proposes a unified path forward. The CEO orchestrates — the specialists do the domain thinking.
Tradeoffs
| Pro | Con |
|---|---|
| Specialists stay focused on their domain | Orchestrator is a single point of failure |
| Dynamic — orchestrator decides who to invoke at runtime | Setup complexity: each worker needs clear boundaries |
| Scales by adding more workers without changing the orchestrator | Coordination overhead grows with worker count |
| Enables separation of concerns | Orchestrator needs enough context to route well |
Factory Usage
- CEO focus groups (
departments/executive/ceo-oscaragent.md): Oscar orchestrates cross-team discussions by consulting specialist roles. - CEO decision-making: Oscar gathers specialist input before making strategic calls.
- Production Line assembly: Pablo coordinates across Ada (patterns), Elena (architecture), Clara (tooling) when designing a line.