1
Dynamic
The model will choose which values to pass. These are the parameters you’d use for a single-generation LLM API.
2
Static
This value is known when the tool is defined and is unconditionally set on invocations. The parameter is not exposed to or set by the model.
3
Automatic
Like “Static”, except that the value may not be known when the tool is defined but will instead be populated by the system when the tool is invoked.
Dynamic Parameters
Dynamic parameters will have their values set by the model. Creating a dynamic parameter on a tool looks like this:Adding a dynamic parameter to a tool
Parameter Overrides
You can choose to set static values for dynamic parameters when you create an agent or start a call. The model won’t see any parameters that you override. When creating a call simply pass in the overrides with each tool, as below. You should also consider overriding the tool name or description to give the model a more specific understanding of what the tool will do in this case.Overriding a dynamic parameter with a static value
Static Parameters
If you have parameters that are known at the time you create the tool, static parameters can be used. Static parameters are not exposed to or set by the LLM.Adding a static parameter to a tool
Parameter Overrides
Static parameters can also be overridden when you create an agent or start a call. This is most useful with built-in tools. For example, the built-inqueryCorpus
tool allows you to statically override max_results
.
See queryCorpus Tool → for more.
Automatic Parameters
Automatic parameters are used when you want a consistent, predictable value (not generated by the model) but you don’t know the value when the tool is created. Here are some of the most common automatic parameters:knownValue | Description |
---|---|
KNOWN_PARAM_CALL_ID | Used for sending the current Ultravox call ID to the tool. |
KNOWN_PARAM_CONVERSATION_HISTORY | Includes the full conversation history leading up to this tool call. Typically should be in the body of a request. |
KNOWN_PARAM_CALL_STATE | Includes arbitrary state previously set by tools. See Guiding Agents. |
Adding an automatic parameter to a tool
Required Parameter Overrides
Sometimes your tool will require a parameter to function that you need to have defined when the call is created instead of having the model come up with a value. In these cases, you can require that the parameter be overridden at call creation. For example, the built-inqueryCorpus
tool requires the corpus id to be specified during call creation.
More advanced information can be found in Parameter Overrides →