Steven's Knowledge

Multi-Agent Systems

Multiple cooperating agents — sometimes a real win, often premature complexity

Multi-agent systems split a task across several specialized agents that coordinate with each other. They can be powerful, but they're also where teams most often add complexity that didn't pay for itself.

When Multi-Agent Helps

  • The task has clearly separable sub-tasks. A research agent, a writer agent, an editor agent each have meaningfully different jobs.
  • You want isolated context. Spinning up a sub-agent gives it a fresh window for a focused task without polluting the main agent's context.
  • You need parallelism. Independent sub-tasks can run concurrently for latency wins.
  • You want different models per role. A reasoning model for planning, a fast model for execution, an embedding model for retrieval.

When It's Premature

  • One model could do it just fine with better prompting or tool use.
  • The "agents" are really just functions dressed up — you wanted a workflow, not a system.
  • Coordination cost dominates. Token spend on agents talking to each other exceeds the work being done.

If a single agent with the same tools and prompt would also work, prefer it. Multi-agent earns its place when isolation, parallelism, or specialization actually matter.

Common Patterns

  • Orchestrator + workers — a coordinator decomposes work and dispatches it to specialized workers. The most common pattern.
  • Hierarchical — an orchestrator coordinates other orchestrators. Useful for genuinely complex tasks.
  • Debate / critique — multiple agents argue or critique each other's outputs to improve quality.
  • Pipeline — agents arranged in a fixed sequence, each handing off to the next.

The orchestrator + workers pattern covers most real cases.

Communication

Agents talk through some message format. Options:

  • Free-form text — flexible but lossy.
  • Structured messages — JSON with typed fields. Easier to debug.
  • Shared scratchpad / memory — a shared workspace agents read and write.

Shared scratchpads are powerful but require care — race conditions and stale reads exist in agent systems too.

Failure Modes

  • Cascading errors — agent A's small mistake becomes agent B's bigger mistake.
  • Confused authority — when two agents disagree, who wins?
  • Coordination loops — agents handing work back and forth without progress.
  • Cost explosions — every coordination message is more tokens.

Hard limits — turn caps, cost caps, no-progress detection — matter even more than in single-agent systems.

A Pragmatic Default

Start with one agent and a focused tool set. Add a second agent only when you can name the specific reason it's better than just adding another tool to the first agent. That filter catches most premature multi-agent designs.

On this page