Home · Writing · Architecture

Anatomy of a Production Multi-Agent System

TLDR

  1. The demo takes a weekend. The platform takes a year. Here are the six layers that actually exist inside a multi-agent system running in a regulated bank, and why every one of them is load-bearing.
  2. Every multi-agent architecture diagram I see on LinkedIn has the same shape: a router at the top, three or four agents in boxes, some arrows to "tools" and a cylinder labelled "vector DB".
  3. Orchestration is where people spend 80% of their design energy and it deserves maybe 30%.
  4. Explicit handoffs with typed contracts. When the triage agent hands work to the resolution agent, that handoff is a schema-validated message, not a blob of prose.
  5. A supervisor that can say no. Every orchestration layer needs a component with the authority to halt a run: budget exceeded, loop detected, confidence below threshold, tool error rate spiking.
Figure 1Intent and case state to append-only audit spineCausal and control schematic
Intent and case state to append-only audit spine9 declared states connected by 9 authored relations. The figure supports the section The system as two interlocking planes. L0L1L2L3L4 01
Intent and case state
02
Orchestrator
03
Specialist agents
04
Proposed action
05
Policy gateway
06
Tool registry
07
Typed tool adapter
08
System of record
09
Append-only audit spine
Boundaries: DP[Decision plane · EP[Execution plane
Reading. The authored topology makes 9 declared relations across 9 states inspectable. Read it as the control structure for “The system as two interlocking planes”, not as measured performance. Schematic derived from the paper's authored topology; no measured quantities.
On this page

Every multi-agent architecture diagram I see on LinkedIn has the same shape: a router at the top, three or four agents in boxes, some arrows to "tools" and a cylinder labelled "vector DB". That diagram describes the demo. It does not describe anything that has survived contact with a global financial institution's risk function, an operational resilience review, or six months of real traffic.

I have spent the last several years building multi-agent platforms in exactly that environment. What follows is the architecture that actually ships: the layers that exist not because a framework suggested them, but because something broke, an auditor asked a question we couldn't answer, or a regulator's expectations made them non-negotiable.

Map, not take: this is a description of what a production system looks like when it has to survive scrutiny. Your topology will differ. The layers won't.

Layer 1: orchestration: the part everyone over-designs and under-specifies

Orchestration is where people spend 80% of their design energy and it deserves maybe 30%. The important decisions are not "which framework" but three structural ones:

Deterministic skeleton, probabilistic muscles. In a regulated environment, the top-level flow should be a state machine you can draw on a whiteboard and explain to a model risk reviewer. Agents make decisions within states; they do not invent the state graph at runtime. Fully dynamic agent-decides-everything orchestration is a research pattern, not a production pattern, not because it can't work, but because you cannot bound its behaviour, and bounding behaviour is the entire game in banking.

Explicit handoffs with typed contracts. When the triage agent hands work to the resolution agent, that handoff is a schema-validated message, not a blob of prose. Prose handoffs are where multi-agent systems silently degrade: agent A summarises badly, agent B works from the bad summary, and nobody notices until the output is wrong in a way no single agent caused.

A supervisor that can say no. Every orchestration layer needs a component with the authority to halt a run: budget exceeded, loop detected, confidence below threshold, tool error rate spiking. A healthy supervisor will terminate ordinary production runs, not only pathological test cases. That is the point.

Layer 2: the LLM gateway: the highest-leverage shared component

If you take one thing from this article: put a gateway between every agent and every model, on day one.

The gateway is where you get, in one place:

  • Model routing and abstraction. Agents request capabilities ("reasoning-heavy", "fast-classification"), not model names. When a vendor deprecates a model or your procurement team renegotiates, you change routing config, not forty agent definitions.
  • Cost and rate governance. Per-agent, per-use-case and per-tenant token budgets, enforced centrally. Cost attribution should expose background jobs and repeated context that disappear inside a shared API key; measure the distribution before setting budgets.
  • Centralised guardrails. PII redaction, prompt-injection screening and output filtering live in the gateway, not in each agent. Per-agent implementations will otherwise diverge as teams and release cadences differ.
  • Governed evidence capture. Record the minimum metadata needed to attribute and reconstruct a material path: model and prompt-template versions, retrieved-source references, policy decisions, tool outcomes and human actions. Store prompt or completion content only when an approved purpose, access model and retention rule require it; protected content should not become general platform telemetry.
  • Failover. Primary model degraded? Route to secondary with an explicit quality flag on the response so downstream consumers know the answer came from the fallback path.

The gateway is boring infrastructure. It is also what makes a model upgrade a controlled routing change rather than a rewrite across every agent.

Layer 3: tool registry: capability is a governed asset

An agent's tools define its blast radius. In a regulated environment, "what can this agent actually do" is a question you will be asked formally, in writing, by people with the power to shut you down. You need to answer it from a system of record, not from reading prompt files.

A production tool registry treats every tool as a governed asset with:

  • A schema and a semantic contract: not just parameter types, but preconditions, side effects, and idempotency guarantees. Agents retry. A non-idempotent tool that an agent retries is an incident waiting to happen.
  • A risk tier. Read-only lookup tools are tier 1. Tools that mutate customer state are tier 3 and require human approval (Layer 5) or hard eligibility rules before invocation.
  • Per-agent entitlements. The fraud triage agent cannot see, let alone call, the payments-release tool. Least privilege applies to agents exactly as it applies to humans, and for the same reasons.
  • Versioning. Tools change. Pin agents to tool versions and manage migrations so an upstream API change cannot silently alter behaviour.

The registry also gives you something subtler: an inventory. When an auditor asks “enumerate every action AI systems can take against customer accounts,” the answer should be a query, not a trawl through prompt files.

Layer 4: memory, knowledge, and context: three different problems

Teams conflate these constantly. They have different consistency requirements, different lifecycles, and different failure modes.

Working memory is the structured operational state of a single run: workflow status, validated intermediate results, tool outcomes, evidence references and pending decisions. It is not the model's hidden chain-of-thought or an instruction to persist an unrestricted scratchpad. Externalise only the state needed to pause, resume, inspect and safely replay the workflow, keyed by run ID and governed by its data class. Reconstruction should rely on recorded inputs, decisions and outcomes rather than treating private model reasoning as evidence.

Knowledge is the curated corpus agents retrieve from: policy documents, product terms, procedures. The retrieval pipeline matters less than the corpus governance around it. In a bank, retrieving a superseded policy document isn't a quality bug, it's a compliance event. Every knowledge item carries an owner, an effective date, and a review cycle, and the retrieval layer filters on validity as of now. This is unglamorous data management, and it determines your answer quality more than any embedding model choice.

Long-term memory (persisting things across sessions about customers or cases) deserves the most suspicion. It creates data-protection obligations (what was remembered, on what basis, can the customer see it and request correction or deletion?) and it compounds errors: a wrong “fact” memorised in March poisons every interaction after it. Ship long-term memory narrow and late, with explicit provenance on every stored item.

Layer 5: human-in-the-loop: designed as a workflow, not an apology

Most HITL implementations are a Slack message and a prayer. In production, human oversight is a first-class workflow system with queues, SLAs, and skills-based routing, because the humans are part of the system, and an unmodelled component is an unreliable one.

Three design rules matter:

Route by risk, not by confidence alone. Model confidence is a poor proxy for consequence. A 95%-confident action that moves money needs review; a 70%-confident answer to an internal FAQ does not. Approval routing keys on the risk tier of the action, combined with confidence as a secondary signal.

Make the review real. If reviewers approve nearly everything in seconds, the process is a rubber stamp that appears in the audit trail as evidence against effective oversight. Monitor agreement, challenge and review duration, and seed controlled known-bad cases to verify that the review function remains active.

Feed decisions back. Every human override is a labelled datapoint. If your HITL layer isn't feeding your eval sets and your improvement backlog, you're paying for oversight and throwing away the training signal.

Layer 6: audit and observability: the layer you build for the reader you'll never meet

Material steps emit minimised events into an append-only evidence spine, correlated by run ID. A typical record identifies the event type, component and policy versions, source references, tool or handoff result, human decision and guardrail outcome. Prompt or response content is retained only when the institution has approved the purpose, protection and applicable schedule; otherwise the record uses governed references and non-sensitive metadata. Each evidence class follows its own legal, regulatory and records obligation rather than a casual application-log default.

The design test is narrower and more defensible: for the required review period, can retained evidence reconstruct the material basis and execution path of a specific action: the model and prompt-template versions, decisive source records, policy and tool outcomes, and any human approval? The answer should not depend on hidden chain-of-thought or on retaining every conversational payload.

Observability sits on top of the same spine: cost per resolved case, handoff failure rates, guardrail trigger rates, drift in output distributions. The audit trail and the ops dashboard are two views of one event stream. Build it once.

The honest summary

Notice what's absent from this article: agent frameworks, prompt techniques, model choices. Those are the parts that change every quarter and the parts that matter least. The six layers above are where the actual engineering lives, and roughly five of them are classical distributed-systems and governance work wearing an AI badge.

The demo can take a weekend. The gateway, registry, audit spine and human workflow require sustained platform work. That work is the product.

The system as two interlocking planes

The six layers become easier to reason about when separated into a decision plane and an execution plane. The decision plane interprets intent, retrieves evidence and proposes the next step. The execution plane checks authority, validates parameters and records the outcome. A supervisor may choose a tool. It does not get to waive the tool's contract.

Reasoning is replaceable; the enforcement plane is institutional infrastructure. This boundary also makes model migration less disruptive. Models can change without changing the authorization or evidence contract.

Layer Design question Evidence required at release Failure contained by
Orchestration Can every route terminate safely? Route coverage and loop-limit tests Step, time and cost budgets
Gateway Is every call attributable and permitted? Denied-call and revoked-user tests Policy decision point
Tool registry Are schemas, owners and sensitivity known? Versioned inventory and contract tests Typed adapter
Context Is every decisive claim current and entitled? Retrieval and freshness evaluation Context manifest
Human workflow Can a reviewer change the outcome? Override, queue and seeded-challenge evidence Case-management workflow
Audit spine Can a past decision be reconstructed? Replay of a sampled trajectory Immutable event record
Remove the model from the diagram and inspect what remains. There should still be a recognisable workflow, identity boundary, tool contract, case state and audit record. If removing the model removes the controls, the design has delegated governance to a probability distribution.

A portfolio matrix for agent boundaries

The useful portfolio question is not “single agent or multi-agent?” It is “how much independent judgement and consequential authority does this task combine?” The matrix below prevents needless agent proliferation while identifying tasks that need stronger separation.

Low consequential authority High consequential authority
Low judgement ambiguity Deterministic service or small model-assisted step Workflow with explicit approval and narrow capability
High judgement ambiguity One bounded specialist with evidence-linked output Separated proposer, verifier and deterministic executor
Figure 2Is specialist judgement materially different? to require deterministic policy and approvalCausal and control schematic
Is specialist judgement materially different? to require deterministic policy and approval8 declared states connected by 1 authored relations. The figure supports the section A portfolio matrix for agent boundaries. L0L1 01
Is specialist judgement materially different?
02
Keep one bounded agent
03
Can outputs be checked independently?
04
Route to human decision
05
Separate proposer and verifier
06
Does the action change money, rights or records?
07
Permit read or draft capability
08
Require deterministic policy and approval
Reading. The authored topology makes 1 declared relations across 8 states inspectable. Read it as the control structure for “A portfolio matrix for agent boundaries”, not as measured performance. Schematic derived from the paper's authored topology; no measured quantities.

The rule is deliberately conservative. Specialisation earns an agent boundary only when it improves control, evaluation or ownership. A new persona or prompt is not an architectural reason.

Define the execution envelope before the agent graph

A production design starts with an execution envelope: the limits that apply to one business trajectory regardless of which specialist receives the next step. The envelope names the authenticated principal, case, allowed data domains, action ceiling, time limit, cost limit and required terminal states. Every agent inherits it. No handoff can widen it.

This changes the role of orchestration. The supervisor is no longer free to improvise an unlimited graph. It selects from transitions permitted by the envelope and current workflow state. The tool gateway rejects calls outside the declared case or action ceiling. A human approval can widen one named dimension for one named proposal, but it does not grant the whole graph broader authority.

Figure 3Business request to completed, refused or referredCausal and control schematic
Business request to completed, refused or referred13 declared states connected by 17 authored relations. The figure supports the section Define the execution envelope before the agent graph. L0L1L2L3L4 01
Business request
02
Execution envelope
03
Principal and case binding
04
Authority ceiling
05
Step, time and cost budgets
06
Permitted terminal states
07
Orchestrator
08
Evidence specialist
09
Policy specialist
10
Resolution specialist
11
Governed handoff contract
12
Deterministic executor
13
Completed, refused or referred
Reading. The authored topology makes 17 declared relations across 13 states inspectable. Read it as the control structure for “Define the execution envelope before the agent graph”, not as measured performance. Schematic derived from the paper's authored topology; no measured quantities.

The terminal states deserve attention. “Failed” is not precise enough. A bank workflow normally needs separate states for business refusal, technical failure, human referral, policy conflict, expired request and completed action. Those states drive customer messaging, operational queues and regulatory records. Leaving them as prose in the final answer creates downstream ambiguity.

The graph may be adaptive inside the envelope; the envelope itself is not a model output. That single rule prevents a specialist from turning a diagnostic task into an execution task merely because a retrieved document suggested it.

Make ownership match failure boundaries

The six layers should not become six shared responsibilities. Shared responsibility often means no one owns the failure that crosses two layers. A compact operating model assigns a decision owner, a runtime owner and an evidence owner for each boundary.

Boundary Accountable owner Operational signal Decision required during an incident
Route and termination Journey product owner Loop, fallback and referral rate Continue, degrade or suspend the path
Model gateway AI platform owner Provider errors, route changes and token demand Fail over, shed load or pin a model
Tool contract Domain service owner Schema rejection, timeout and duplicate attempt Disable version or protect the system of record
Context and knowledge Information owner Stale-source, conflict and entitlement failures Withdraw corpus, refresh or restrict use
Human review Operations owner Queue age, override and challenge performance Add capacity or narrow automation
Evidence spine Control owner Missing correlation and reconstruction failure Stop consequential execution

This is not a generic RACI exercise. The boundaries correspond to distinct forms of harm. A model-provider outage calls for traffic management. A superseded policy in retrieval calls for corpus withdrawal. A duplicate mutation calls for idempotency repair and case reconciliation. One “AI operations” queue cannot make all three decisions well.

The ownership model should appear in runbooks. On-call staff need explicit authority to disable a tool, pin a model version, withdraw a knowledge source, divert cases to a human queue and stop an agent route. Containment authority must be designed before the incident that needs it.

Release the system as a set of contracts

An agent release is rarely only a prompt release. A change may alter the model route, tool schema, retrieval corpus, state graph, approval rule or evaluation threshold. Treating the application as one undifferentiated version hides interactions. Treating every component independently misses the tested combination.

The release manifest should therefore name both. It records the version of each contract and assigns one tested system version to the combination. A trace can then answer which model, system instruction, tool adapter, knowledge snapshot, policy and evaluator were active together.

Figure 4Proposed change to promote and monitorCausal and control schematic
Proposed change to promote and monitor12 declared states connected by 8 authored relations. The figure supports the section Release the system as a set of contracts. L0L1L2L3 01
Proposed change
02
Which contract changes?
03
Behaviour evaluation
04
Contract and idempotency tests
05
Retrieval and freshness evaluation
06
Authority negative-path tests
07
State transition and recovery tests
08
Release manifest
09
Canary on bounded traffic
10
Evidence within limits?
11
Rollback affected contract set
12
Promote and monitor
Reading. The authored topology makes 8 declared relations across 12 states inspectable. Read it as the control structure for “Release the system as a set of contracts”, not as measured performance. Schematic derived from the paper's authored topology; no measured quantities.

Canary evidence should be outcome-based. A lower error rate is useful but incomplete. The release should also preserve referral quality, tool-call validity, groundedness, authority denials, queue impact and cost per resolved case. A change that improves answer style while increasing incorrect tool proposals is a regression.

Rollback must respect state. Reverting code does not undo a case transition or delete an incorrect memory. The release plan needs a state-reconciliation procedure for any component that can create durable effects. For material tools, the procedure belongs in the contract before access is granted.

Approve the tested combination, not a collection of separately approved parts. The manifest should bind model route, prompt, tool contracts, knowledge snapshot, workflow graph, policy and evaluator set. If production cannot name that combination for a past trace, rollback and accountability are both impaired.

Reconstruct incidents across agent boundaries

Multi-agent failures are often compositional. The first specialist retrieves a plausible but stale rule. The second compresses away its effective date. The verifier checks consistency with the summary rather than the source. The executor receives valid parameters for the wrong conclusion. No component records an obvious exception.

The incident method must follow causality, not agent names. Start from the external effect and walk backward through the resource mutation, policy decision, proposed action, handoff input, source evidence and original request. Each material event needs a parent identifier, contract version and the minimum event-specific evidence required for reconstruction. Where integrity must be proved and policy permits it, retain a protected content reference or digest; do not make universal input and output capture the price of traceability.

Figure 5System of record to evidence agentInteraction sequence
System of record to evidence agent6 declared states connected by 6 authored relations. The figure supports the section Reconstruct incidents across agent boundaries. t
System of record
Tool adapter
Policy gateway
Resolution agent
Verifier
Evidence agent
01
Material outcome under review
02
Executed parameters and idempotency record
03
Allowed proposal and policy version
04
Resolution derived from verified handoff
05
Accepted evidence summary
06
Retrieved source and effective-date record
Reading. The authored topology makes 6 declared relations across 6 states inspectable. Read it as the control structure for “Reconstruct incidents across agent boundaries”, not as measured performance. Dashed paths mark hypotheses, uncertainty or non-authoritative return paths. Schematic derived from the paper's authored topology; no measured quantities.

The same chain supports forward replay. Investigators can replace the stale source, preserve the original request and run the trajectory in a non-executing environment. The comparison shows whether the failure came from retrieval, handoff compression, verifier criteria or action policy. Replay is more informative than asking the final model to explain itself.

A multi-agent incident has one causal graph, not one root cause per agent. The corrective action should strengthen the boundary that allowed error to propagate. That may mean an effective-date field becomes mandatory, a verifier reads the primary source, or the executor rejects a proposal without a source identifier.

Capacity is a workflow property

Agent capacity is not simply model requests per second. One customer case may create several model calls, retrievals, tool calls and a human review. The shape varies by route. A small increase in referral rate can overload the human queue while model infrastructure remains healthy.

Capacity planning should therefore start with route classes. For each class, estimate steps per case, concurrency, tool fan-out, token range, expected referral probability and recovery path. Load tests should include slow tools, throttled models, unavailable knowledge sources and a constrained approval queue. The purpose is to expose where back-pressure appears.

Back-pressure should change behaviour safely. Low-priority cases may wait. Draft-only functions may use a smaller model. Consequential actions may stop rather than skip review. Retrieval may serve a last-known-good snapshot only if its freshness policy permits it. Graceful degradation means reducing capability without silently reducing control.

This is why the production system is more than the agent graph. The graph describes possible reasoning. The platform defines which reasoning is permitted, how it is supplied, what it can change, and what happens when any dependency weakens.

Decide whether a capability is an agent, tool or service

Many multi-agent platforms accumulate specialists because an agent is the easiest unit to add. That creates extra prompts, handoffs and evaluation surfaces without adding a meaningful boundary. Before creating a new agent, decide what kind of capability is actually needed.

Use an agent when the step requires interpretation among several plausible paths, benefits from a distinct context contract, and can be evaluated against an owned outcome. A policy-comparison specialist qualifies because it reconciles evidence under explicit criteria. A JSON formatter does not.

Use a tool when the operation has a stable typed contract and should behave deterministically for the same inputs. Calculations, eligibility checks, record lookups and mutations belong here. The model can choose or populate the tool. It should not recreate the tool's business rule in prose.

Use a service when several journeys need the same durable capability with its own scale, security or reliability boundary. Identity resolution, retrieval, policy decisions, model routing and evidence capture usually fit this class. Calling each one an agent understates its operational obligations.

A handoff supplies another useful test. If the receiving component needs only a few typed fields, it may be a tool. If it needs a distinct evidence package, decision rubric and evaluation set, an agent boundary may be justified. If every workflow needs it and it owns persistent state, it is probably a platform or domain service.

The distinction affects incident handling. An agent error is investigated through context, model and evaluation evidence. A tool error is investigated through contract, input and state-transition records. A service failure is investigated through availability, security and dependency telemetry. Blurring the categories blurs the corrective action.

Agent count is not a maturity measure. Boundary quality is. A smaller topology with typed tools and strong services is usually easier to govern than a large cast of agents exchanging summaries.

Revisit the decision after production evidence arrives. A specialist whose outputs are nearly deterministic may become a service or policy rule. A tool that increasingly handles ambiguous exceptions may need a governed human or agent decision before execution. Architecture should follow the observed work, not preserve the first diagram.

Primary references

A production multi-agent system is a governed transaction system with probabilistic workers, not a collection of conversational characters.