Guide

Multi-Agent AI Systems: When and How to Use Them

A practical guide to multi-agent AI—when they make sense, how they work, and lessons from building them.

Connor L
Connor L8 min

Multi-agent AI systems are one of the most powerful patterns for complex tasks—but they're also one of the most over-applied. This guide covers when multi-agent architectures make sense, how to implement them, and lessons learned from building them in production.


What are multi-agent systems?

A multi-agent system uses multiple AI "agents" that each have specialised roles, tools, and responsibilities. Instead of one monolithic prompt trying to do everything, you decompose the problem into discrete steps handled by purpose-built agents.

Each agent typically has its own system prompt defining its role, access to specific tools (APIs, databases, search), and a focused objective. An orchestrator coordinates the agents—routing tasks, managing state, and combining outputs.

Key components:

  • Agents — Specialised LLM instances with defined roles and tool access.
  • Orchestrator — Coordinates agent execution, manages state, routes information.
  • Shared state — Context and intermediate results passed between agents.
  • Tools — APIs, databases, search, code execution that agents can invoke.

Single agent vs multi-agent: when to use each

The default should be a single agent. Multi-agent systems add complexity—more prompts to maintain, more failure modes, higher costs, and harder debugging. Only reach for multi-agent when single-agent approaches hit real limitations.

Use a single agent when:

  • The task has clear, linear steps.
  • One persona/expertise is sufficient.
  • You can fit necessary context in one prompt.
  • Simple tool use (search, calculate, lookup).
  • Latency matters more than thoroughness.

Examples: Customer support Q&A, document summarisation, code explanation, simple data lookups.

Use multi-agent when:

  • Different steps require genuinely different expertise or reasoning styles.
  • You need adversarial validation (one agent checks another's work).
  • Parallel processing would significantly speed up the task.
  • The task involves research → analysis → synthesis as distinct phases.
  • You want to isolate failures—one agent failing shouldn't crash everything.

Examples: Complex research reports, code review with multiple perspectives, financial analysis with validation, multi-step planning with execution.


Case study: DFCRC research system

We built a multi-agent system for the Digital Finance Cooperative Research Centre to analyse financial data and generate research reports. The system needed to integrate diverse data sources, apply domain expertise, and produce auditable outputs.

Why multi-agent? A single prompt couldn't handle the breadth: searching documents, querying databases, applying financial reasoning, and validating conclusions required different tools and reasoning patterns. We also needed validation—having one agent check another's analysis caught errors that single-pass approaches missed.

Agent roles

  • Research Agent — Searches documents, retrieves relevant context, summarises findings.
  • Analysis Agent — Applies financial reasoning, identifies patterns, generates insights.
  • Validation Agent — Checks claims against sources, flags inconsistencies, verifies calculations.
  • Synthesis Agent — Combines validated insights into coherent reports with citations.

The orchestrator routed tasks sequentially (research → analysis → validation → synthesis), with the validation agent able to send work back for revision. This created natural checkpoints and audit trails.


Implementation patterns

There are several common patterns for structuring multi-agent systems. Choose based on your task.

Supervisor pattern

A central supervisor agent decides which worker agent to invoke next. Good for tasks where the path isn't predetermined—the supervisor adapts based on intermediate results.

  • Pros: Flexible, handles branching logic, can recover from failures.
  • Cons: Supervisor becomes a bottleneck, harder to parallelise.

Pipeline pattern

Agents execute in a fixed sequence: Agent A → Agent B → Agent C. Each agent transforms the output of the previous. Simple and predictable.

  • Pros: Easy to debug, clear data flow, straightforward to implement.
  • Cons: Rigid, can't adapt to edge cases mid-flow.

Parallel pattern

Multiple agents work simultaneously on different aspects, then results are merged. Great for tasks that decompose into independent subtasks.

  • Pros: Fast, scales well, isolates failures.
  • Cons: Merging results can be tricky, harder to maintain coherence.

Debate pattern

Two or more agents take opposing perspectives and argue. Useful for decisions requiring balanced consideration of trade-offs.

  • Pros: Surfaces counterarguments, reduces bias, improves decision quality.
  • Cons: Expensive (multiple full reasoning passes), can be slow.

Lessons learned

After building several multi-agent systems, here's what we've learned:

1. Start with a single agent, then split

Build the single-agent version first. Run it on real examples. Only split into multiple agents when you can point to specific failures that decomposition would solve. Premature multi-agent design wastes time.

2. Evaluate each agent independently

Don't just evaluate the final output. Build test cases for each agent's specific task. If the research agent can't find relevant documents, no amount of downstream processing will save you.

3. State management is critical

Define exactly what state passes between agents. Keep it minimal and structured. Unstructured "context blobs" lead to confusion and errors. Use schemas.

4. Watch the costs

Multi-agent systems multiply token usage. A 4-agent pipeline might cost 4-10x a single agent. Profile costs early. Consider caching intermediate results, using smaller models for simpler agents, and short-circuiting when possible.

5. Observability is non-negotiable

Log every agent invocation: inputs, outputs, latency, tokens, tool calls. When something goes wrong (it will), you need to trace exactly what happened. Tools like LangSmith, Phoenix, or custom logging are essential.

6. Handle failures gracefully

What happens when one agent fails? Have fallbacks: retry with different prompts, use a simpler model, return partial results, or escalate to human review. Don't let one failure cascade into complete system failure.


Getting started checklist

If you're considering a multi-agent system:

  • Can you articulate why single-agent won't work?
  • Have you defined clear, distinct roles for each agent?
  • Is the state schema between agents well-defined?
  • Do you have evaluation criteria for each agent?
  • Have you estimated costs and latency?
  • Is observability set up from day one?
  • Do you have a fallback strategy for failures?

Tools and frameworks

We typically use LangGraph for complex orchestration—it handles state management, conditional routing, and cycles well. For simpler pipelines, LangChain or even plain Python with structured prompts works fine.

Other options worth considering:

  • CrewAI — Good for role-based agent teams with built-in delegation.
  • AutoGen — Microsoft's framework for conversational agents.
  • Custom — Sometimes the simplest approach is just functions calling LLMs with good logging.

Conclusion

Multi-agent systems are powerful when applied to the right problems—complex tasks that benefit from specialised reasoning, validation, or parallelisation. But they come with real costs: complexity, latency, and dollars.

Start simple. Split when you have evidence it helps. Evaluate each piece. Instrument everything. With that approach, multi-agent architectures can handle problems that single agents can't touch.

— The Kali Software team

← All posts
Kali Software Pty Ltd.
ACN 656 408 678
333 George St, Sydney NSW 2000