agent_id | string | Yes | The agent ID, e.g. agent_abc123 |
version_number | string | Yes | The draft version number to update, e.g. 0 — from get_agent |
title | string | No | Display name for the agent |
description | string | No | Internal description of what the agent does |
agent_type | string | No | Single_Prompt_Agent (default, one system prompt) or Conversational_Flow_Agent (CFA — a more freeform persona-driven agent built from agent_identity + agent_background instead of a single scripted prompt). If you’re building a CFA step by step with the user: first ask what the agent’s role/identity is (who it is, its purpose), then what background/context it should know, then any specific behavior rules — set agent_identity, agent_background, and prompt_text from those answers respectively. Both agent_identity and agent_background are REQUIRED (non-empty) when agent_type is Conversational_Flow_Agent — the call fails otherwise. |
agent_identity | string | No | Required (non-empty) when agent_type is Conversational_Flow_Agent — who the agent is and its role/purpose. Not used by Single_Prompt_Agent. |
agent_background | string | No | Required (non-empty) when agent_type is Conversational_Flow_Agent — background/context the agent should know. Not used by Single_Prompt_Agent. |
folder_id | string | No | Folder ID to file this agent under, e.g. from list_organization_folders |
prompt_text | string | No | The agent’s system/behavior prompt |
welcome_message | string | No | First thing the agent says when a call connects |
language_id | string | No | Language ID, e.g. lang_abc123 — from list_languages |
voice_id | string | No | Voice ID, e.g. voice_abc123 — from list_voices |
llm_id | string | No | LLM ID, e.g. llm_abc123 — from list_llms |
transcriber_id | string | No | Transcriber ID, e.g. trs_abc123 — from list_transcribers |
extra_config | object (free-form) | No | Any other CreateAgentDto/UpdateAgentDto field not listed above (voice_speed, kb_max_chunks, fallback settings, etc.). ID-shaped fields are normalized the same as the named fields above — pass them in their normal prefixed form as returned by other tools: knowledge_base_ids (kb_…, from list_knowledge_base_documents), inbound_phone_number_id/outbound_phone_number_id (phn_…), webhook_id (webhook_…), llm_fallback_model/fall_back_llm_id/post_call_analysis_llm_id (llm_…), stt_fallback_transcriber_id (trs_…), fallback_voices[].voice_id (voice_…). Everything else is passed through as-is. Use get_agent on a similar existing agent to see the full field shape first. |