Create tool

POST

Creates a Tool that can be added to an EVI configuration.

Refer to our tool use guide for comprehensive instructions on defining and integrating tools into EVI.

Request

This endpoint expects an object.
namestringRequired

Name applied to all versions of a particular Tool.

parametersstringRequired

Stringified JSON defining the parameters used by this version of the Tool.

These parameters define the inputs needed for the Tool’s execution, including the expected data type and description for each input field. Structured as a stringified JSON schema, this format ensures the Tool receives data in the expected format.

version_descriptionstringOptional

An optional description of the Tool version.

descriptionstringOptional

An optional description of what the Tool does, used by the supplemental LLM to choose when and how to call the function.

fallback_contentstringOptional

Optional text passed to the supplemental LLM in place of the tool call result. The LLM then uses this text to generate a response back to the user, ensuring continuity in the conversation if the Tool errors.

Response

Created

tool_type"BUILTIN" or "FUNCTION"
Allowed values: BUILTINFUNCTION

Type of Tool. Either BUILTIN for natively implemented tools, like web search, or FUNCTION for user-defined tools.

idstring

Identifier for a Tool. Formatted as a UUID.

versioninteger

Version number for a Tool.

Tools, Configs, Custom Voices, and Prompts are versioned. This versioning system supports iterative development, allowing you to progressively refine tools and revert to previous versions if needed.

Version numbers are integer values representing different iterations of the Tool. Each update to the Tool increments its version number.

version_type"FIXED" or "LATEST"
Allowed values: FIXEDLATEST

Versioning method for a Tool. Either FIXED for using a fixed version number or LATEST for auto-updating to the latest version.

namestring

Name applied to all versions of a particular Tool.

created_onlong

Time at which the Tool was created. Measured in seconds since the Unix epoch.

modified_onlong

Time at which the Tool was last modified. Measured in seconds since the Unix epoch.

parametersstring

Stringified JSON defining the parameters used by this version of the Tool.

These parameters define the inputs needed for the Tool’s execution, including the expected data type and description for each input field. Structured as a stringified JSON schema, this format ensures the tool receives data in the expected format.

version_descriptionstringOptional

An optional description of the Tool version.

fallback_contentstringOptional

Optional text passed to the supplemental LLM in place of the tool call result. The LLM then uses this text to generate a response back to the user, ensuring continuity in the conversation if the Tool errors.

descriptionstringOptional

An optional description of what the Tool does, used by the supplemental LLM to choose when and how to call the function.