Most synthetic callers are too polite. They start with a mood and keep it to the end of the call. That makes them easy to test, and it means they rarely test the agent on what real customers do.
Learn how dynamic caller personas simulate frustration, interruptions, and hang-ups to uncover Voice AI agent failures that static test callers miss.
Most synthetic callers are too polite. They start with a mood and keep it to the end of the call. That makes them easy to test, and it means they rarely test the agent on what real customers do.
A caller who starts angry stays angry at the same level to the end of the call. A caller who starts cheerful stays cheerful whatever the agent does. Real customers move. They calm down when the agent gets it right and boil over when it does not. They cut in, ask for someone else, say "hold on", and sometimes just hang up.
A frozen caller never does any of that. A test run with frozen callers can tell you whether the agent can hold a conversation with someone who has already decided to stay on the line. It cannot tell you what the agent does when that stops being true.
When the mood is allowed to move, call length barely changes. What changes is what the caller does. In our matched run of 50 calls, the mean call ran 15.0 turns with a frozen caller and 14.3 with a moving one. Caller actions went from 34 to 92. Hang-ups went from 0 to 14.
A moving mood is not there to make calls longer or shorter. It is there so the caller does something the agent has to handle. Each action is a question put to the agent: did you stop when I cut in, did you answer when I asked for a person, did you read that back when I asked you to repeat it. A frozen caller never asks, so the agent never answers.
A persona is set by the fields below, as they appear in the code. Check the labels against the product screen before publishing.
| Field | What it sets |
|---|---|
| temperament | The caller's base manner |
| emotionalState and emotionIntensity | The current feeling, and how strongly it is felt |
| patience | How long the caller tolerates a monologue before cutting in |
| emotionSensitivity | How readily the mood reacts to agent turns. Left on Auto, derived from patience |
| interruptionTendency | How often the caller cuts in |
| hangUpProbability | Set to 0 on purpose, so a hang-up comes from the mood and not from a dice roll |
Temperament and emotional state are separate fields on purpose. A calm person who is upset still sounds controlled. An impatient person who is calm still cuts in when the agent rambles.
It is not randomness. The mood moves because of what the agent said. In our run, the cheerful control persona escalated in both of her pairs. The agent read "₹5400" back as "Five 1400", and the feature attributed the escalation to that turn.
It is not a replacement for a fixed caller. A moving mood makes two runs hard to compare. For regression suites, where the question is whether the last change broke anything, a frozen caller is the right control. The next post in this series covers when to use which.
Take one scenario your agent already passes. Run it against three callers: one easygoing, one impatient, and one anxious with low patience. Turn the switch on. Read the caller actions first and the score second.
If the agent handles all three, you have learned that your pass was real. If it does not, you have found the defect your frozen callers were too polite to show you. Either answer is worth more than the score you had before.
Run Dynamic persona against your own agent and see every mood shift, the agent turn that caused it, and how the agent handled it, scored with CLEAR.
Building the neutral certifier for voice AI agents. We test live voice agents over real telephony and return a defensible report card.
Building the neutral certifier for voice AI agents. We test live voice agents over real telephony and return a defensible report card.