
A multi-agent AI system splits work across several specialised AI agents, each with one job, coordinated by an orchestrator through structured handoffs. You need one when a task crosses several domains, needs different models for different steps, or demands parallel processing. Otherwise a single well-designed agent is simpler, cheaper and easier to debug.
Key takeaways
- Single agents break down on cross-domain tasks, high concurrency and context window limits.
- Choose the orchestration pattern deliberately: sequential, concurrent, handoff, or hub-and-spoke versus mesh.
- Pass compact, structured context between agents. Raw conversation history exhausts token budgets.
- Resolve disagreements with confidence weighting, authoritative agents for specific domains, and human escalation.
- Use percentile-based timeouts, circuit breakers at cluster boundaries and per-agent tracing in production.
When do single AI agents fail?
A familiar pattern: an organisation builds one agent, it works well in the demo, then reality arrives. The agent that handled customer enquiries starts inventing answers about billing. The document processor that extracted invoices well chokes on a new form type.
Three failure modes recur.
The scalability wall
A single agent processing one task at a time becomes a bottleneck under volume. For example, a hypothetical logistics business with one agent answering shipment queries may be fine at normal load and slow badly during peak season.
The specialisation trade-off
Precise tool use and flexible reasoning pull in different directions. One prompt and one model rarely optimise for both. Specialised agents with focused instructions and tools usually perform better on their own step.
The context window ceiling
Every model has a finite context window. An agent that must hold billing rules, customer history, product catalogues and compliance rules at once runs out of room, loses context and makes errors.
Rule of thumb: if a task needs expertise in more than two distinct domains, or many concurrent requests, consider multiple agents. If it is sequential and one agent already does it well, adding agents often makes it worse.
What does a real multi-agent architecture look like?
We built Carbonly.ai, our own ESG and emissions reporting product, on a multi-agent document processing pattern. The same pattern applies to supplier invoices, compliance documents and similar high-volume paperwork.
- IntakeClassifies the incoming document
- ValidationChecks format and completeness
- ExtractionPulls structured fields
- EnrichmentAdds reference and master data
- ComplianceApplies regulatory rules
- ReviewScores confidence, flags exceptions
- IntegrationWrites to MYOB, Xero or your ERP
- Intake agent: receives documents, classifies type, extracts metadata. A small, fast model is enough.
- Validation agent: checks completeness, missing fields and anomalies, with prompts per document type.
- Extraction agent: deep extraction with a more capable model, plus OCR and table parsing.
- Enrichment agent: cross-references external data such as ABN lookup, supplier master data and price lists.
- Compliance agent: checks business rules, regulatory requirements and approval thresholds.
- Review agent: scores confidence, flags exceptions and decides on human escalation.
- Integration agent: formats output for MYOB, Xero or an ERP and handles API calls.
Any phase can escalate instead of passing forward. Documents that fail validation, or that the review agent cannot score confidently, go to an exception queue for a person, so errors do not contaminate downstream output. Each agent has one responsibility, a model suited to its task, and structured handoffs.
Which orchestration pattern should you choose?
Microsoft's AI agent design patterns guidance describes several orchestration patterns. Choosing the wrong one is a common mistake.
Sequential orchestration
A linear pipeline where each agent processes the previous agent's output.
- Best for: multistage processes with clear dependencies, transformation pipelines, progressive refinement.
- Avoid when: steps could run in parallel, early failures propagate, or routing depends on intermediate results.
Document processing suits sequential flow because steps depend on each other. You cannot validate what you have not classified.
Concurrent orchestration
Several agents work on the same task at once and results are aggregated.
- Best for: multiple perspectives, ensemble or voting decisions, time-sensitive parallel work.
- Example: a risk review that runs financial, operational and compliance analysis agents in parallel, then combines findings.
Handoff orchestration
Agents assess a task and transfer it to a specialist.
- Best for: unpredictable routing, multi-domain problems, support with escalation paths.
- Warning: Microsoft's guidance recommends keeping group chat style collaboration to three or fewer agents to avoid loops and keep control.
Hub-and-spoke vs mesh
Hub-and-spoke uses a central orchestrator. It is predictable but can bottleneck. Mesh lets agents talk directly. It is more resilient but harder to debug.
Recommendation: start with hub-and-spoke. Move to hybrid patterns only when you have the observability to support them.
How do agents pass context to each other?
The handoff mechanism
A handoff passes control from one agent to another. The receiving agent needs enough state to act correctly:
- State packaging: the sender packages relevant context such as extracted data and confidence.
- Routing decision: the orchestrator or sender picks the next agent.
- Context injection: the receiver's prompt is built from the transferred context.
# Conceptual handoff structure
handoff_payload = {
"source_agent": "validation_agent",
"target_agent": "extraction_agent",
"context": {
"document_type": "invoice",
"confidence": 0.94,
"validated_fields": ["vendor_name", "date", "total"],
"flagged_anomalies": []
},
"instructions": "Extract line items and payment terms"
}
Communication protocols
| Protocol | Purpose | Use case |
|---|---|---|
| MCP (Model Context Protocol) | Tool and context sharing | Agents accessing databases and APIs consistently |
| A2A (Agent2Agent) | Agent-to-agent communication | Workflows across agents from different vendors |
| ACP (Agent Communication Protocol) | Structured message passing | Systems with strict data contracts |
| AG-UI | Agent-user interaction | Human approval touchpoints in the interface |
For most implementations, MCP gives a good balance of standardisation and flexibility.
Context window management
Context accumulated across agents can exhaust token budgets quickly, a risk Microsoft's guidance calls out. Practical fixes:
- Summarise: each agent passes a summary of its work, not raw history.
- Filter: pass only what the next agent needs.
- Structure: JSON payloads are more compact than prose.
How do you resolve conflicting agent outputs?
Agents analysing the same problem will sometimes disagree. You need explicit resolution rules.
Confidence-weighted voting
# Simplified voting mechanism
agent_outputs = [
{"agent": "financial", "recommendation": "approve", "confidence": 0.82},
{"agent": "operational", "recommendation": "review", "confidence": 0.71},
{"agent": "compliance", "recommendation": "approve", "confidence": 0.68}
]
weighted_vote = calculate_weighted_consensus(agent_outputs)
Hierarchical override
Make certain agents authoritative for their domain. If the compliance agent flags a risk, it overrides efficiency recommendations from others.
Human escalation thresholds
When confidence falls below a threshold, or agents disagree beyond a set tolerance on extracted values, route to a person. In document processing, a disagreement rule on key amounts catches the cases most likely to cause costly errors.
How do you handle errors in multi-agent systems?
The cascade problem
When one agent fails, downstream agents that depend on its output fail in unpredictable ways. Design for containment.
Circuit breakers at cluster boundaries
- Cluster AIntake and validation agents
- BreakerChecks cluster health before handoff
- Cluster BExtraction and enrichment agents
- BreakerChecks cluster health before handoff
- Cluster CCompliance, review and integration
Use adaptive triggers that watch success rates, response times and unusual behaviour instead of fixed thresholds alone.
Timeout configuration
A common early mistake is setting timeouts from average response times. LLM latency varies widely, so use 95th percentile response times. Illustrative starting points, to be tuned on your own measurements:
- Simple classification: around 15 seconds
- Complex extraction: around 45 seconds
- Multi-step reasoning: around 90 seconds
Recovery sequencing
- Restore the stateless orchestration layer
- Recover state stores from checkpoints
- Restart agents in dependency order
- Validate restored state before resuming
- Reintroduce load gradually
How do you monitor multi-agent systems in production?
Traditional APM tools will not explain why agents misbehave. You need per-agent tracing that captures each LLM call, tool call and retrieval as nested spans. Platforms such as LangSmith, Langfuse and OpenTelemetry-based tooling provide this, and several can be self-hosted so trace data stays in your environment.
| Metric | Why it matters |
|---|---|
| Per-agent latency (p50, p95, p99) | Finds bottleneck agents |
| Handoff success rate | Detects communication failures |
| Context size per handoff | Warns of token exhaustion |
| Agent confidence distributions | Catches model degradation |
| Error rate by agent | Focuses debugging |
| Human escalation rate | Measures system confidence |
Alert on response times well above baseline, rising handoff failures, escalation rates above threshold and circuit breaker activations.
What practical guidance applies to multi-agent AI?
Start sequential, add complexity later
If one agent already performs a sequential task reliably, splitting it adds coordination overhead that can reduce accuracy. Introduce multiple agents only for genuine parallelism, clear specialisation or volume.
Keep groups small
Following Microsoft's guidance, start with three or fewer collaborating agents. Adding complexity later is easier than removing it.
Tier your models
Multi-agent systems multiply inference calls. Use small, fast models for intake, validation and routing, capable models for extraction and compliance, and lightweight models for formatting. Tiering usually cuts cost materially compared with using the largest model everywhere.
Australian data sovereignty
For sensitive data:
- Use Australian cloud regions, such as Azure OpenAI in Australia East or Amazon Bedrock in Sydney, where the models you need are available
- Check whether specific models are processed in-region or routed elsewhere
- Self-host open-weight models such as Llama, Qwen or Mistral for the most sensitive workloads
See our data sovereignty guide and AI agent governance.
When should you use multi-agent architecture?
Use multi-agent when:
- Tasks span domains that need genuine specialisation
- Parallel processing gives meaningful throughput gains
- Volume exceeds what one agent handles
- Reliability needs redundancy
Stay with one agent when:
- The task is sequential and one agent already performs it reliably
- Domain needs are narrow
- Simple debugging and monitoring matter most
- Volume does not justify coordination overhead
Start small, measure everything, and add complexity only when the data demands it.
How Solve8 can help
Our engineers design and build multi-agent systems that run on your infrastructure in Australia, with human approval before anything reaches a system of record. We will tell you if a single agent is the better choice. See custom AI development, technical guide to LLMs for CTOs, or talk to us.
