Asking an AI model not to do something is no guarantee that it won't. For a funny picture that doesn't matter. In a phone call it does, because a phone call has no undo button.
A phone call has no undo button
You can ask a chatbot to answer again. A receptionist who has just said something cannot take it back. Our AI receptionist also produces its answer directly as sound: it works out what to say and says it in one go. There is no moment in between where we can check the sentence first.
So what the receptionist says has to be right the first time. And some things must always go right.
Instructions lose to reflexes
In the red tomcat paradox we wrote about how hard it is to give an AI model many instructions at once. On the phone, time pressure comes on top of that. And under time pressure, the model's reflex sometimes wins over the instruction.
Instructions that forbid something turn out to be especially fragile, such as ‘don't announce the transfer yet’. The model wants to be helpful, and to a model, helpful feels like doing it right away.
Is ‘thanks, have a nice day’ a yes?
Take transferring a call. The receptionist asks: ‘Shall I put you through?’ The caller replies: ‘Thanks, have a nice day.’ Or asks a question back: ‘Do you offer support for that as well?’
A person hears straight away that this is not a yes. For a model that is eager to help, it could count as one. The call was then transferred while the caller actually wanted to hang up, or still had a question.
That is why code now decides whether a call is transferred, not just the instruction:
- the call is only transferred after a clear yes
- after a counter-question or a vague answer, the receptionist asks once more
- after a goodbye, it ends the call politely
The model says it, the code decides it
That is the principle behind everything that must not go wrong in a call. The model decides how something is said: friendly, in the caller's language, in the right tone. The code decides what is allowed to happen: whether the call is transferred, which details are still missing, what needs to be checked first.
If a rule is only in the prompt, we hope the model sticks to it. If it is in the code, the receptionist simply cannot transfer the call until the caller has said yes.
English for the receptionist, Dutch for the caller
Another lesson. During a call we sometimes give the receptionist an extra hint, for example after it has looked something up. That hint is always an English description of what it should do, never a ready-made Dutch sentence.
The reason: the model picks its language based on what the caller says. Put a Dutch sentence in there, and a German caller suddenly gets Dutch back. Describe only the intent, and the receptionist says it in the caller's language.
Helpful and reliable
The hard part is the balance. Put too much in code, and the receptionist feels like a phone menu. Leave too much to the prompt, and it improvises where it shouldn't. We let the model do what it is good at, holding a natural conversation, and fix in code what must always go right.
Curious how that feels? Try it yourself on our website.