tts.expressive lets the agent shape how a line lands, not only what it says.
With it on, the model writes delivery tags into the words it produces — a
laugh, a drop to a whisper, a pause before the number that matters — and the
voice performs them.
It works on exactly two models, and switching it on anywhere else is refused.
Expressive delivery is a
tts setting, so it exists only on the
speech-to-text → LLM → text-to-speech cascade. A speech-to-speech agent has no
tts object, and a text agent has none either.How it works
Each expressive model’s catalog entry carries a block of prose, and turning the toggle on appends that block to the agent’s system prompt. The block is what teaches the tag vocabulary — it is the only place the tags are ever written down, and nothing on Talqing’s side rewrites, strips or translates what the model emits. The text goes to the provider with the tags in it, and the provider performs the ones it knows. The block is appended after your prompt, after{{userdata.*}} substitution and
after any knowledge base content, and it is the same string for every session on
the agent. It also reaches a handoff target that inherits this voice, so a
target does not need its own copy.
Because the tags are part of the model’s output text, they appear in the
transcript and on the call record — which is how you see what the agent chose to
do.
What it costs
Both sides of every turn, and both are billed to your own provider key:- Input. The dialect block is added to the system prompt on every model call for the whole call. With prompt caching it is a cached prefix after the first turn, but it is never free.
- Output. Every tag the model writes is output tokens, and on ElevenLabs and xAI the tag characters are also text-to-speech characters.
The tag vocabularies
Write tags only from the dialect of the model you are on. xAI silently drops a label it does not recognise, so a tag from the other dialect does nothing there rather than being spoken.xai/xai-tts
xai/xai-tts
Placed at a point in the line:Wrapped around a phrase, and always closed:The block the agent is given also tells it to use one tag only where a real
person’s voice would do that thing, never to put a pause beside sentence
punctuation, never to emphasise more than a single word, and to stay composed on
bad news however casual the call has been. An example line it is shown:
elevenlabs/eleven_v3
elevenlabs/eleven_v3
Five tags, and no wrapping form at all:Each colours roughly the next four or five words and then delivery returns to
normal, so a tag goes directly in front of the phrase it belongs to. The example
line the agent is shown:This is why v3 has no speed control: pace is one of the tags.
Two rules enforced at publish
A fallback voice must match the setting
The dialect is taught once, at compile time, from the primary voice. A failover happens mid-turn, on text the model has already produced with tags in it — so the fallback has to be a voice that speaks tags too.Every handoff target must use the same voice
A handoff target inherits the source’s transcript, which is full of tags, and is few-shot into writing its own. So a handoff out of an expressive agent is refused unless the target uses the same provider, the same model andexpressive: true.
Next
Voices
Picking the voice, its speed, and the ElevenLabs settings step.
Handoffs
Routing a conversation to another agent, and what has to match.
Prompting
Writing the system prompt the dialect block is appended to.