Orchestrator-Subagent is the most flexible multi-agent pattern. Unlike the Supervisor which delegates once, the orchestrator loops: it calls a subagent, receives the result, decides whether to call another agent with the enriched context, and keeps going until it determines the task is done.
The orchestrator's output is a structured JSON action: `{"action": "search", "input": "..."}` or `{"action": "done"}`. Each action triggers a conditional edge to the appropriate subagent. Subagent results are appended to an `intermediate_results` list in state, making prior findings available to subsequent orchestration decisions.
This pattern is ideal for complex research tasks that require combining data from multiple agents: search first to find candidates, then compare them, then generate a personalized recommendation. The orchestrator's ability to adapt its plan mid-execution based on intermediate results is its defining advantage over Plan-and-Execute.