Orchestration and choreography are two ways to coordinate multiple agents. In orchestration, a central controller directs the work — it decides which agent runs, in what order, and what each receives. In choreography, there is no conductor: each agent reacts to events or messages and decides its own next move, so coordinated behavior emerges from local decisions rather than a central plan.
Why this distinction matters
Once a task involves more than one agent, the system needs a coordination model, and the choice shapes how it behaves under load and under failure. The decision is not about which agents exist but about where the logic that coordinates them lives — concentrated in one place, or distributed across the participants. That choice determines how easy the system is to observe, change, and recover.
The trade-off is between control and coupling. A central coordinator is a single place to see the whole run, enforce ordering, and intervene, but it can become a bottleneck and a single point of failure, and it must know about every participant. A decentralized model removes that bottleneck and lets agents be added or changed independently, but the end-to-end flow is no longer written down anywhere — it is implied by how each agent reacts, which makes the overall behavior harder to trace and reason about.
How they work
The two models differ in where decisions are made:
- Orchestration — a coordinator holds the control flow. It invokes each agent, passes inputs and collects outputs, decides the sequence, and handles errors centrally. The supervisor and router multi-agent patterns are orchestration.
- Choreography — there is no central control flow. Each agent observes events or messages and acts on its own rules, passing control directly to peers. A swarm in which agents hand off among themselves is choreography.
The practical difference shows up in change and observation. Adding a step to an orchestrated system means editing the coordinator; adding one to a choreographed system means introducing an agent that reacts to the right events. Seeing what a run did is straightforward when one component drove it and diffuse when the behavior was distributed across many.
In practice
Neither model removes the need for the run to be recoverable and visible, and that need is sharper for choreography, where no single component holds the whole picture. A durable, observable runtime persists each agent’s steps and the control transfers between them server-side, so the end-to-end flow can be reconstructed as a trace and an interrupted run resumes from the last completed step regardless of which model coordinates it. Orchestration is the centralized form of orchestration; both arrange the agents of a multi-agent system and use handoffs to move control. For the available strategies, see multi-agent strategies.