/ THE CORE

When to Stop Using Agents and Go Back to Pipelines

Agents are the default architecture for AI features in 2026 — and that's a problem. For a surprising number of use cases, a boring deterministic pipeline is faster, cheaper, and more reliable. Here's how to know when you're in that camp.

Side-by-side comparison of an autonomous agent loop and a deterministic pipeline with the same end-to-end task

The default that nobody questions anymore

Walk into any AI engineering team's planning meeting in 2026 and watch how new features get scoped. Someone describes the problem. Someone else says "OK, so the agent will need to call X, then Y, then maybe Z depending on the result." Within three minutes, the conversation has moved on to which framework to use and how to manage the tool definitions. Nobody asked the question that should have come first: does this actually need to be an agent?

The answer, more often than people want to admit, is no. A meaningful fraction of the systems being shipped as agents right now would be simpler, cheaper, faster, and more reliable as deterministic pipelines with one or two LLM calls embedded inside. The agent framing is becoming a reflex — and reflexes are how teams ship the wrong architecture.

What an agent actually buys you

Agents have one real superpower: dynamic decision-making over an open-ended action space. When the next step depends on information you can't predict in advance, and the space of possible next steps is too large or too varied to enumerate, an agent can navigate it. That's the use case agents were designed for, and they're genuinely good at it.

Everything else — the fact that they can call tools, the fact that they use LLMs, the fact that they handle errors — is also true of pipelines. If your problem doesn't actually require dynamic decision-making, you're paying for a capability you're not using. And the price tag is steep.

The hidden costs of using an agent for a non-agent problem

Latency

A pipeline executes in a known number of steps. An agent executes in however many steps the model decides — often 3x to 5x more than the deterministic equivalent of the same task. Each step is an LLM call, and each call has its own latency. For interactive use cases, this turns sub-second pipelines into multi-second agent loops.

Cost

Same problem, multiplied. A 5-step pipeline that does its job in 5 LLM calls becomes a 15-call agent loop because the agent re-reasons about the task at every step, retries when something looks off, and burns tokens deliberating. We've audited systems where switching from agent to pipeline cut inference costs by 70% with no quality drop.

Reliability

This is the one that hurts most. A pipeline either works or fails in a predictable way. An agent can fail in creative new ways every day, because its execution path isn't fixed. Your debugging surface area is the entire combinatorial space of "what the model might decide," and your test coverage is whatever you happened to think of.

Agents trade reliability for flexibility. If you don't need the flexibility, you're paying the reliability cost for nothing.

The four signs you've over-engineered

If any of these describe your "agent," stop and ask whether a pipeline would do the same job better:

  1. The execution path is the same 90% of the time. If you can sketch the typical flow on a whiteboard and it's a straight line, that straight line is your pipeline. Build it directly.
  2. The tools are always called in the same order. Agents shine when the order depends on the input. If the order is fixed, you don't need a router — you need a function call.
  3. You spend more time writing prompts to constrain the agent than to enable it. If half your system prompt is "do not do X, do not do Y, always do Z first" — you're trying to turn your agent into a pipeline by force. Just write the pipeline.
  4. Your eval suite is mostly checking that the agent picked the right action. That's a sign the action selection isn't really decision-making — it's a routing problem with a known answer, and a routing layer would do it better.
The whiteboard test Try to draw your agent's typical execution as a flowchart. If the flowchart has fewer than three branching points, you don't have an agent — you have a pipeline that's been wrapped in an agent costume. The pipeline version will be dramatically simpler to ship and maintain.

What "going back to pipelines" actually looks like

Migrating from an agent to a pipeline isn't a downgrade. It's usually a clarification. The steps:

  1. Trace the typical execution path of your agent on 50 representative inputs. Note the sequence of tool calls, the parameters, the branches.
  2. Identify the points where the path actually varies. Most don't. The ones that do are your real decision points.
  3. Rebuild the system as a pipeline with explicit steps for the deterministic parts and a small LLM call at each real decision point. Each LLM call has one job, a structured input, and a structured output.
  4. Add validation between steps. The thing that made the agent feel "smart" — its ability to recover from errors — is replicated by explicit validation logic, which is far more debuggable.
  5. Run both systems side by side on real traffic for a week. Compare cost, latency, and quality. In our experience, the pipeline version usually wins on the first two and ties on the third.

Where this leaves agents

None of this is an argument against agents in general. There are real problems where the action space is genuinely open, the next step really does depend on information you can't predict, and an autonomous loop is the only way to get to a solution. Customer-facing assistants navigating complex product catalogs, research workflows over heterogeneous data sources, troubleshooting tools that need to explore — these are agent-shaped problems and benefit from agent-shaped solutions.

But that's a smaller set than the current zeitgeist suggests. The teams shipping the best AI features in 2026 are the ones who reach for an agent only when nothing simpler will do — and who recognize that a well-built pipeline isn't a step backward. It's the architecture that survives contact with production.

Link copied!