repeat_after_silence_seconds is a related setting that auto-replays a node after N seconds of user silence and exposes a _silence_repeats counter so expression edges can escalate after a few silent rounds (offer help, transfer, hang up).
Latency and cost
Configuring a static node
Setnode_type to "static" and provide static_message:
Field reference
All three fields are optional with safe defaults. Existing graph agents that don’t use any of them behave exactly as before.
Multilingual static messages
For a multilingual agent,static_message can be a per-language map instead of a single string. At runtime the node speaks the variant that matches the caller’s active language, and the platform pre-generates a separate cached clip for each language using that language’s voice.
{ "language_code": "text" } format used by system messages like call_hangup_message and check_user_online_message.
A plain-string
static_message keeps working unchanged, so add a map only when you want per-language audio.How the multilingual audio is built
When you save the agent, the platform pre-generates one cached clip per language variant, each rendered with that language’s configured voice. At call time the clip for the active language streams from cache with the same instant playback and zero cost as a single-language static node. If a language has no dedicated voice in your multilingual settings, its clip falls back to the agent’s primary voice.Silence repeat
Whenrepeat_after_silence_seconds is set and the user goes quiet:
- The silence timer fires after the configured seconds.
_silence_repeatsincrements by 1.- Expression edges are evaluated. If one matches
_silence_repeats, the agent transitions. - Otherwise the node replays. A static node plays the same cached audio (zero cost). An LLM node regenerates with
[silence]in the conversation history and rephrases naturally. _silence_repeatsresets to0on any transition out of the node.
Example: greeting with silence fallback
Play a greeting. If the user is silent, repeat up to 3 times, then hang up.- Cached audio plays instantly.
- User silent for 8s, audio replays (
_silence_repeats = 1). - Still silent, replays (
_silence_repeats = 2). - Still silent, replays (
_silence_repeats = 3), expression matches, transitions togoodbye.
Example: LLM node with silence nudge
The same pattern works on LLM nodes. The LLM sees[silence] in conversation history and rephrases without any extra prompt engineering on your part.
When the cache is built
Audio for every static node is generated when you save the agent, using the agent’s configured TTS voice. At call time the cached audio is streamed directly, no LLM or TTS call. If you changestatic_message later, re-save the agent so the cache regenerates with the new text.
