Currently the inbound webhook agent_override supports overriding voice config, LLM model settings, and various call behavior fields — but not general_tools.
Our use case: we have enterprise customers with customer-specific tool-call endpoints (e.g., a CRM lookup tool that only applies to one customer). Today we have to pre-register these tools on the LLM in the Retell UI. This works but has downsides:
- Can’t dynamically compile tools on our end based on caller context
- Can’t store/manage tool definitions in our backend with our custom system
- Can’t dynamically attach only tools needed for the call - prevent context rot
Proposed change: Allow agent_override.retell_llm.general_tools in the inbound webhook response (and create_phone_call API). This would let us dynamically attach tools on a per-call basis — same pattern as
dynamic_variables but for tool definitions.
Example response shape:
{
“call_inbound”: {
“agent_override”: {
“retell_llm”: {
“general_tools”: [
{
“name”: “lookup_banker”,
“type”: “custom”,
“url”: “``https://example.com/api/tool-calls”``,
“description”: “Look up a banker by name”,
“parameters”: { … }
}
]
}
},
“dynamic_variables”: { … }
}
}
Ideally this would be additive (merged with existing LLM tools) rather than a full replacement, with an option to replace if needed.
create_phone_call API is not as much of a priority as inbound webhook