System tools enable your assistant to update the internal state of a conversation. Unlike server tools or client tools, system tools don’t make external API calls or trigger client-side functions—they modify the internal state of the conversation without making external calls.
Some applications require agents to control the flow or state of a conversation. System tools provide this capability by allowing the assistant to perform actions related to the state of the call that don’t require communicating with external servers or the client.
Let your agent automatically terminate a conversation when appropriate conditions are met.
Enable your agent to automatically switch to the user’s language during conversations.
Seamlessly transfer conversations between AI agents based on defined conditions.
Transfer calls to external phone numbers or SIP URIs.
Enable the agent to skip their turns if the LLM detects the agent should not speak yet.
Enable agents to play DTMF tones to interact with automated phone systems and navigate menus.
Enable agents to automatically detect voicemail systems and optionally leave messages.
When creating an agent via API, you can add system tools to your agent configuration. Here’s how to implement both the end call and language detection tools:
When using a custom LLM with ElevenLabs agents, system tools are exposed as function definitions that your LLM can call. Each system tool has specific parameters and trigger conditions:
Purpose: Automatically terminate conversations when appropriate conditions are met.
Trigger conditions: The LLM should call this tool when:
Parameters:
reason (string, required): The reason for ending the callmessage (string, optional): A farewell message to send to the user before ending the callFunction call format:
Implementation: Configure as a system tool in your agent settings. The LLM will receive detailed instructions about when to call this function.
Learn more: End call tool
Purpose: Automatically switch to the user’s detected language during conversations.
Trigger conditions: The LLM should call this tool when:
Parameters:
reason (string, required): The reason for the language switchlanguage (string, required): The language code to switch to (must be in supported languages list)Function call format:
Implementation: Configure supported languages in agent settings and add the language detection system tool. The agent will automatically switch voice and responses to match detected languages.
Learn more: Language detection tool
Purpose: Transfer conversations between specialized AI agents based on user needs.
Trigger conditions: The LLM should call this tool when:
Parameters:
reason (string, optional): The reason for the agent transferagent_number (integer, required): Zero-indexed number of the agent to transfer to (based on configured transfer rules)Function call format:
Implementation: Define transfer rules mapping conditions to specific agent IDs. Configure which agents the current agent can transfer to. Agents are referenced by zero-indexed numbers in the transfer configuration.
Learn more: Agent transfer tool
Purpose: Seamlessly hand off conversations to human operators when AI assistance is insufficient.
Trigger conditions: The LLM should call this tool when:
Parameters:
reason (string, optional): The reason for the transfertransfer_number (string, required): The phone number to transfer to (must match configured numbers)client_message (string, required): Message read to the client while waiting for transferagent_message (string, required): Message for the human operator receiving the callFunction call format:
Implementation: Configure transfer phone numbers and conditions. Define messages for both customer and receiving human operator. Works with both Twilio and SIP trunking.
Learn more: Transfer to number tool
Purpose: Allow the agent to pause and wait for user input without speaking.
Trigger conditions: The LLM should call this tool when:
Parameters:
reason (string, optional): Free-form reason explaining why the pause is neededFunction call format:
Implementation: No additional configuration needed. The tool simply signals the agent to remain silent until the user speaks again.
Learn more: Skip turn tool
Parameters:
reason (string, optional): The reason for playing the DTMF tones (e.g., “navigating to extension”, “entering PIN”)dtmf_tones (string, required): The DTMF sequence to play. Valid characters: 0-9, *, #, w (0.5s pause), W (1s pause)Function call format:
Learn more: Play keypad touch tone tool
Parameters:
reason (string, required): The reason for detecting voicemail (e.g., “automated greeting detected”, “no human response”)Function call format:
Learn more: Voicemail detection tool
Yes, system tools can be used alongside server tools and client tools in the same assistant. This allows for comprehensive functionality that combines internal state management with external interactions.