weronika
03/06/2026, 12:14 PMAI Evy
03/06/2026, 12:14 PMAI Evy
03/06/2026, 12:14 PMgeneral_tools – available across all states
- tools within each individual state
The total tools available = general tools + state tools + state transitions [(1) ]()
2. Knowledge Base
If a knowledge base is attached to your agent via knowledge_base_ids, the agent can retrieve information from scraped webpages, uploaded files, or manually added text that may not appear directly in your prompts. [(2) ]()
3. Dynamic Variables
Your agent may have access to system default dynamic variables that are automatically provided, such as {{current_time}}, {{user_number}}, {{agent_number}}, {{call_id}}, and others—these don't need to be explicitly set. [(3) ]()
4. Default Dynamic Variables
There's also a default_dynamic_variables field where fallback values can be set at the agent level. These inject data into prompts even if not provided per-call. [(3) ]() [(1) ]()
What to check:
- Review your agent's general_tools and each state's tools configuration
- Check if any knowledge bases are attached
- Look at the default_dynamic_variables field in your LLM configuration
- Review the "Detail Logs" in your call history to see exactly which tools are being called
Would you like help troubleshooting a specific tool or piece of information your agent is using?AI Evy
03/06/2026, 12:14 PMAI Evy
03/06/2026, 12:14 PMweronika
03/06/2026, 12:15 PMweronika
03/06/2026, 12:16 PMAI Evy
03/06/2026, 12:16 PMAI Evy
03/06/2026, 12:16 PMgeneral_tools through the Retell LLM configuration. [(1) ]()
Via the API:
You can view your LLM's general_tools by retrieving it:
javascript
import Retell from 'retell-sdk';
const client = new Retell({
apiKey: 'YOUR_RETELL_API_KEY',
}) ;
const llmResponse = await client.llm.retrieve('16b980523634a6dc504898cda492e939') ;
console.log(llmResponse.llm_id) ;
[(2) ]()
You can update general_tools using:
javascript
import Retell from 'retell-sdk';
const client = new Retell({
apiKey: 'YOUR_RETELL_API_KEY',
}) ;
const llmResponse = await client.llm.update('16b980523634a6dc504898cda492e939', {
begin_message: 'Hey I am a virtual assistant calling from Retell Hospital.',
}) ;
console.log(llmResponse.llm_id) ;
[(3) ]()
What general_tools contains:
general_tools is a list of tools the model may call (to get external knowledge, call API, etc) . You can select from predefined tools like end call, transfer call, etc., or create custom tools. [(1) ]()
- Tools of LLM (with state) = general tools + state tools + state transitions
- Tools of LLM (no state) = general tools
Via the Dashboard:
In the Retell Dashboard, when editing your agent's LLM configuration, you should see the tools section where general_tools are configured. The API documentation shows the structure, but the Dashboard provides a visual interface for managing these same settings.AI Evy
03/06/2026, 12:16 PMAI Evy
03/06/2026, 12:16 PMweronika
03/06/2026, 12:16 PMAI Evy
03/06/2026, 12:16 PMAI Evy
03/06/2026, 12:17 PMgeneral_tools appears in the Retell Dashboard UI. The documentation primarily covers API access to general_tools. [(1) ]() [(2) ]() [(3) ]()
What I can confirm:
In the Dashboard, when you edit your agent's LLM configuration, the tools you add there correspond to general_tools (for agents without states) or a combination of general_tools and state-specific tools (for multi-prompt agents) . [(2) ]()
If you're using a single-prompt agent, the tools you see in the agent editor are your general_tools. If you're using a multi-prompt (states) agent, you may have tools configured at both the general level and within individual states.
To definitively see your general_tools configuration, you can retrieve it via the API:
javascript
import Retell from 'retell-sdk';
const client = new Retell({
apiKey: 'YOUR_RETELL_API_KEY',
}) ;
const llmResponse = await client.llm.retrieve('16b980523634a6dc504898cda492e939') ;
console.log(llmResponse.llm_id) ;
[(1) ]()
This will return the full LLM configuration including the general_tools array.
If you're seeing tools your agent uses that don't appear in your Dashboard view, retrieving the LLM via API will show you the complete picture of what's configured.AI Evy
03/06/2026, 12:17 PMAI Evy
03/06/2026, 12:17 PMweronika
03/06/2026, 12:17 PMAI Evy
03/06/2026, 12:17 PMAI Evy
03/06/2026, 12:17 PMbash
npm i retell-sdk
2. Create a JavaScript/TypeScript file in your project and add the code:
javascript
import Retell from 'retell-sdk';
const client = new Retell({
apiKey: 'YOUR_RETELL_API_KEY',
}) ;
const llmResponse = await client.llm.retrieve('16b980523634a6dc504898cda492e939') ;
console.log(llmResponse.llm_id) ;
[(2) ]()
3. Get your API key from the "API Keys" tab in your Retell Dashboard. [(1) ]()
4. Replace 'YOUR_RETELL_API_KEY' with your actual API key, and replace the LLM ID with your agent's LLM ID.
5. Run the file using Node.js (version 18.10.0 or higher required) .
If you prefer Python, you can use:
python
from retell import Retell
client = Retell(
api_key="YOUR_RETELL_API_KEY",
)
[(3) ]()
The response will include your full LLM configuration, including general_tools. [(2) ]()AI Evy
03/06/2026, 12:17 PMAI Evy
03/06/2026, 12:17 PMweronika
03/06/2026, 12:22 PMAI Evy
03/06/2026, 12:22 PMAI Evy
03/06/2026, 12:23 PMAI Evy
03/06/2026, 12:23 PMAI Evy
03/06/2026, 12:23 PMweronika
03/06/2026, 12:27 PMAI Evy
03/06/2026, 12:27 PMAI Evy
03/06/2026, 12:28 PM{{variable_name}} syntax in your endpoint URL. [(1) ]()
Key steps:
1. Use the correct syntax – Variables must be wrapped in double curly braces {{}}, not single braces {}. A common issue is using {variable} instead of {{variable}}. [(2) ]()
2. Extract the variable first – Before calling the function that uses the variable in its URL, you need to extract it using the Extract Dynamic Variables tool. The variable must be populated before the API call is made. [(3) ]()
3. Example URL format:
<https://api.example.com/appointments/%7B%7Bappointment_id%7D%7D/details>
[(1) ]()
4. For query parameters:
<https://api.example.com/Patient?name=%7B%7Bname%7D%7D&birthdate=%7B%7Bbirthdate%7D%7D>
[(2) ]()
Common troubleshooting:
- Ensure the variable name in your URL matches exactly (case-sensitive) what you named it when extracting [(3) ]()
- Verify the extract variable tool runs before the function call that uses it
- Check collected_dynamic_variables in your call details to confirm the variable has a value when the tool is invoked
Dynamic variables can be used in custom function URLs, tool descriptions, property descriptions, and query parameters. [(1) ]()AI Evy
03/06/2026, 12:28 PMAI Evy
03/06/2026, 12:28 PM