update_agent
Update agent configurations by changing only specified fields while preserving all others. Deep-merges nested settings, enabling precise adjustments to voice, transcriber, tools, and more.
Instructions
Update any part of an agent's configuration.
Only the fields you provide are changed — everything else stays as-is. The backend deep-merges your changes, so you can update a single field inside a nested config without affecting sibling fields.
Two ways to update
Named parameters — for common changes:
update_agent(agent_id="...", temperature=0.5, voice_speed=1.1)config parameter — for any section not covered by named params. Use get_agent first to see the current structure, then pass sections. Named params always override the corresponding section in config.
IMPORTANT: provider field required for voice/transcriber
The backend uses discriminated unions — voice and transcriber sections
MUST include the provider field or validation fails. Always pair
voice_id/voice_model/voice_speed with voice_provider. Same for transcriber.
Available config sections
config={
"turn_detection": {
"mode": "semantic_vad", # or "vad"
"min_delay": 0.5,
"max_delay": 6.0,
"endpointing_mode": "dynamic"
},
"timeout": {
"enabled": True,
"trigger_seconds": 15.0,
"warning_messages": ["Are you still there?"],
"final_message": "Goodbye!"
},
"background_audio": {
"ambient": {"enabled": True, "source": "office_ambience", "volume": 0.3},
"thinking": {"enabled": True, "source": "keyboard_typing", "volume": 0.5}
},
"tools": {
"rag": {"enabled": True, "knowledge_base_ids": ["kb-id"], "top_k": 5},
"voicemail": {"enabled": True, "action": "hangup"},
"hangup": {"enabled": True, "keywords": ["goodbye", "bye"]}
},
"transfer": {
"enabled": True,
"mode": "blind",
"destinations": [{"name": "Support", "number": "+15551234567",
"description": "Human agent", "keywords": ["human"]}]
},
"analytics": {
"recording": {"enabled": True},
"summary": {"enabled": True},
"success_evaluation": {
"enabled": True,
"criteria": "Did the agent resolve the issue?",
},
},
"tts_text_transforms": ["filter_markdown", "filter_emoji"],
"preemptive_generation": False,
"min_consecutive_speech_delay": 0.0
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| tags | No | ||
| config | No | ||
| agent_id | Yes | ||
| language | No | ||
| voice_id | No | ||
| is_active | No | ||
| max_tokens | No | ||
| brain_model | No | ||
| description | No | ||
| temperature | No | ||
| voice_model | No | ||
| voice_speed | No | ||
| instructions | No | ||
| first_message | No | ||
| brain_provider | No | ||
| voice_provider | No | ||
| max_call_duration | No | ||
| transcriber_model | No | ||
| interruption_enabled | No | ||
| transcriber_provider | No | ||
| first_message_delay_ms | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||