A tool is a function or API that an agent or workflow can call to perform actions, like accessing databases or manipulating data. Syllable provides default system tools that are already built and ready for you to use out of the box.The tools list page shows all of the tools currently available to your organization with 3 tabs:
Agent tools: Agent tools are APIs that an agent can use, such as schedule an appointment on behalf of your user, request a prescription refill, or other countless other tasks.
Insight tools: Insight tools are APIs that a workflow can use, and follow a series of steps, such as first transcribe, then summarize, then evaluate the call.
Services: Services are authentication credentials that multiple tool can use.
If you want an agent to reference a specific tool during sessions with users, then you need to provide those instructions in the prompt. For example, if you want to provide hangup instructions to your agent, it might look something like:Before a call ends, make sure to always ask user whether they need anything else. If user doesn’t need anything else, use “hangup” tool.
To create an agent tool, click the “New tool” button on the top right of the list screen.
Name: The name of the tool is used to reference it elsewhere in Console, including in prompts and agents, so you should pick something that’s easily identifiable. It shouldn’t contain any whitespace.
Service: A service is a grouping of tools. You can select any available service here to add your new tool to that service.
You define the behavior and capabilities of a tool using the Tool Schema. More details on the structure of the schema are available here. An example schema to call the Open-Meteo API to look up weather information is below. (Note that the value of the “parameters” field must be defined as a JSON Schema per the OpenAI API.)
Copy
Ask AI
{ "type": "endpoint", "endpoint": { "url": "https://api.open-meteo.com/v1/forecast", "method": "get", "argumentLocation": "query" }, "tool": { "type": "function", "function": { "name": "get_weather", "description": "Get the weather for a city", "parameters": { "type": "object", "properties": { "longitude": { "type": "number", "description": "The longitude of the city" }, "latitude": { "type": "number", "description": "The latitude of the city" } }, "required": [ "longitude", "latitude" ] } } }, "staticParameters": [ { "name": "current", "description": "Information to retrieve from the Open-Meteo API, comma-separated", "required": true, "type": "string", "default": "temperature_2m,relative_humidity_2m,precipitation,rain,showers,snowfall" } ]}
The “endpoint” object gives the agent details on what API endpoint to call and how to pass the parameters (in the body of a POST request).
The “tool” object includes a description of the tool, which should be written as instructions to the agent regarding what the tool does. It also includes a “parameters” object, which describes the various parameters that the agent should gather from the user’s input and send to the API endpoint in the “endpoint” object. (In this case, if the user says, for example, “What is the weather in New York City?”, the agent can determine the relevant latitude and longitude from the city name.)
The “staticParameters” object also describes parameters that should be sent to the API, but are predetermined at configuration time, rather than gathered by the agent from the user’s input. They can be configured here at the tool level, but can also be overridden at the agent level, so that different agents can use the same tool (by using a prompt that has been linked to that tool), but specify different behavior for that tool. For more information, see the Tool Configuration section.
Note that the name of each parameter (both static and non-static) in the tool definition must match the name of the parameter on the API endpoint side.The “parameters” field is always required. To define a tool that has no parameters, you need to declare an empty “properties” object, like this:
Services are a centralized place to store authentication credentials to be used by multiple tools. This way, authentication will only need to be configured once and multiple tools can reuse the same service for authentication within a session.
Description (optional): Description of the service
Auth type (optional): Authentication type
If you are creating a service for authentication, you have 3 options:
Basic: This type of authentication requires username and password.
Bearer: This type of authentication requires a token.
Custom headers: This type of authentication allows multiple custom headers with unique key value pairs.
Note: Once saved, all secret passwords, tokens, authentication credentials are masked for extra security. Syllable does not store these credentials in our system.
You will not be able to view these credentials in the platform because we do not save or store them.
You cannot generate new credentials in our system, you must generate them yourself in your third-party system and remember to copy paste them back in.
Basic authenticationRequires username and password.Bearer authenticationRequires token.Custom headersAllows multiple custom headers. Each auth header must be a unique name.Once your service is created, you can go to a tool and add them as an authentication service.
Dual-Tone Multi-Frequency (DTMF), is a signaling system used in telecommunications where each button on a telephone keypad, when pressed, generates a unique combination of two audio tones.The DTMF tool in the Syllable platform enables your AI Agent to navigate touch-tone phone systems by transmitting RFC 4733 compliant DTMF tones.This functionality is particularly valuable for outbound use cases where your agent may reach IVRs during outreach such as marketing, surveys, or sales calls. When combined with voice-based IVR navigation, it equips your AI Agent with the full range of capabilities needed to operate effectively in outbound scenarios.To learn more, see our blog post, How to add the DTMF tool to your agents.
Copy
Ask AI
"type": "action", "tool": { "type": "function", "function": { "name": "dtmf", "description": "Tool for dialing DTMF digits on a call.", "parameters": { "type": "object", "properties": { "digits": { "type": "string", "description": "A string containing the DTMF digits being dialed." } }, "required": [ "digits" ] } } }, "endpoint": null, "defaults": null, "staticParameters": null, "result": null, "options": null}```