All writing
LessonsSep 8, 20266 min read

No Promises I Can't Take Back.

People on a restaurant line change the order, take things off, and sit there undecided. They assume you will wait. The voice agent has to absorb that, without ringing up a maybe.

I work on phone agents for restaurants. Someone calls. They want hours, or a table, or food. An agent talks to them. The talking is the part everyone watches. The part that still trips me is quieter: which moves the agent is allowed to make before a person has to get involved.

It does not get more customer-facing than this. A hungry person, on the phone, talking the way people actually talk to a restaurant. Change that. Take that off. Wait, still deciding. They assume the line will hold while they figure it out. Accommodating that is the job, not a courtesy the system can skip.

A caller asking if you are open on Sunday is one kind of question. A caller asking to put three entrees on a card, while they already sound irritated, is a different kind. The agent can sound equally sure about both. They are not the same decision.

I started calling that split the decision architecture, which sounds fancier than it is. Before the phone even rings, you decide what the agent can answer on its own, what it has to check, what it has to wait on, and what it has to hand to a human. The conversation is the surface. Those rules are the system.

Cheap on the phone

Repeating the hours. Confirming a dish is on tonight’s menu, if that answer is coming from the live order system, not from a blurb I typed last month. Reading the order back before anything hits the kitchen. Holding the ticket while they swap a side or take something off.

If those are wrong, the person says wait, no, and you fix it in the same breath. Nobody has started cooking. Nobody has been charged. The worst case is an awkward pause.

I want the agent doing this constantly. A human repeating hours a hundred times a night is a waste of a person. Sitting with someone who is still choosing between two dishes is also the job. On these calls, that is what I am happy to hand over.

Change it, take it off, hang on

People do not call with a clean order. They add a drink, then drop it. They want the second entree gone. They are choosing out loud. A host would wait. A demo that only works if the caller already knows what they want is not a restaurant phone line.

The cheap version of that mess is still in the conversation: edit, remove, stall. Let them be undecided. Read it back. Do not close.

The expensive version is the agent treating indecision as a finished order because finishing sounds helpful. Or locking a change after the ticket is already in the kitchen. Callers assume you can still take it off. Sometimes you can. Sometimes a plate has already started. The agent does not get to guess which one it is.

If the system cannot absorb “wait, change that” without inventing a commitment, it is not ready for a real caller.

Expensive on the phone

Writing the order into the system the kitchen actually uses. Charging a card. Promising a dish that is not available tonight. Telling someone you can do a special the line will then have to refuse. Keeping a frustrated caller in the automated loop because the agent is “handling it.” Ringing up a maybe.

If those are wrong, you do not fix them in the same breath. The ticket is already in the kitchen. The charge went through. The person who was already having a bad day now thinks the restaurant is messing with them. Taking it back means a staff member, a refund, a wasted plate, or a review. Sometimes several of those at once.

I still do not let the agent commit those just because it sounded confident. Confidence is cheap. Taking it back is not.

This is the same instinct as making the call yourself before you ask the model. On a live order line, the “call” is whether food and money are allowed to move.

When someone already sounds upset

I used to treat a tense caller as a tone problem. Make the voice warmer. Apologize more. Keep going.

On a live order call, mood is closer to a traffic rule. If someone is calm and asking about hours, let the agent finish. If someone is confused or still picking, slow down and wait. If someone is actually upset, the expensive question is whether the agent is still allowed to close the order, or whether a person should take the phone.

Getting that wrong does not show up as a bug in a log. It shows up as a person who called for dinner and hung up mad.

I do not have a magic detector for this. I am still finding the line. The useful change was treating the line as a decision I had to make up front, not a vibe the model would just get right in the moment.

Ground it in tonight’s menu

The other split that made this real: the agent answers from the live menu in Clover, not from a paragraph I wrote last week. Prices change. Items run out. If the agent quotes something that is not on the board tonight, that is an expensive lie dressed up as being helpful.

The model can talk all day. Nothing lands until the order hits the system the staff already uses. Keeping the menu, the order, and that system in sync is the actual work, including the mid-call edit. The conversation is what the caller hears while that work either holds or does not.

These agents have taken more than ten thousand calls. The pattern stopped being theoretical a long time ago. I still let the agent talk. I got pickier about what it is allowed to promise, about when it has to wait, and about when a frustrated person should get a human instead of a smoother sentence.

Amisha

Filed under Lessons · AI Systems

Coming
Your Agent Has Amnesia. Here's the Dict That Fakes Memory.
Week 2