Callr Actions: voicebot@v2, an AI agent that knows what the caller really heard
voicebot@v2 is a new version of the Callr Actions AI voice agent. The model now gets the conversation as the caller heard it, with the right timing, so it no longer answers sentences that were never played.
- The history of what was really said. A sentence of the bot enters the history once it is played, cut to the words the caller heard when they interrupt it. The words of the caller are placed where they said them, and a sentence the caller never heard is dropped.
- Interruptions you control. The new
interruptionsparameter replacesstopSpeaking.mode: interrupt(default) cuts the bot off when the caller says more thanminWordswords (default 3); fewer words, like "yes" or "ok", are an acknowledgement and the bot goes on.mode: waitnever cuts the bot off and answers once it is silent.mode: ignoredoes not listen while the bot speaks, for speakerphones where the bot could hear itself. - Smart restarts. When the caller talks over the very beginning of a sentence, the bot says it again from the start, unless the model answers instead.
- Better waiting sentences. In
pleaseWait,delayBefore(default 4 s) is the time without an answer before a waiting sentence is said, anddelayAfter(default 2 s) is a silence after it, so the answer does not follow it at once. - The latest OpenAI models. The model is called with the OpenAI Responses API (
engine.api: responses, the default) andengine.modelis required:gpt-6.1-terraand the other recent reasoning models work, with the reasoning effort they need set for you (engine.params.reasoningEffort,nonewhen the model allows it, for the lowest latency).temperatureis only sent when you set it. With an OpenAI-compatibleengine.urlthat only has chat completions, setengine.api: chat. The -pro models are refused: too slow for a call. - A dated transcript. The result has a
transcript: everything said, with the time and a status for each entry (played,cutwith the wordsheard,dropped,backchannel, tool calls...).
initialMessages, tools, voice, language and the built-in dial, hangup and set_value tools work as in voicebot@v1. To migrate, change the action name, set engine.model, and replace stopSpeaking.minWords with interruptions.minWords and pleaseWait.delay with pleaseWait.delayBefore. stopSpeaking.enabled: false is close to interruptions.mode: wait. The temperature of voicebot@v1 (0.2 by default) is no longer sent unless you set it. voicebot@v1 is unchanged.
For a fast response, pick a Flash voice, such as en-US-Olivia:MAI-Voice-2.1-Flash.
- action: voicebot@v2
params:
voice: en-US-Olivia:MAI-Voice-2.1-Flash
initialMessages:
- role: system
content: You are a smart AI agent on the phone. Make short replies.
- role: assistant
content: Hello there. How can I help?
engine:
name: OpenAI
model: gpt-6.1-terra
auth: ${{ $openai_key }}
interruptions:
mode: interrupt
minWords: 3
pleaseWait:
enabled: true
delayBefore: 2
sentences:
- One moment, please.
result: $botSee the Language Reference and the AI agent templates.
