A multi-agent system splits work across specialized agents that communicate. Done well, it improves quality on complex tasks; done poorly, it multiplies your token bill and failure modes.
Common topologies
- Supervisor / worker — one router picks which specialist to call. See LangGraph supervisor.
- Hierarchical — supervisors of supervisors, useful for large codebases or research projects.
- Swarm / peer-to-peer — agents hand off to each other with shared state (OpenAI Swarm, now productised in the OpenAI Agents SDK).
- Role-based crews — CrewAI style, with defined roles, goals, and backstories.
Case studies
- Anthropic — How we built our multi-agent research system
- Cognition — Don't build multi-agents (the counter-argument; read both)
Rule of thumb
Start with a single agent + tools. Only split when a single prompt can't hold the required context or when tasks are genuinely parallelizable.