πŸ› οΈ What are Tools?

Tools (also known as function calling) enable your Gemini Live agent to interact with external APIs, databases, and services during conversation. Unlike traditional chatbots that can only respond with text, Gemini Live can:
  • Call APIs in real-time while speaking with users
  • Retrieve live data from databases, calendars, weather services
  • Perform actions like sending emails, booking appointments, updating records
  • Continue the conversation naturally after using tools
Revolutionary Capability: Gemini Live is the first voice AI that can seamlessly execute functions while maintaining natural conversation flow - no interruptions or β€œplease wait” messages needed!

🎯 Tool Types Supported

Built-in Tools

Ready-to-use tools that work out of the box:

turn_on_lights

Control smart home devices
{
  "name": "turn_on_lights",
  "parameters": {
    "brightness": "0-100"
  }
}

get_weather

Get current weather conditions
{
  "name": "get_weather", 
  "parameters": {
    "city": "City name (required)"
  }
}

Integration Tools

Connect with popular services:

Google Calendar

Create events, check availability, manage schedules

Google Sheets

Read/write spreadsheet data, manage records

Knowledge Base

Search your uploaded documents and data

Custom APIs

Connect to any REST API or webhook

πŸ”§ Setting Up Tools

1. Configure Tools in Your Agent

In your agent configuration, add tools to the current node:
{
  "currentNode": {
    "toolsIds": [
      "turn_on_lights",
      "get_weather", 
      "google-calendar",
      "knowledge-search"
    ],
    "toolsSettings": {
      "googleCalendar": {
        "calendarId": "primary",
        "methods": ["create-event", "check-availability"]
      }
    }
  }
}

2. Tool Schema Format

Tools are automatically converted to Gemini Live’s function declaration format:
{
  "id": "weather-api",
  "name": "get_weather",
  "description": "Get current weather for a location",
  "serverUrl": "https://api.weather.com/current",
  "method": "POST",
  "fields": [
    {
      "key": "city",
      "type": "string", 
      "description": "City name",
      "required": true
    }
  ]
}

πŸŽ™οΈ Voice Tool Calling Flow

Here’s how tools work during a live conversation:

Key Features:

  • 🎀 No interruption: User hears smooth conversation flow
  • ⚑ Real-time execution: Tools execute while AI continues speaking
  • πŸ”„ Context preservation: AI incorporates tool results naturally
  • πŸ—£οΈ Voice responses: AI speaks the tool results conversationally

πŸ—οΈ Built-in Tool Examples

Smart Home Control

// User says: "Turn on the living room lights to 80%"
// Gemini Live automatically calls:
{
  "name": "turn_on_lights",
  "args": {
    "brightness": 80,
    "room": "living room"
  }
}

// AI responds: "I've turned on your living room lights to 80% brightness!"

Weather Information

// User says: "How's the weather looking in Tokyo today?"
// Gemini Live calls:
{
  "name": "get_weather", 
  "args": {
    "city": "Tokyo"
  }
}

// Returns: {"temperature": "22Β°C", "condition": "partly cloudy"}
// AI says: "Tokyo is currently 22 degrees Celsius with partly cloudy skies!"

πŸ—“οΈ Google Calendar Integration

Setup Calendar Access

  1. Connect Google Account in your TixAE integrations
  2. Configure calendar permissions for the agent
  3. Set allowed methods in tool settings

Supported Calendar Operations

{
  "name": "google-calendar",
  "args": {
    "calendar_method": "create-event",
    "calendar_event_summary": "Team Meeting",
    "calendar_event_start_time": "2024-12-15T10:00:00",
    "calendar_event_end_time": "2024-12-15T11:00:00",
    "calendar_event_attendees": "john@company.com,jane@company.com"
  }
}

Conversation Example

User: "Can you schedule a meeting with John tomorrow at 2pm?"

AI: "Let me check your availability for tomorrow at 2pm..."
[Calls check-availability]

