basePrompt, greeting,
context, customInstructions — plus questions. They are not concatenated
naively. Understanding the assembly is the difference between an agent that
holds character and one that drifts.
What the model actually receives
context does not produce a prompt that
jumps from 1 to 3.
basePrompt is not the whole prompt. On browser and API calls a block of
spoken-output rules is prepended, instructing the model to spell out digits,
dates, times, and symbols before they reach text-to-speech. Telephony calls
omit it. This is why the same agent can phrase numbers differently depending
on how you reach it.Who speaks first changes the prompt
Outbound overrides
firstSpeaker entirely. You cannot make an agent talk
first on an outbound call, and you should not want to — talking over someone’s
“hello” is the fastest way to get hung up on.
Field by field
basePrompt — identity
Who the agent is. Role, tone, and above all its boundaries.
basePrompt is empty the agent falls back to a generic “You are an AI
assistant.” Never ship that.
greeting — the opening line
Spoken verbatim, not paraphrased. Write it as speech:
If you need a recording notice, put it here.
interruptible: false guarantees
it is actually heard.context — the facts
Background the agent can state. Stable, specific, short.
customInstructions — the rules
What the agent must always or never do. Imperatives, one per line.
questions — what to find out
Information the agent should work toward gathering. Guidance, not a script — it
will not interrogate.
Why the layering matters
It is tempting to put everything inbasePrompt. Resist it.
Identity and facts serve different purposes. Mixed together, the model cannot
tell which parts are its character — permanent — and which are merely true this
month. That is what produces an agent which slowly stops sounding like itself,
or which defends a stale opening hour as though it were a personality trait.
Keeping them separate also means updating a price does not risk rewriting the
personality.
Testing
Test in the language the agent will actually speak. An agent that performs well in English can behave differently in Finnish or Spanish — different phrasing, different pacing, different failure modes. Then try to break it:- Ask something it cannot know — does it admit that, or invent?
- Interrupt mid-sentence — does it recover?
- Go silent — does the inactivity handling feel natural?
- Go off-topic — does it come back gracefully?
- Ask it to do something it must refuse — does the boundary hold?
Build an agent
The full setup walkthrough.
Call behaviour
Interruptions, silence, duration, who speaks first.