I keep seeing invoice processing built as a crew of AI agents that burns hundreds of dollars a month in tokens, when a script plus one LLM call does the exact same thing for less than 10 shekels. Or lead routing “upgraded” to an autonomous agent, and suddenly leads go to the wrong teams because of a small hallucination, while the Zapier flow it replaced did the job with zero extra cost.

Part of the problem is naming. Every simple automated process, including scripts that have been running for 20 years, now gets the title “AI agent”. The mislabeling leads to bad decisions: the wrong tool gets chosen, and real money gets wasted.

Using a full agent for a task that a script or a regular workflow solves in 10 minutes costs more (reasoning loops, multiple model calls, retries), runs slower, is harder to debug, and is often less reliable because it “thinks too much” about simple things.

There are three tiers. Workflow automation is rule-based: if X, do Y. Scripts, ETL, a Zapier flow. An AI-enhanced workflow is that same linear flow with one step that calls a model as a black box, which is what lets it handle unstructured input: classify, extract, summarize. An autonomous agent gets a goal instead of a script, and decides the order of steps, which tools to use, and what to do when something fails.

Most of what gets built as tier 3 is tier 2. Here is where the line actually fell on a system we shipped.

One system, both sides of the line

We built a WhatsApp support system that answers customer messages with AI. Two decisions in it landed on opposite sides of the line, and the second cost far more than the first.

The first was deciding which inbound messages the AI is allowed to answer at all. That sounds like judgment, so it sounds like a job for an agent. It is one model call in a linear flow. A guard classifies each message into one of four verdicts (reply, escalate to a human, ignore, reject) and the flow branches on the answer. No planning, no tool selection, no loop. Tier 2, and it has been the most reliable part of the system.

Tier 3 was the right call for the conversation itself. Nobody can script a support dialogue. But that is where the bill came due.

What the agentic tier actually costs

On paper the conversation loop worked. A 50-turn live battery produced no errors and no silences.

What it produced instead was the failure mode of the tier. The agent claimed it had handed the conversation to a human when it had not. It sent empty acknowledgements. It leaked its own tool calls and reasoning into customer replies. None of that appears in an error log. All of it appears to the customer.

Fixing it was not one bug. It was handover confirmation, recovery for responses that came back with no text, language-aware fallbacks, containment for tool output, and a cap on iterations. That is the real price of tier 3, and it is not the token bill.

There is a smaller lesson in the guard, and it points the same way. When mixed messages started slipping past it, the obvious fix was another conditional in the prompt. That change turned real customer messages into silent skips. What worked was narrowing the existing rule rather than adding a new one. In a linear flow you can find that in an afternoon, because there is one step to test. In an agent loop the same class of bug is somewhere in fifty turns of context.

Start boring

Build the simplest thing that works. Move up a tier only when the one below it has visibly hit its limit, and budget for the guardrails, not just for the tokens.