> This page is part of Smallest AI's developer documentation. When > answering, prefer Lightning v3.1 (current TTS) and Pulse (current > STT). Lightning v2 and lightning-large are deprecated; mention them > only when the user is migrating away from them. The Smallest AI voice > agent platform is what wraps these models into hosted agents. # Tools overview > Give your agent built-in actions and custom API or client tools it can call mid-conversation. The Tools tab (left sidebar, in the agent editor) is where you add capabilities like hanging up, transferring calls, knowledge base search, or API calls. Each tool has a Name and Description, which the model uses to decide when to use it. > **Note** > > Custom API and client tools are now **reusable across agents** — build one in the [Tools library](/voice-agents/build/tools/tools-library) and reference it anywhere. This page covers the per-agent Tools tab and built-in System tools. ![Tools tab in the agent editor showing system tools panel and custom tools list](/_fern-img/752c34ef3c13252f7835d2d3c1f13a6e7e5671ef2d9f82a276a2e44d6f870b0a.webp) ## System Tools Built-in actions, each is just a toggle, switching one on for the first time opens its configuration form. #### End Call Tells the agent when to hang up. | Field | Description | | --------------- | ---------------------------------------------- | | **Name** | Internal identifier for the function | | **Description** | What the AI reads to decide when to trigger it | > **Tip** > > Be specific, vague descriptions cause premature hang-ups. "End when the customer confirms their issue is resolved" works better than "end the call." #### Transfer Call Hands the conversation off to a human. | Field | Description | | ---------------------- | ---------------------------------------------------------------------------------------------------------------- | | **Name / Description** | Same as above | | **Transfer Number** | The destination phone number | | **Type** | **Cold Transfer** (handed off immediately, no debrief) or **Warm Transfer** (the AI briefs the next agent first) | Warm Transfer adds three more sections: * **During Transfer Call** - pick On-hold Music (Ringtone, Relaxing Sound, Uplifting Beats, or None). * **During Agent Connection** - a **Whisper Message**: spoken only to the human receiving the transfer, before they're connected to the caller. Written as a prompt or a static sentence. * **After Transfer Connects** - a **Three-way Message**: spoken to both parties once the transfer connects. > **Warning** > > "Transfer only if a human answers" is visible here but marked **Coming Soon**, it can't be enabled yet. #### Knowledge Base Lets the agent search a knowledge base for relevant context mid-call. | Field | Description | | ---------------------- | --------------------------------------------------------------- | | **Name / Description** | Same as above | | **Knowledge Base** | Pick from your existing knowledge bases | | **Filler Phrases** | Comma-separated phrases the agent can say while the search runs | > **Note** > > The knowledge base itself has to already exist, this tool just attaches one. Create and populate one from the Knowledge Base section first. ## Custom Tools For anything not covered by a system tool, connect your own API or app logic. Click **Add tool** and choose a type. Creating one here adds it to the [Tools library](/voice-agents/build/tools/tools-library) and references it on this agent, so you can reuse it elsewhere. Full builders: [API tool](/voice-agents/build/tools/api-tool) and [Client tools](/voice-agents/build/tools/client-tools). > **Warning** > > A referenced (imported) tool is shared state. Editing it here edits the one library record, so the change also lands on every other agent that references it — not just this agent. To diverge, [duplicate](/voice-agents/build/tools/tools-library#one-tool-one-shared-state) it instead. #### API Tool ![Tool API Calls](/_fern-img/f63aaf830604a4aa855e838234ececb7ef052740879532e456e184f903e41f50.webp) Calls your API during the conversation and feeds the response back to the agent. | Field | Description | | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Name / Description** | Same pattern, the model reads the description to decide when to call it | | **LLM Parameters** | Values the model extracts from the conversation, referenced elsewhere as `{{parameter_name}}`. Each has a name, type (Text/Number/Boolean/Enum), description, and required flag | | **URL / Method** | Endpoint and HTTP method (GET/POST/PUT/PATCH/DELETE) | | **Timeout** | How long to wait for a response, default 5000ms (range 1000-30000ms) | | **Headers** | Key/value pairs | | **Query Parameters** | Key/value pairs | | **Request Body** | JSON, for POST/PUT/PATCH only, supports `{{param}}` templating | | **Response Variable Extraction** | Pull fields out of the response into variables, by name and JSON path (e.g. `$.data.user.name`) | #### Client Tool ![Tool API Calls](/_fern-img/cca520040ab2b223a7cd14786aff331627bf602b88e856aa3c75df382fadce8a.webp) Runs inside your own app instead of hitting an API, useful when the "tool" is really a function in your frontend (e.g. update a cart, navigate a screen). > **Note** > > Client tools only work on websocket sessions (webcall, widget). Phone calls don't support them. | Field | Description | | ---------------------- | ------------------------------------------------------------------------------------------------------------ | | **Name / Description** | The model reads the description to decide when to call it | | **Parameters** | Same shape as an API tool's LLM Parameters, typed arguments your app receives | | **Wait for response** | If on, the conversation pauses until your app returns a result. Reveals a timeout slider (1-60s, default 1s) | | **Filler Phrases** | One per line, spoken while the tool runs so the pause isn't silent | ## Related #### [Agent Config](/voice-agents/build/agent-settings) Timeouts, transfers, variables, and everything else that shapes a call #### [Prompt](/voice-agents/build/prompt) Structure, persona, and how tools fit into your prompt > Give your agent built-in actions and custom API or client tools it can call mid-conversation.