The Real Bottleneck in Multi Agent Systems Is Not Intelligence, It Is Coordination
Hatched by Tom Haus
Sep 06, 2026
12 min read
0 views
93%
What happens when a hundred capable agents are given the same objective but no shared way to remember, communicate, or recover from mistakes?
The answer is not collective intelligence. It is collective confusion.
This is the uncomfortable lesson hidden inside two apparently different fields. The architecture patterns that make large software systems dependable, including caching, sharding, load balancing, replication, fault tolerance, and indexing, are not merely infrastructure techniques. They are solutions to a deeper problem: how can many independent actors behave as one reliable system?
That question becomes urgent when autonomous AI agents begin to plan, call tools, delegate tasks, and react to changing information. An agent may be individually impressive and still be a liability inside a larger network. The same is true of microservices, databases, and human teams. Capability does not automatically compose.
The central thesis is this: the future of multi agent systems will be determined less by the intelligence of individual agents than by the quality of the system’s coordination architecture. Event driven design provides the nervous system, while classic distributed systems principles provide the disciplines that keep that nervous system from becoming noise.
Intelligence Does Not Scale the Way Hardware Scales
Adding more machines to a software system does not guarantee better performance. It can create contention, duplicated work, inconsistent data, and more complicated failure modes. Adding more agents creates the same problems, but with an extra layer of uncertainty: agents interpret instructions, choose actions, and may pursue locally reasonable goals that conflict globally.
Imagine a research organization with five agents. One searches academic papers, another extracts data, a third challenges assumptions, a fourth drafts a report, and a fifth verifies citations. If each agent waits for direct instructions from a central coordinator, the coordinator becomes a bottleneck. It must know what every agent is doing, decide what should happen next, and reconcile every result.
Now imagine one hundred agents. The central coordinator is no longer a manager. It is a traffic jam.
A different design lets agents publish meaningful events: a data source was discovered, a claim was contradicted, a document passed validation, or a task exceeded its time budget. Other agents subscribe to the events relevant to their responsibilities. The system becomes less like a chain of commands and more like an ecosystem responding to changes in shared reality.
This is the promise of event driven coordination. It reduces the need for every participant to know every other participant. Agents can remain specialized, loosely connected, and independently replaceable. But loose coupling is not the same as loose thinking. Without strong contracts and boundaries, the system simply distributes confusion across more components.
A collection of autonomous agents becomes a system only when its interactions are more reliable than its individual intentions.
That distinction is easy to miss. Event streams can make a system appear beautifully dynamic while hiding serious problems. An event may be delivered twice. It may arrive late. It may be processed out of order. Two agents may respond to the same event and produce incompatible updates. An agent may fail after performing an external action but before recording that it succeeded.
These are not exotic edge cases. They are the normal conditions of distributed systems.
The Seven Questions Every Agent Architecture Must Answer
Classic system design offers a useful reframing. Instead of asking whether an agent is smart, ask whether the surrounding system can answer seven operational questions.
1. What should be remembered?
Caching is often described as a performance optimization, but in an agent system it also becomes a memory policy. Agents repeatedly need context: previous decisions, retrieved documents, tool results, user preferences, and the current state of a task. If every agent reconstructs this context from scratch, the system wastes resources and may produce inconsistent interpretations.
A shared cache can preserve expensive intermediate results, such as a document embedding or a validated database query. Yet caching introduces a crucial question: when does remembered information become unsafe? A stale price, permission, or medical fact is not merely inefficient. It is wrong.
Agent memory therefore needs explicit freshness rules. Some facts can live for hours. Some must be checked for every request. The architectural lesson is that memory should have a declared lifetime, owner, and invalidation trigger.
2. How is work divided?
Database sharding distributes records across partitions. Agent systems need an analogous form of sharding for responsibility. One group might handle customer support, another compliance, and another document retrieval. Within a task, work can be partitioned by data domain, workflow stage, or geographic region.
The danger is creating a shard that is too broad or too narrow. If every agent can modify the same conceptual state, conflicts multiply. If responsibilities are split too finely, agents spend more time coordinating than accomplishing work.
A practical principle is to assign each important piece of state a clear authority boundary. An agent may read many domains, but only one service or role should be the final authority for a particular decision. This resembles database ownership, but with semantic boundaries instead of only physical partitions.
3. Who receives which signal?
Load balancing distributes requests among available servers. In an event driven agent system, routing determines which agents should react to which events. A new customer complaint should not wake every agent in the organization. It should reach the agents whose responsibilities make the event relevant.
Routing can be based on event type, customer segment, task status, urgency, or required capability. Poor routing creates an event storm: too many agents react, duplicate one another, and consume resources while producing little value.
The best routing design treats attention as a scarce resource. An agent should receive a signal only if it can either change the state of the task or improve the confidence of a decision.
4. What happens when knowledge changes?
Replication improves availability by placing copies of data in multiple locations. In an agent network, replication can mean distributing task state, conversation history, policies, or learned summaries across multiple components.
But replicated information creates the problem of consistency. Suppose one agent approves a refund while another still believes the customer is ineligible. If both act on their local copies, the organization may issue two refunds or send contradictory messages.
Not every fact requires immediate consistency. A progress indicator can tolerate delay. A financial authorization may not. The system must distinguish between information that can converge eventually and information that requires a single current truth before an action proceeds.
5. How does the system recover?
Fault tolerance is especially important for autonomous systems because failure does not always look like an outage. An agent can be available yet produce an incomplete answer, misunderstand a schema, call the wrong tool, or confidently repeat an outdated conclusion.
Recovery therefore needs more than retries. A retry can be dangerous if the original action succeeded but the confirmation was lost. A payment, message, or database write may happen twice.
Reliable systems use idempotency keys, checkpoints, compensating actions, and explicit status transitions. An agent that sends an email should be able to recognize that the email was already sent. An agent that reserves inventory should be able to release it if the larger workflow fails.
The deeper idea is that an autonomous action needs a recovery story before it needs permission to execute.
6. How does the system remain available?
High availability is not simply the absence of downtime. It is the ability to continue providing useful behavior while individual components are unavailable. If one specialist agent fails, another may provide a degraded answer, place the task in a queue, or ask a human for review.
This requires graceful degradation. A travel assistant might still suggest destinations if its pricing tool is unavailable, but it should not pretend to have current prices. A compliance workflow might continue gathering evidence while pausing the final approval.
Availability must therefore be defined in terms of promises. What can the system still do, and what must it refuse to do, when a dependency fails?
7. Can the system be observed and controlled?
Indexing makes large data collections searchable. In agent systems, an equivalent capability is the indexing of events, decisions, tool calls, and state transitions. Without it, debugging becomes archaeology.
A production system should make it possible to answer: Which event triggered this action? Which version of the policy did the agent use? What evidence did it inspect? Which agent changed the task status? Was the result later corrected?
The point is not to record everything indiscriminately. It is to create a causal trail. Event identifiers, correlation identifiers, timestamps, agent versions, and decision summaries turn an opaque chain of actions into a reconstructable process.
The Event Is Not a Message, It Is a Commitment
Many teams adopt event driven design as a communication pattern and stop there. They create topics, publish messages, and assume that coordination has been solved. But an event is more valuable than a message because it represents a claim about reality.
A message says, “Please do this.” An event says, “This happened.”
That distinction changes how systems should be designed. Events should be durable, attributable, and meaningful enough for multiple consumers to interpret without requiring a private conversation with the producer. A useful event might say that a claim was verified against three sources, a document was rejected for missing consent, or a task moved from investigation to review.
Vague events such as “agent finished” are difficult to reuse. They force consumers to inspect hidden context or call the producer for clarification. Strong events expose the state change, the relevant evidence, and the conditions under which the event is valid.
Event contracts also create a form of organizational memory. An agent can disappear, be upgraded, or be replaced, while the history of what happened remains available to the rest of the system. This is critical because autonomous systems must be able to learn from prior decisions without relying on the continued existence of the agent that made them.
There is a subtle tradeoff here. More events create more traceability, but also more cognitive and computational load. The goal is not maximum activity. It is high signal density.
A good event answers three questions:
- What changed?
- Why does the change matter?
- Who or what should be allowed to respond?
If it cannot answer those questions, it may be telemetry rather than coordination.
The Most Important Boundary Is Between Decision and Action
The combination of distributed systems and autonomous agents suggests a particularly useful architectural distinction: separate the production of a recommendation from the execution of an irreversible action.
An agent may recommend canceling an order, deleting a record, escalating a customer, or publishing a legal statement. Another component should evaluate whether the recommendation satisfies policy, authority, and consistency requirements. Only then should the action be executed.
This is not bureaucracy for its own sake. It is the agent equivalent of separating application logic from the systems that enforce permissions, transactions, and durability.
Consider an automated fraud workflow. One agent detects an unusual pattern. A second gathers account history. A third estimates the probability of fraud. A policy service determines whether the evidence meets the threshold for freezing the account. The final action is recorded as a transaction with an audit trail.
The agents provide judgment and investigation. The surrounding architecture provides limits.
This pattern also reduces the cost of disagreement. Agents can disagree during analysis without corrupting the system’s authoritative state. Their competing hypotheses become events or proposed transitions. The state changes only when the appropriate authority accepts one of them.
Autonomy should increase the number of useful proposals, not eliminate the boundaries that make proposals safe.
That principle is broadly applicable. It allows organizations to add more agents without granting every agent the power to alter everything. It also creates a path to human oversight that is selective rather than constant. Humans can review high risk transitions instead of manually supervising every low risk step.
A Practical Design Method: Map the System as a Flow of State Changes
When designing a multi agent workflow, begin without discussing models, prompts, or vendors. Draw the task as a sequence of state changes.
For a technical support case, the states might be: received, classified, diagnosed, proposed, approved, resolved, and audited. Then identify the event that moves the case from one state to the next. Finally, assign the authority that may approve each transition.
This produces a simple matrix:
| State transition | Triggering event | Responsible capability | Recovery path |
|---|---|---|---|
| Received to classified | Case created | Triage agent | Queue for manual classification |
| Classified to diagnosed | Category confirmed | Diagnostic agents | Request missing evidence |
| Diagnosed to proposed | Likely cause identified | Resolution agent | Seek second opinion |
| Proposed to approved | Recommendation submitted | Policy service or human | Reject with reason |
| Approved to resolved | Fix executed | Tool operating agent | Compensate or reopen |
The exact labels will vary, but the method exposes hidden assumptions. It reveals where data is shared, where an action is irreversible, where consistency matters, and where failure can leave the task stranded.
Next, classify each dependency according to four properties:
- Latency: Must the response happen immediately, or can it wait?
- Consistency: Must every component see the same state now, or can information converge?
- Durability: Can the result be reconstructed, or must it be permanently recorded?
- Reversibility: If the action is wrong, can the system undo it safely?
These four dimensions are more useful than asking whether the system is simply scalable. A system can process millions of events and still be unsafe because it cannot distinguish a reversible suggestion from an irreversible commitment.
Key Takeaways
- Design coordination before adding agents. Define responsibilities, event contracts, and authority boundaries before optimizing prompts or increasing the agent count.
- Treat attention as a finite resource. Route events only to agents that can materially change a task or increase decision confidence.
- Give every autonomous action a recovery story. Use idempotency, checkpoints, compensating actions, and explicit status transitions for operations that can create real world consequences.
- Separate recommendations from commitments. Let agents generate hypotheses and proposals, while policy services, transactions, or designated authorities control irreversible state changes.
- Build a causal record. Index events, evidence, versions, and decisions so that every important action can be explained, replayed, or corrected.
The temptation in AI is to measure progress by asking how capable one agent has become. But the more important question is what happens when capability becomes abundant.
When agents are scarce, intelligence is the bottleneck. When agents are plentiful, coordination is. At that point, the winning architecture will not be the one with the most autonomous actors or the most elaborate prompts. It will be the one that turns independent judgments into dependable collective behavior.
A mature multi agent system should feel less like a crowd of clever assistants and more like a well designed city. Individuals can act independently because roads, addresses, rules, records, emergency services, and shared infrastructure make independence safe.
The future of artificial intelligence may therefore depend on an old engineering insight: reliability is not produced by removing failure or disagreement. It is produced by designing a system that knows how to contain, interpret, and recover from them.
Sources
Hatch New Ideas with Glasp AI 🐣
Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)
Start Hatching 🐣