Advanced11 min
Orchestrator-Worker: Plan, Delegate, Synthesize
The Orchestrator-Worker pattern breaks complex tasks into subtasks, delegates to specialized workers via the Send API, and synthesizes results — ideal for parallel, multi-step work.
Quick Reference
- →Orchestrator plans the work → workers execute in parallel → orchestrator synthesizes results
- →LangGraph Send API dynamically creates worker nodes at runtime based on the plan
- →Workers have their own state and write results to a shared state key via reducers
- →Unlike Router (one hop) or Supervisor (iterative), Orchestrator plans upfront then delegates
- →Best for tasks with clear decomposition: research, analysis, code generation across files
- →Workers can be different agent types — each with specialized tools and system prompts
What Is Orchestrator-Worker?
Orchestrator plans → Send API fans out to workers → reducer collects → orchestrator synthesizes
Definition
The Orchestrator-Worker pattern is a two-phase approach: (1) an orchestrator LLM analyzes the task and creates a plan of subtasks, then (2) worker agents execute each subtask in parallel. The orchestrator collects all results and synthesizes a final output. This is the go-to pattern when work is decomposable into independent parallel subtasks.
| Phase | Actor | Action |
|---|---|---|
| 1. Plan | Orchestrator | Analyze task → break into subtasks with clear inputs |
| 2. Delegate | Send API | Dynamically spawn one worker per subtask |
| 3. Execute | Workers | Each worker completes its subtask independently |
| 4. Collect | Reducer | Worker results aggregate into shared state |
| 5. Synthesize | Orchestrator | Combine all results into final output |