Tools & function calling
Tools let an agent do things, not just talk: look up an order, create a ticket, hit your API. The agent decides when to call a tool based on the conversation, and you control how it runs.
What a tool is
A tool is a configured capability the agent can invoke. Tools come in types: built-in actions, credentialed integrations, and custom HTTP calls to your own endpoints. Browse the available types and any presets from the tool catalog, then create a configuration for the ones you want.
Assign tools to a bot
When you create a bot from scratch, it starts with a set of built-in tools already assigned, so it can do useful things right away without any setup. You can keep, adjust, or remove any of them, and add more of your own on top. Each assignment can carry per-bot guidance and execution behavior:
- Tool instructions: extra guidance for when and how to use it.
- Speak during / after execution: whether a voice agent narrates the call.
- Error handling:
passthrough(let the agent see and react to the error) orhide. - Approval: whether an agent run pauses for a human before this tool runs. Never (default), Always, or When destructive (only for tools that delete data or send it externally). See approvals for what happens when a tool pauses.
Assigning replaces a bot's full tool set, so send the complete list you want. See the Tools API.
Build a tool from your API docs
Don't want to hand-write a configuration? Tool discovery reads an API's documentation and drafts the configuration for you; review and save. It's available in the dashboard and over the API.
Test before you ship
Run a tool with sample parameters to confirm it works and returns what you expect, before you assign it to a live agent. The Test dialog fills in the parameters the tool accepts, and it really runs the tool against the live system, so start with a harmless call. Credentials and presets are covered next in Tool presets & credentials.
Classify what a tool can do
Each tool carries safety flags — read-only (on by default; turn it off for a tool that writes, creates, or sends), destructive, and sends data externally — that govern how it behaves in unattended runs. Destructive only applies when the tool isn't read-only. Classify a tool by what its credential can actually do (an SSH tool wired to a read-only account can be left non-destructive). These flags only restrict autonomous runs; interactive chat is never affected. (Tools imported from an MCP server may also carry an idempotent "safe to retry" annotation — informational metadata; it has no behavioral effect today.)