Preview — full styling will appear after the next deploy completes.

agentic-ai-patterns

Orchestrator-Subagent

Iterative multi-agent orchestration

An orchestrator LLM dynamically decides which subagent to invoke, what input to pass it, and whether to call more agents — building context across multiple rounds until the task is complete.

flowchart TD
    S([__start__]) --> O[orchestrator]
    O -->|search| A[search]
    O -->|compare| B[compare]
    O -->|recommend| C[recommend]
    A --> O
    B --> O
    C --> O
    O -->|done| E([__end__])

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.