The words have been used so loosely that they have almost stopped meaning anything. They still mean something, and the difference decides whether the thing you buy helps your customers or annoys them.
A chatbot follows a script
Someone — you, or an agency — wrote out the paths in advance. If the customer says this, reply that. If they pick option two, go to branch four. Modern ones understand phrasing well enough that the customer does not have to type the magic words, but the paths are still fixed.
This is not a criticism. For a bounded problem, a script is the right answer: it is predictable, cheap, easy to test, and it cannot invent anything, because it has nothing to invent with. Opening hours, order status, booking a slot — a script is better than an agent, and anyone selling you otherwise is selling.
An agent decides
An agent is given a goal and a set of things it is allowed to do, and it works out the sequence itself. "Find out what this person needs, check whether we can do it, and either book them in or pass them to a human with the details." Nobody wrote out that path. It composes it, per conversation.
That is genuinely more capable, and it is also the source of every problem agents have. A script can only do what it was told. An agent can do anything its tools allow, in an order nobody anticipated — which is powerful when the situation is unusual, and alarming when the tools include anything that touches money or customer records.
What the customer actually feels
Customers do not perceive architecture. They perceive four things, and each maps onto a real difference:
| What they notice | Script | Agent |
|---|---|---|
| Asked something slightly off-path | Falls back to a menu | Usually handles it |
| Mentioned something three messages ago | Has forgotten | Still has it |
| Asked for a person | If someone thought to build that path | Should hand over immediately |
| Getting annoyed but has not said so | Cannot tell | Can be built to notice |
That last row is the one worth paying for. A script cannot detect frustration because frustration is not a keyword. An agent can be built to watch for it and hand over before the customer has to ask — which is the difference between a customer who felt looked after and one who felt trapped.
How each one fails
Scripts fail visibly
The customer asks something unanticipated and gets a menu. It is frustrating, it is obvious, and it is bounded: you can see it in the transcripts, and you fix it by adding the path.
Agents fail quietly
An agent that has gone wrong is often fluent and confident while doing it. It can state a policy you do not have, or promise a timeline nobody agreed to, in perfectly reasonable prose. Nothing errors. Nothing gets logged as a failure.
Which is why the useful question to ask any vendor is not "is it AI?" but "what is it allowed to do, and what happens when it is wrong?" A good answer names the limits: it can read the calendar but not issue refunds; it can promise a callback but not a price. A vendor who answers that question with enthusiasm rather than boundaries has not thought about it.
Most real systems are both
In practice the useful build is not one or the other. It is an agent deciding what to do, and scripts doing the parts where you want a guarantee rather than a judgement. Booking follows a fixed path because you need it to be right every time. Working out what the customer wants does not, because no fixed path survives contact with real people.
The tell of a system built by someone who has run one: they can tell you which parts are which, and why. If everything is "the AI", nobody has drawn that line — and it will get drawn later, by a customer, in public.
See it working on your own process
In a 30-minute discovery call we look at where your conversations actually break, and whether an agent is the right answer. No obligations, no commitment.
Book a discovery call