Key Takeaways

  • The problem: A single agent handling an end-to-end workflow is the monolithic architecture of the agent era — it holds up in testing and fails structurally in production, for the same reasons the application monolith did.
  • Why it matters: The failure mode isn’t the prompt — it’s the architecture. A bad retrieval result in step 2 propagates silently through steps 3 to 10, with no boundary to catch it.
  • What you’ll learn: Four structural failure modes of monolithic agents, when pipelines of specialized agents are the right call, and what a well-structured agent contract looks like.

Post 6 named the platform gaps — the pipeline, testing, and observability work that has to happen before agents go to production. Now let’s talk about what you’re actually deploying: the agents themselves. And there’s an architectural decision hiding here that most teams make wrong the first time.


The monolithic agent feels right — until it doesn’t

Building a single agent that handles an end-to-end workflow is seductive. One system prompt. One model call. One thing to configure, deploy, and think about. You hand it a task, it reasons its way to a result.

That works in demos. In production, it starts failing in familiar ways.

What’s deceptive about the monolithic agent is that it can look solid in testing for weeks. I’ve seen one hold up through hundreds of manual test runs — varied inputs, edge cases, the works. Then it went to 500 concurrent users and started producing outputs that were coherent but wrong in a specific, traceable way: it was prioritising the most recent tool result over earlier context. One agent. One context window. No way to isolate which step was failing without reading the full trace every time.

The failure mode isn’t the prompt. It’s the architecture. And you can’t prompt your way out of a structural problem.


You’ve seen this before

When microservices emerged, the common objection was: “why would I break a working application into a dozen moving parts?” The overhead felt irrational. The complexity was real. Experienced engineers resisted it.

But the teams that leaned in gained something the monolith couldn’t give them: resilience, testability, and independent deployability. A bug in the payment service didn’t take down the catalog. A team could upgrade the search ranking model without touching checkout. Components could be reasoned about, tested, and replaced in isolation.

The same tradeoff is playing out right now with agent architecture. The monolithic agent is the monolith. And it fails structurally, not probabilistically.


Four structural failure modes

1. Single failure domain

In a monolithic agent handling a 10-step workflow — retrieve context, validate input, call external APIs, synthesize results, format output, apply business rules — every step lives inside one reasoning chain. A bad retrieval result in step 2 propagates silently through steps 3 through 10. A tool failure at step 7 has no clean recovery path; the whole agent is in an undefined state.

You have no boundary to catch failures at. No isolation. When it breaks, it breaks completely.

2. Untestable reasoning chains

You cannot unit-test a 10-step reasoning process as a whole. When the monolithic agent produces a wrong answer, you can’t easily determine which step failed or why. Did the retrieval return irrelevant content? Did the model misinterpret a tool result? Did the formatting step drop a critical field?

You’re left reading traces and guessing. Every test covers the whole agent or nothing. Regression testing is expensive, brittle, and incomplete.

Specialized agents operating in a pipeline can be tested at their boundaries. Input → output for each step. That’s the same reason we write unit tests for functions — isolation makes reasoning about correctness tractable.

But modular agents also mean your deployment pipeline needs to evolve alongside them — behavioral regression testing, canary evaluation, stateful rollback. That’s a different job from what most CI/CD systems were built to do. Your CI/CD Pipeline Is Not Ready for Agents covers what needs to change before you can run this reliably in production.

3. Inability to swap components independently

Here’s the one that hurts in practice: when a better model version ships, upgrading the monolithic agent changes all behavior at once. The reasoning on step 1 changes. The formatting on step 9 changes. The way it handles tool errors in step 5 changes. You have no way to upgrade incrementally without re-validating everything.

In a pipeline of specialized agents, you upgrade the retrieval agent independently from the synthesis agent. You run evaluation on the component being changed. You deploy the new version with confidence because you know its scope.

Decentralizing agents solves single-point failure — but introduces system-level complexity that needs a different governance approach. Once you have 10 agents in production, the question shifts from “does each agent work?” to “does the system still do what I designed?” Spec-Driven Development at Scale is the engineering discipline that makes large multi-agent systems maintainable.

4. Context window exhaustion

A monolithic agent running a 10-step workflow accumulates everything in one context window — the original input, all tool call results, intermediate reasoning, retrieved documents, prior steps. As the workflow grows, later steps compete with earlier ones for space. The model starts truncating early context silently, and results degrade in ways that don’t produce errors — just quietly worse outputs.

A pipeline avoids this by design. Each specialized agent receives only the context relevant to its step. The window stays clean, and what gets passed between agents is a structured output — not a growing transcript.

Monolithic agent vs pipeline of specialized agents — failure propagation comparison


So when IS a monolithic agent the right call?

This isn’t an argument that agents should always be pipelines. Structural complexity has overhead, and that overhead needs to be justified.

Monolithic agents are appropriate when:

  • The task is bounded and single-step (classify this, summarize that)
  • The stakes are low enough that a wrong answer is recoverable
  • The workflow has no meaningful decision points or branches
  • Auditability is not a requirement
  • You’re in early exploration — proving out whether an agent is useful at all (a monolith is fine for prototyping, but design with pipeline migration in mind from the start)

Pipelines of specialized agents are appropriate when:

  • The workflow is multi-step with conditional paths
  • Outputs affect downstream systems, customer-facing surfaces, or financial decisions
  • Any of the steps need to be independently improved or swapped over time
  • You need a test strategy beyond “run it and see”
  • You need to explain what happened and why — to an auditor, a regulator, or a support team

The decision rule is simple: if you’d require a multi-service architecture for the equivalent deterministic workflow, you need a pipeline for the agent version.

Flowchart for choosing between monolithic agent and agent pipeline


What a well-structured agent pipeline looks like

Each agent in the pipeline does one job and has a clear contract:

  • Input schema — what it expects to receive
  • Output schema — what it guarantees to return
  • Failure mode — what it does when it can’t complete its job
  • Evaluation criteria — how you know it’s working correctly
  • Resource budget — token limit, max tool calls, timeout; without this, one runaway component drains the whole pipeline

Annotated agent contract showing the five required contract elements

That contract is what lets you test it, monitor it, and replace it. Without it, you have reasoning happening in a black box at scale.

The plumbing between agents — orchestration, context passing, error propagation — is engineering work, not prompt work. That’s the overhead of the approach. It’s real. It’s also what makes the system operable.


The architectural lesson from the microservices era was: complexity you defer to the monolith doesn’t go away, it just becomes invisible until it’s a production incident. Agent architecture is repeating that lesson in real time.

Design your agents the way you’d design services. Give them boundaries. Make them testable. Build in the ability to swap them.

The question isn’t “can I build this as one agent?” You probably can. The question is “can I operate it, debug it, and improve it?” That’s the question that determines the architecture.


Next: Agents designed, pipeline structured. Now you have to run them. Most teams find out what their observability gaps are when something breaks at 2am. Next: what real LLMOps looks like and what you actually need to monitor in production. → Post 8: LLMOps — What Observability Actually Means for Agent Systems