//02 Agents and orchestration · Series: The Token Economy
Building multi-agent systems that don't collapse
Patterns and anti-patterns from shipping coordinator–worker agent loops in production.
Why most multi-agent systems fail
The same way most distributed systems fail: unbounded fan-out, no clear contract between actors, and a coordinator that quietly becomes a single point of failure.
A working contract
Every agent in the system needs three things written down:
- A goal it owns, expressed as a single sentence.
- An interface, the tools it can call and the schema of what it returns.
- A budget, tokens, time, and recursion depth.
Without all three, you don’t have agents. You have very expensive while-loops.
The coordinator pattern
A thin coordinator that only routes and never does the work itself tends to outlive every “smart” orchestrator we’ve tried.
async function coordinate(task: Task) {
const plan = await planner.run(task);
for (const step of plan.steps) {
await dispatch(step); // workers do the work
}
}
Things we keep relearning
- Determinism at the edges, fuzziness in the middle.
- Logs are the product. If you can’t replay a session, you can’t debug it.
- Humans should be a tool the agent can call, not a fallback hidden behind an alert.
Closing
Multi-agent systems don’t earn their keep by being clever. They earn it by being legible.