- Omitted means unchanged. Pass only what you want to change.
- Settings are agent-wide. One change reaches every voice of the agent.
- It takes effect on the next call. Calls already in progress keep the settings they started with.
update() returns the stored Agent. Read it again at any time with
client.agents.get(agent_id).
The examples use the my-support agent from the
Quickstart and assume your .env is set up as
described there.
Read the current settings
read_agent.py
None means the agent uses the platform default for that
setting.
Change the voice
Swap the agent’s voice profile in place. The brain, number, and call history stay as they are.update_voice.py
voice_profile takes a profile name (case-insensitive) or its
profile_id - list them with
client.voice_profiles.list().
To run several voices on one agent - for example one per language - add
voices instead of replacing one:
<voice_profile_id> from agent.voices[i].voice_profile_id.
Change the greeting
Change the phone number
Passnumber= to attach a number to the agent, or to move a number that
another of your agents is using:
update_number.py
Output
- Free number in your org → it is attached.
- Number already on another of your agents → it moves here. No detach needed; inbound calls follow it to this agent.
- Only your organization’s numbers can be used. Any other number returns
404.
not_assigned and can
be attached again):
When you pass
number= together with other settings, the settings are saved
first. If the number step then fails, the other settings stay saved -
re-run with just number= once you fix the cause.Background sound
A background sound plays a quiet room ambience under the agent’s voice, so the call sounds like a real office instead of studio silence.background_sound.py
Output
To turn the sound off, use the switch - the chosen room is kept, so
turning it back on needs no other change:
Noise cancellation
Noise cancellation cleans up the caller’s audio before the agent hears it - traffic, fans, TV, a crowded street. It changes what the agent understands, never how the agent sounds.noise_cancellation.py
Output
Not setting the field at all leaves the platform default in charge, which
is not the same as
"none". Once you set a value, you cannot reset
the agent to “platform default” - name the canceller you want instead.
If a canceller’s model or licence is missing on the server, the call still
runs - just without filtering. An accepted value is not proof the
canceller loaded.
Mute the caller during the greeting
By default the agent ignores the caller’s audio until its first reply has finished playing. Without this, a caller saying “hello?” over the greeting is transcribed as their first turn and the agent answers it. Turn it off for an agent that must react the moment the caller speaks:Who speaks first
"agent" (default) - the agent opens with its greeting.
"user" - the agent waits for the caller to speak first.
Recording and call limits
The LLM the brain runs on
provider/model form - a bare model name such as "gpt-4.1-mini"
is rejected because the prefix is what routes the request. Not set means
the platform’s default model.
Change the brain
Silence timeout (built in)
If the caller says nothing, the agent checks in and then ends the call:- After about half of the timeout, the agent says “Are you still there?”
- It asks once more shortly before the timeout.
- At the timeout (60 seconds of silence by default) the call ends with
end_reason="IDLE_TIMEOUT".
All update arguments
Next steps
Handover & follow-up
Transfer to a human, voicemail message, automatic callbacks.
Domain dictionaries
Fix misheard product names and pronunciations.
Analytics
Structured data from every call.