Build agents

Voice tuning

Every voice agent works well out of the box, so most bots need no tuning at all. When you do want to shape the conversation, the bot editor gives you a set of controls grouped into cards. This page walks through every one of them, with its range, its default, and an example of when you would change it.

Two things are true throughout. First, controls appear only when they apply to the engine or voice you have selected, so you will never see a setting that does nothing on the bot in front of you. Second, values are checked when you save. If you enter something outside the allowed range, the save is refused and the message names the field and the range it expects, so you can correct it and try again.

Conversation flow

These turn-taking controls decide when the agent thinks the caller is talking and when it thinks a turn is over. They apply to every realtime engine, and the bot fills each field with the right starting value for the engine you picked.

SettingWhat it doesRange
Sensitivity
realtime_vad_threshold
How loud or clear speech must be before the agent treats it as the caller talking. Raise it in noisy places so background sound does not interrupt the agent.0.1 to 0.9
Silence before responding
realtime_vad_silence_ms
How long a pause counts as the end of a turn. Lower feels snappier; higher gives callers room to think.0 to 10000 ms
Speech lead-in
realtime_vad_prefix_padding_ms
How much audio is kept from just before speech was detected, so the caller's first syllables are never clipped.0 to 10000 ms

Two engines swap in their own version of the sensitivity control:

  • Start and end sensitivity (Gemini). Two dropdowns, each low, medium, or high, both starting at high. They replace the single sensitivity slider. Lower the start sensitivity if background noise keeps waking the agent.
  • Minimum speech length (Azure, realtime_speech_duration_ms). How much continuous speech is needed before the agent reacts. Range 1 to 10000 ms, default 80. Raise it to ignore brief noises like a cough.

Noise suppression (realtime_noise_suppression) is on by default for every realtime engine, and Hania applies each engine's strongest available cleanup. Turn it off only when callers are in studio-quality rooms and you want fully unprocessed audio.

Grok controls

Grok voice offers the widest set of live controls. All of these appear only when Grok is the selected engine.

SettingWhat it doesRange / default
Reasoning effort
realtime_reasoning_effort
How hard the model thinks before answering. High gives smarter answers and better tool use; none gives the fastest replies.High or none, default high
Speaking speed
realtime_speed
How fast the agent talks. 1.0 is normal.0.7 to 1.5, default 1.0
Language hint
realtime_language_hint
A hint about the language callers speak, to steer transcription. Leave empty for automatic detection.Text, empty by default
Key terms
realtime_keyterms
Words or phrases the agent should recognize accurately, such as product names. Up to 100 entries, each up to 50 characters.Up to 100 terms
Re-engagement timer
realtime_idle_timeout_ms
After this much silence the agent gently prompts a caller who has gone quiet. Leave empty to switch it off.Milliseconds, off by default
Exact greeting
realtime_verbatim_greeting
Speaks your greeting word for word instead of paraphrasing it, which also gets the first words out faster.On or off, off by default
Echo window
realtime_echo_threshold_ms
How aggressively the agent recognizes its own voice echoing back, so it does not mistake itself for the caller.Milliseconds, default 3000
Example: for a product-support line, add your product names and any account terms to Key terms so a caller reading out a model number is transcribed exactly, and set Reasoning effort to high so the agent handles multi-part questions well.

Speech recognition tuning: Scribe

When the recognition engine is Scribe, these appear on the Speech recognition card. They control how quickly a pause becomes the end of a turn.

SettingWhat it doesRange / default
Detection sensitivity
scribe_vad_threshold
How clear speech must be before it is treated as the caller talking.0 to 1, default 0.4
Minimum speech
scribe_min_speech_ms
The shortest sound treated as real speech, so brief noises are ignored.1 to 5000 ms, default 100
Minimum silence
scribe_min_silence_ms
The shortest gap treated as a real pause.1 to 5000 ms, default 100
End-of-turn silence
scribe_vad_silence_secs
How long the caller stays quiet before the agent takes its turn.0.1 to 5 seconds, default 0.5
Example: a support line for elderly callers might raise end-of-turn silence to 1.2 seconds so slower, more deliberate speech is never cut off mid-sentence.

Speech recognition tuning: Flux

When Flux is the recognition engine you get custom vocabulary (flux_keyterms) and language hints (flux_language_hints). Both are covered on the Speech recognition page.

Voice tuning: ElevenLabs

These appear when the selected voice is an ElevenLabs voice.

SettingWhat it doesRange / default
Style intensity
eleven_style
How much expressive style the voice puts into delivery. Higher is more dramatic; the most stable reading is at the low end.0 to 1, off by default
Speaking speed
eleven_speed
How fast the agent talks. 1.0 is normal.0.7 to 1.2
Speaker boost
eleven_speaker_boost
Sharpens the voice's resemblance to the original recording.On or off
Low-latency mode
eleven_auto_mode
Optimizes for the shortest time to the first word. Hania measured it as noticeably faster, so it is worth using on phone agents.On or off

Voice tuning: Sonic

These appear when the selected voice is a Sonic voice.

SettingWhat it doesRange / default
ModelWhich Sonic model synthesizes the voice. Sonic 3.5 is the newer option.Sonic 3 or Sonic 3.5
LanguageThe language the voice speaks in.Auto by default
Speed
cartesia_speed
How fast the agent talks. 1.0 is normal.0.6 to 1.5
Volume
cartesia_volume
How loud the voice is. 1.0 is normal.0.5 to 2.0
Emotion
cartesia_emotion
An overall tone for the voice: neutral, calm, angry, content, or sad.Neutral by default
PronunciationA list of words paired with how they should sound, so names and jargon are said the way you want.Optional

Expressive speech

Expressive speech lets the agent color its delivery to match the moment instead of reading in one flat tone. It shows sympathy when a caller describes a problem, warmth for good news, and a slower, clearer pace when it reads out something like a confirmation number.

The toggle appears for the voices that can act on that direction: Sonic voices, ElevenLabs voices, and Azure high-definition voices. For other voices it is hidden, because it would have nothing to work with.

An example of the difference it makes:

  • Caller: "I have been trying to fix this for an hour and I am really frustrated."
  • Agent, expressive on: a softer, slower "I am sorry this has taken so long. Let me get it sorted for you right now."
Azure high-definition voices adapt their tone automatically even with this toggle off. Turning it on for an ElevenLabs voice switches to the expressive model, which trades a little speed for a wider emotional range.

Caller presence

These controls decide what happens when a caller goes quiet, and they apply to both voice modes. Rather than end the call at once, the agent can check in a few times first.

SettingWhat it doesDefault
Away timer
vad_user_away_ms
How long the line stays silent on both sides before the agent starts checking in. Set it to zero to switch the whole behavior off.15 seconds
Check-insHow many times the agent prompts before it ends the call.3
IntervalHow long it waits between check-ins.10 seconds
Check-in instructionWhat the agent should say each time it checks in. You write the intent and the agent phrases it.A polite default
Example instruction: "The caller has gone quiet. Ask once, politely, if they are still there."

Call limits

Hania always keeps each voice response within a bounded time, so a caller is never left waiting on dead air. That protection is on for every voice bot without any setup.

  • Maximum call length (max_call_seconds) caps how long a single call can run before it wraps up.
  • The per-response time limit is an advanced setting that only tightens or loosens the bound Hania already applies to each reply. Most bots never need to touch it.