Dynamic tools
Dynamic tools let you connect any HTTP API to the AI — turning external services into capabilities the model can call on its own. You define each tool entirely inside the app using the tool builder: no code, no config files, no deployment.
For the ready-to-use tools that ship with the platform, see Built-in tools. To attach a dynamic tool to an agent, see the Agents guide.
Opening the tool builder
Go to Settings → Tools and click New tool. The tool builder opens as a form with sections for identity, endpoint, parameters, and authentication.
Defining your tool
Name and description
Give your tool a short, unique name — for example, get_weather or search_products. Use lowercase letters and underscores; spaces are not allowed. The name is how the model refers to the tool internally.
The description is the most important field. Write a plain-English explanation of what the tool does and, crucially, when to use it. The model reads the description to decide whether invoking the tool would help answer the current message. A precise description leads to accurate, timely calls; a vague one leads to missed or unwanted calls.
Endpoint and method
Enter the full URL of the API endpoint the tool should call — for example, https://api.example.com/v1/products/search. Then choose the HTTP method: GET, POST, PUT, or DELETE.
You can embed path parameters directly in the URL using double-brace notation: https://api.example.com/orders/{{order_id}}. Any placeholder you add here must also be declared as an input parameter below.
Input parameters
Use the Add parameter button to define each piece of information the model must supply when it calls your tool. For each parameter, specify:
- Name — the parameter key (e.g.
query,limit) - Type —
string,number,boolean, orarray - Description — what value to provide and any constraints (e.g. "Maximum number of results to return, between 1 and 50")
- Required — toggle on if the model must always supply this parameter
The builder generates a JSON schema definition from your inputs. Here is what that definition looks like for a weather lookup tool:
{
"name": "get_weather",
"description": "Fetch current weather conditions for a city or location. Use this whenever the user asks about current weather, temperature, wind, or forecast.",
"method": "GET",
"url": "https://api.weatherapi.com/v1/current.json",
"parameters": {
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "City name (e.g. 'London') or latitude,longitude pair (e.g. '51.5,-0.1')"
}
},
"required": ["q"]
}
}Authentication and secrets
If your API requires an access token or API key, add it under the Authentication section of the builder. Paste your secret into the provided field and choose how it should be sent — as a header (e.g. Authorization: Bearer …) or as a query parameter. The value is saved securely in Settings and is never exposed in the chat or to other users.
Keep secrets in Settings, not in descriptions
Never paste API keys or passwords into the tool name, description, or parameter fields — those values are visible to the model and may appear in tool-use traces. Use the Authentication section so the credential is injected server-side at call time.Saving and enabling the tool
Click Save tool when you are done. The tool immediately appears in the tools list for every chat and in the Enabled tools section of the agent builder. Enable it per conversation using the wrench-icon panel, or attach it permanently to an agent.
How the model calls your tool
Once a dynamic tool is enabled, the model treats it like any other tool. When a user message matches the scenario described in the tool's description, the model generates a call with the required parameters filled in. The platform then makes the HTTP request on the model's behalf, receives the response, and feeds the result back to the model so it can continue its reply.
The full tool-call trace — including the request payload and the response — is visible in the chat as a collapsible block.
Editing and deleting tools
Return to Settings → Tools at any time to edit a tool's name, description, endpoint, parameters, or authentication. Changes take effect immediately across all conversations and agents that have the tool enabled. To remove a tool, click the overflow menu next to it and select Delete.
Prefer read-only endpoints
A dynamic tool is an action surface the model can trigger without further confirmation. Where possible, useGET endpoints so the tool can only read data. If you must use a write endpoint, keep the scope as narrow as possible and review tool-use traces regularly for unexpected calls.