Tools
Client Tools
Create custom tools that extend AI agents with your own functions and APIs
Overview
Client tools are custom functions that the voice agent can use during the conversation. They are defined and implemented on the client side.
Simple Example
Here’s a complete example with one tool:
Step 1: Define the Tool
Step 2: Implement the Function
Implement the function associated with the tool
Important: The return value from your function is sent directly to the AI model, which uses it to generate its response to the user.
Step 3: Configure Session
That’s it! When the user asks “What time is it?”, the agent will:
- Call your
getTime()
function - Receive the return value (e.g., “2:30:45 PM”)
- Use that information to respond to the user
Tool Schema Format
Each tool schema must follow this structure:
Best Practices
Tool Design
- Clear descriptions: Help the AI understand when and how to use each tool
- Specific parameters: Define precise parameter types and descriptions
- Single purpose: Each tool should do one thing well
- Predictable naming: Use descriptive, consistent naming conventions
Implementation
- Error handling: Always wrap tool functions in try-catch blocks
- Return useful data: Provide meaningful responses the AI can work with
- Handle async operations: Use async/await for API calls
- Validate inputs: Check parameters before processing
Performance
- Cache results: Cache API responses when appropriate
- Timeout handling: Set reasonable timeouts for external calls
- Rate limiting: Respect API rate limits
- Graceful degradation: Provide fallbacks when tools fail
Error Handling
Combining with System Tools
You can use client tools alongside system tools: