The single-agent vs multi-agent decision is one of the most consequential architectural choices in AI system design. A single agent that handles everything is simpler to build but harder to make reliable. Multiple specialised agents are more complex to coordinate but dramatically more reliable in their individual domains. The decision is not about elegance — it is about accuracy and maintainability.
When to Use Multiple Agents
Use multiple agents when: the workflow spans clearly separable domains (admissions, billing, communication), each domain requires different tools and data, a single agent would need to handle 10+ distinct intent types, domain-specific accuracy matters more than architectural simplicity, or different domains have different security requirements. Our testing across 12+ agent domains shows: specialised agents achieve 91-96% accuracy on their specific domain. A single general-purpose agent handling all domains achieves 72% accuracy. The gap is dramatic.
The Orchestrator Pattern
The orchestrator is the central coordinator that routes requests to the appropriate agent, manages handoffs between agents, validates outputs before passing them downstream, and handles cross-agent workflows. The orchestrator should be lightweight — it routes and validates, it does not reason. Each agent is responsible for reasoning within its domain. The orchestrator is responsible for ensuring agents work together.
Note
The orchestrator should be a simple router, not a super-agent. If your orchestrator is making complex decisions, you have a single-agent architecture with extra steps.
Agent Communication
Agents communicate through structured interfaces: each agent exposes a typed input schema and a typed output schema. The orchestrator validates that one agent's output matches the next agent's input schema. This typing prevents the most common multi-agent failure: one agent producing output that the next agent cannot parse. Communication can be synchronous (agent A calls agent B and waits) or asynchronous (agent A publishes an event, agent B subscribes). Use synchronous for user-facing workflows (latency matters). Use asynchronous for background workflows (throughput matters).
Failure Modes in Multi-Agent Systems
Multi-agent systems have unique failure modes: cascading failures (one agent's error propagates to all downstream agents), coordination deadlocks (two agents waiting for each other), state divergence (agents have inconsistent views of the world), and error accumulation (small errors compound across agents). Mitigate these with: idempotent agent operations (re-running an agent produces the same result), circuit breakers (stop calling an agent after repeated failures), shared state (a single source of truth that all agents read from), and comprehensive logging (trace requests across all agents).
Conclusion
Multi-agent systems are more complex to build but more reliable in production. The key is specialisation: each agent does one thing well, the orchestrator routes and validates, and the interfaces are typed and validated. Start with a single agent, and split when the accuracy gap justifies the coordination complexity.
Key Takeaways
- Specialised agents achieve 91-96% accuracy vs 72% for a general-purpose agent
- The orchestrator should route and validate — not make complex decisions
- Typed interfaces between agents prevent the most common parsing failures
- Unique failure modes: cascading failures, deadlocks, state divergence, error accumulation
- Start with one agent, split when accuracy gap justifies coordination complexity