Tools
A tool is a function the LLM can invoke mid-conversation. Tools come in four kinds:
Worker built-ins - end_call, transfer_to_number, transfer_to_agent, play_keypad_touch_tone, skip_turn. No HTTP; they run in the agent process in milliseconds.
Your backend. Any business logic - look up an order, book an appointment, charge a card. Signed with HMAC-SHA256.
The caller’s browser or SDK. UI actions - navigate the page, fill a form, update a cart. Dispatched over the session’s tools data channel.
A customer-hosted Model Context Protocol server. The worker opens the configured transport at session start, discovers remote tools, and proxies tool calls through.
Webhook, client, and MCP tools are created once and attached to any number of agents; system built-ins are added directly to an agent. To wire them up, see Add tools.
Parameters
Every tool declares the parameters the LLM may pass:
type is one of string, number, integer, or boolean. A string parameter can also declare an enum of allowed values.
How invocations are recorded
Every tool call is persisted on the transcript with role=tool, tool_name, tool_args, and tool_result - available via GET /v1/agents/conversations/{id}/messages.