Skip to content
All writingWriting

When not to ship an agent

Most internal AI projects do not need an agent. Three cases where a deterministic pipeline beats an LLM, and how to tell the difference up front.

  • Decision
  • February 26, 2026
  • 7 min read

The default reach for a model-driven agent is a 2024-era reflex that has not died. It survives because agents demo well, because the framing is fashionable, and because the alternative — naming the work as a deterministic pipeline — sounds less interesting on a roadmap. None of those are engineering reasons.

We start every engagement with a short, ungenerous question: does this work actually need an agent, or does it need three steps in a queue? In most cases it is the second.

Three cases where a pipeline wins

There are recurring shapes where a typed pipeline is cheaper to build, cheaper to operate, and easier to reason about. We see them often enough to name them.

  • The work decomposes into a fixed, finite set of stages and the order is known. An agent loop here is decoration; a stage graph is the truth.
  • The decision surface is small enough that every choice can be enumerated in a code review. A model picking among four options is a switch statement asking to be written.
  • The cost of a wrong decision is high enough that you will require human approval anyway. If the human reviews every output, the model is generating drafts — that is a generation step, not an agent.

The honest test

Before we name a system as an agent, we ask whether the model is doing one of three things that a deterministic alternative cannot: choosing among many paths whose enumeration would itself be a model-sized problem; composing a response from heterogeneous, partially-structured context; or carrying state across a conversation in a way the user expects.

If the answer to all three is no, the model is being asked to be a router or a templater. Both have non-AI implementations that are decades into proof. Use those.

An agent loop is a shape, not a goal. Start with the work, then pick the shape.

What we tell teams who want one anyway

Sometimes a team has decided on the shape before the work — usually because a stakeholder above them has decided on the framing. We do not refuse those engagements outright; we redraw the surface. The agent becomes a thin orchestration layer over the deterministic pipeline that does the actual work. The model picks the route; the pipeline carries the load.

The result usually surprises both sides: the system reads like an agent in the docs, behaves like a pipeline in production, and ships in half the time of a 'real' agent loop.

We describe one of those redrawn surfaces in our engagement note on a fleet exception co-pilot — the model picks the route, but every action it can propose was already a primitive the human dispatch team used.