Build your agent
AI settings
Settings shared by the AI steps: instructions, prompt templates, models and failover, what it reads and decides, memory and emotion.
Instructions
system_prompt tells the AI who it is, what to do and how to talk. Write it as you'd brief a new colleague: the business, the goal of the call, what to collect, what never to say. Keep spoken style in mind: short sentences, no lists or markdown.
Prompt templates
prompt_template adds built-in guidance before your instructions. Join several with +, for example "base_llm+zero_echoing".
| Template | Adds |
|---|---|
base_llm | General voice-agent behaviour. The default. |
hinglish_llm | Natural Hinglish (Hindi–English mixing) for Indian callers. |
sales | How to sell: discovery, objections, next steps. |
slot_filling | Collecting a set of details naturally, one at a time. |
zero_echoing | Stops the agent repeating the caller back (“So you want…”). |
web_navigation | Used by Guide on website. |
Models and failover
Set service and model together (the editor's Model picker does both):
| service | model | Notes |
|---|---|---|
Groq (groq) | openai/gpt-oss-120b | GPT-OSS 120B · Smartest. Best at following long instructions. A little slower. |
Groq (groq) | openai/gpt-oss-20b | GPT-OSS 20B · Quick. Very fast. Great for short acknowledgements like “Got it”. |
OpenRouter (openrouter) | google/gemini-2.5-flash | Gemini 2.5 Flash · Fast. Quick and good at many languages. |
OpenRouter (openrouter) | anthropic/claude-sonnet-5 | Claude Sonnet 5 · Careful. Very good at nuance and following rules. Slower to start. |
OpenRouter (openrouter) | openai/gpt-5-mini | GPT-5 mini · Balanced. Solid reasoning at a good speed. |
Sarvam (sarvam) | sarvam-m | Sarvam M. Tuned for Indian languages and Hinglish. |
If the provider fails, or takes longer than 20 seconds (10 seconds to the first word when streaming), the turn is retried once on the next provider in the configured fallback order, with that provider's default model. Once an AI reply has started speaking it isn't switched mid-sentence. If both fail, the agent says its fallback line.
What it reads
input_variables lists the values the AI is given each turn, each with a description. They're sent as lines of name : value. Usually just user_input; add others (a looked-up booking, the caller's name) to give it more to go on.
What it decides
llm_return_type is the shape of the AI's answer: each field with a type and a description the AI reads. speak is what's said and hangup ends the call. Add your own and describe the allowed values clearly; an AI decision saves them for Branch, Say and your webhook.
"llm_return_type": { "speak": { "type": "str", "description": "What to say to the caller." }, "hangup": { "type": "bool", "description": "True once the conversation is over." }, "outcome": { "type": "str", "description": "One of: booked, callback, not_interested" }}Memory
Each AI step remembers the conversation under history_key. Steps with the same key share one memory; give a step its own key to keep it separate (for example, a quick acknowledgement model).
summariser (on unless you turn it off) keeps long calls fast: once the memory passes a few turns or about 1,000 words, older turns are folded into a short summary that keeps names, numbers and decisions. Tune it with summariser_config:
max-turnsnumber- Summarise after this many turns. Default
2. max-lennumber- Or after this many words. Default
1000. leave-lastnumber- Recent turns kept word for word. Default
1. service / modelstring- The model that summarises. Default Groq
openai/gpt-oss-20b. promptstring- Your own summarising instructions.
Emotion
On an AI decision, emotion: true teaches the AI to add voice cues such as [laughs] or [whispers] in speak. emotion_tts picks the cue style; eleven_v3 matches the ElevenLabs v3 voice model, which performs them. With any other voice the cues would be read out, so leave it off. See Emotion.
Next steps
- AI reply: the streaming AI step.
- AI decision: the deciding AI step.