When a workflow beats an agent
Agents earn their unpredictability when the path genuinely varies by input. When the sequence is known, a deterministic pipeline with model calls at specific steps is cheaper, faster, easier to test and easier to debug. Most production tasks described as agentic are actually workflows.
Agents are the more interesting architecture, which is why they get chosen for problems that did not need one. The question that settles it is simple: do you know the steps in advance?
If you know the steps, write them down
Take a support triage feature: classify the message, look up the customer, check the order, draft a reply, route it. That sequence is the same every time. Nothing about it benefits from being rediscovered per request.
Written as a pipeline it costs five predictable calls, runs in known time, can be tested stage by stage, and fails in a place with a name. Written as an agent it costs somewhere between five and fifteen calls, takes a variable amount of time, and fails somewhere in a transcript.
Testing is the sharpest difference
A pipeline stage has an input and an output, which means it has unit tests. An agent has a goal and a trajectory, which means it has evaluations — slower to build, noisier to interpret, harder to run on every commit.
When the agent is right
Some tasks genuinely cannot be sequenced ahead of time. Debugging an unfamiliar failure, researching an open question, exploring a codebase to answer something specific — here the next step depends on what the last one found, and that is exactly what the loop is for.
The test is whether you could draw the flowchart. If you could, draw it. If every attempt produces a diagram full of "it depends", you have an agent-shaped problem.
Hybrids are the common answer
Most real systems end up mostly deterministic with one open-ended stage. Fixed intake, fixed validation, fixed output — and in the middle, a short agent with a tight budget doing the part that genuinely varies.
You get flexibility where it earns its cost and predictability everywhere else, which is usually the right trade for something users depend on.
Start constrained
It is much easier to loosen a workflow that turned out too rigid than to add reliability to an agent that turned out too loose. Begin with the structure you can reason about, and hand over control only where you can point at the reason.
Frequently asked questions
Is a workflow just a less capable agent?
It is a more constrained one, and constraint is usually what production wants. If the sequence does not need to vary, letting it vary only adds cost, latency and failure modes.
Can I combine them?
Yes, and it is often the best answer. A deterministic pipeline where one stage — the genuinely open-ended part, such as investigating a failure — runs as a short agent gives you flexibility exactly where it is needed and predictability everywhere else.