Why Single-Agent Beats Multi-Agent for Structured Extraction
When I started building NEXUS, the AI-powered NEPA comment analysis system, I assumed we'd need a sophisticated multi-agent architecture. Different agents for classification, extraction, validation, and synthesis. It seemed like the "proper" way to build a complex AI system.
I was wrong.
The Multi-Agent Temptation
The multi-agent pattern is seductive. You decompose a complex problem into specialized sub-problems, each handled by an expert agent. It feels clean, modular, and scalable.
But here's what I discovered in production:
1. **Coordination overhead dominates** - The time spent passing context between agents exceeded the time spent on actual processing. 2. **Error propagation compounds** - One agent's uncertainty becomes the next agent's input noise. 3. **Debugging becomes archaeology** - Finding where a classification went wrong in a 5-agent chain is painful.
The Single-Agent Solution
For NEXUS, we implemented ADR-100: a single SimpleProcessor agent with Gemini 2.0 Flash. One prompt, one model call, 9-field structured extraction.
The results: - **Processing time**: 22ms (target was 3s) — 1,364% faster than target - **Cost per comment**: $0.006 (target was $0.03) — 80% under budget - **Accuracy**: Production-ready for federal use
When Does This Apply?
Single-agent works when: - Your output is a structured schema (not open-ended generation) - The task is well-defined with clear boundaries - You can express all requirements in a single, well-crafted prompt - Latency and cost matter
Multi-agent makes sense when: - You genuinely need different tools/capabilities - Tasks have natural handoff points - You're building conversational agents that need to route between domains
The Lesson
Don't reach for complexity first. Start with the simplest architecture that could work, measure it, and add complexity only when the data demands it.
In AI engineering, elegant simplicity beats sophisticated complexity more often than we admit.