AI: "You're free at that time! I'll create the meeting now."
[Calls create-event]

AI: "Perfect! I've scheduled a meeting with John for tomorrow at 2pm. 
     I've sent him a calendar invite."

πŸ“Š Google Sheets Integration

Setup Sheets Access

  1. Connect Google Sheets in integrations
  2. Configure sheet ID and connection
  3. Set header mappings for data structure

Smart Data Handling

Our Sheets integration includes intelligent data mapping:
{
  "toolsSettings": {
    "googleSheets": {
      "sheetId": "your-sheet-id",
      "method": "append-data",
      "headerDescriptions": {
        "Name": "Customer's full name",
        "Email": "Contact email address",
        "Phone": "Phone number with area code"
      },
      "identifierColumn": "conversation_id"
    }
  }
}

Conversation Example

User: "I'd like to sign up for your service. My name is Sarah Johnson."

AI: "Great! Let me get your information. What's your email address?"

User: "sarah.johnson@email.com"

AI: "And your phone number?"

User: "555-123-4567"

AI: "Perfect! I've recorded your information in our system."
[Automatically calls google-sheets with proper data mapping]

Enable knowledge base search in your node configuration:
{
  "currentNode": {
    "kb": {
      "enabled": true,
      "tags": ["support", "product-info"]
    }
  }
}

Automatic Context Integration

When KB search is enabled, Gemini Live automatically:
  • Searches relevant documents based on user questions
  • Injects context into the conversation
  • Cites sources when appropriate
User: "How do I reset my password?"

AI: "I can help you with that! Based on our help documentation, 
     here are the steps to reset your password..."
[Automatically searches KB and provides accurate information]

πŸŽ›οΈ Advanced Tool Configuration

Tool Settings Per Node

Different conversation nodes can have different tool configurations:
{
  "nodes": [
    {
      "id": "sales-node",
      "toolsIds": ["google-sheets", "google-calendar"],
      "toolsSettings": {
        "googleSheets": {
          "sheetId": "sales-leads-sheet"
        }
      }
    },
    {
      "id": "support-node", 
      "toolsIds": ["knowledge-search", "get_weather"],
      "toolsSettings": {
        "kb": {
          "tags": ["troubleshooting", "faq"]
        }
      }
    }
  ]
}

Variable Injection

Tools can use variables for dynamic behavior:
{
  "variables": [
    {
      "key": "customer_tier",
      "value": "premium", 
      "description": "Customer's service tier"
    }
  ]
}
Tools automatically receive these variables as context.

🚨 Tool Limitations & Best Practices

Model Restrictions

Important: The model gemini-2.5-flash-exp-native-audio-thinking-dialog does NOT support function calling. Use these models instead:
  • βœ… gemini-2.0-flash-exp (Recommended)
  • βœ… gemini-2.0-flash-live-001

Best Practices

Response Guidelines

Tools should return data that works well in voice conversations:
// ❌ NOT voice-friendly
{
  "data": {
    "temp": 75,
    "humidity": 65, 
    "wind_speed": 12,
    "barometric_pressure": 30.15
  }
}

// βœ… Voice-friendly
{
  "message": "It's currently 75 degrees and sunny with a light breeze in New York."
}

πŸ§ͺ Testing Your Tools

Debug Tools

For testing, you can use our built-in debug tools:
// Test tool calling
function testTools() {
  // Say: "Turn on the lights"  
  // Expected: Calls turn_on_lights and confirms action
  
  // Say: "What's the weather in Paris?"
  // Expected: Calls get_weather and reports conditions
}

Tool Call Logging

Enable detailed logging to debug tool behavior:
# Enable debug mode
GEMINI_LIVE_DEBUG=true
TOOL_CALL_LOGGING=verbose

# Monitor tool calls in real-time
tail -f /logs/tool-calls.log

🎯 Next Steps


πŸ’‘ Tool Ideas & Inspiration

Bring your voice agent to life with powerful tool integration! πŸš€