Build your agent
AI reply
The AI answers out loud, word by word, so the caller hears it sooner. Best for normal chat.
Type: llm-streaming.
What it does
- Builds the AI's instructions from the prompt template, your
system_prompt, and the shape of the reply. - Adds this turn's input (each name in
input_variableswith its value) to the step's memory (history_key). - Streams the reply. The pipeline speaks
speakas the words arrive, ends the call after speaking if the reply setshangup, and usesinterruption_typeif the reply includes one. - Saves the exchange to memory. The reply's fields are not saved to the call's state.
Settings
Everything goes in the step's parameters. In the editor, click the step to open its settings.
system_promptstring- In the editor: Instructions. Tell the agent who it is, what to do and how to talk. Default:
"". modelstring- In the editor: Model. Which AI writes the reply. The provider comes with it. Default:
"openai/gpt-oss-120b". llm_return_type{ name: { type, description } }- In the editor: What it decides (More tab). Things the AI fills in every turn. The spoken reply is what the caller hears; the rest goes to your webhook.
interruption_typestring- In the editor: If the caller interrupts. What happens when the caller talks over the agent. Default:
"full". input_variables{ name: { type, description } }- In the editor: What it reads (More tab). Information from earlier steps the AI can use.
history_keystring- In the editor: Shared memory (More tab). Steps with the same name here remember the same conversation. Default:
"conversation_history". summariserboolean- In the editor: Summarise long calls (More tab). Keeps long conversations quick by summarising older turns.
stream_timeoutnumber (seconds)- In the editor: Give up after (More tab). When two AI replies race, drop this one if it takes longer than this.
interruption_typestring- What happens if the caller talks while this is being said. See Interruptions. Default
"full". interruption_metadataobject- Numbers for the timed and length-based interruption types:
duration(seconds),length(words),ignore-words. interruption_type_keystring- Read the interruption type from this value in the state instead, so an earlier step can decide it.
interruption_metadata_keystring- The same, for the interruption numbers.
prompt_templatestring- Built-in instructions to start from. See Prompt templates. Default
"base_llm". summariser_configobject- Tune
summariser. See Memory.
Examples
A chatty receptionist
The usual conversational step:
{ "type": "llm-streaming", "parameters": { "system_prompt": "You are the receptionist at Sunrise Dental. Be warm and brief.", "service": "groq", "model": "openai/gpt-oss-120b", "input_variables": { "user_input": { "type": "str", "description": "What the caller said." } }, "llm_return_type": { "speak": { "type": "str", "description": "What to say." }, "hangup": { "type": "bool", "description": "True to end the call." } }, "history_key": "conversation_history" }, "next": "ask_for_input"}