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.