← blog

Most 'AI agents' are just workflows (and that's fine)

The industry keeps calling everything an agent. Most production systems I've shipped are workflows with LLM steps — and that's usually the right call.

· 2 min read#agents#opinion

Every second demo I see on LinkedIn is “an agent.” Look closer and it’s a fixed pipeline: extract, classify, draft, send. The LLM never decides what to do next. It fills in blanks inside a flow a human designed.

That’s not an agent. That’s a workflow. And here’s the unpopular part: for most enterprise problems, the workflow is the better product.

The distinction that actually matters

I use a simple test. If you can draw the whole thing as a flowchart before runtime, it’s a workflow. If the system picks its next action at runtime — which tool, which order, whether to stop — it’s an agent. ReAct loops, plan-and-execute, tool selection under uncertainty: that’s agent territory.

The test matters because the two fail differently. A workflow fails at a known step, and you can put a retry or a fallback exactly there. An agent fails creatively. It calls the right tool with the wrong arguments, loops politely forever, or decides — with total confidence — that the best way to answer an HR query is to search the finance database.

What we actually run in production

On the enterprise platform I lead, serving a few hundred daily users across HR, finance, and ops, the ratio is maybe 80/20. Document intake, approval routing, report generation — workflows with LLM steps. Retrieval answers over policy docs — a workflow with retrieval in the middle.

The 20% that are real agents earn it. One example: a request triage system where the incoming ask could touch any of seven modules. Enumerating every path as a flowchart was genuinely impossible, so the model plans, picks tools, and iterates. It runs with a capped loop budget, a restricted tool set, and human approval on anything that writes.

The rule I’ve landed on: give the model exactly as much freedom as the problem requires, and not one step more. Freedom is a cost. You pay for it in eval complexity, in incident response, in the meeting where you explain to a stakeholder why the bot did something nobody asked it to.

Why the framing hurts us

When everything is “an agent,” two bad things happen.

First, buyers get scared of the wrong things. I’ve sat in rooms where a perfectly boring document extractor got blocked for months because someone heard “agent” and pictured autonomy. It was a flowchart. It could not go rogue if it wanted to.

Second, builders skip the boring option. Teams reach for an agent framework, burn a quarter fighting non-determinism, and end up hand-rolling the workflow they should have started with. I did a version of this myself in 2023. The graph-of-agents demo was beautiful. The thing that shipped was four prompts and a queue.

Call your workflows workflows. Save the word “agent” for systems that actually decide. Your on-call rotation will thank you.