Many nodes in a flow always say the same thing: greetings, hold messages, confirmations, goodbyes. A static node pre-renders the audio for that message when the agent is saved and plays it back from cache at runtime. No LLM call. No TTS call. No latency.Documentation Index
Fetch the complete documentation index at: https://www.bolna.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
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
| Node type | Latency | Cost per turn |
|---|---|---|
| LLM node | ~800ms (LLM + TTS + audio) | LLM tokens + TTS characters |
| Static node | ~50ms (cached audio) | Zero |
Configuring a static node
Setnode_type to "static" and provide static_message:
Field reference
| Field | Type | Required | What it does |
|---|---|---|---|
node_type | "llm" or "static" | No (defaults to "llm") | Controls whether the node calls the LLM or plays cached audio. |
static_message | string | Yes when node_type == "static" | The exact text to speak. Audio is pre-generated from this when the agent is saved. |
repeat_after_silence_seconds | number | No | If set, replays the node’s response after this many seconds of user silence. Works on both static and LLM nodes. |
All three fields are optional with safe defaults. Existing graph agents that don’t use any of them behave exactly as before.
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.
