The Problem
Voice agents (built on Vapi, Retell, ElevenLabs) run on LLMs with a fixed knowledge cutoff. When a caller asks about today's store hours, current pricing, or recent news, the agent either makes up an answer or says it does not know. Adding a search tool to a voice agent is harder than a text agent because latency directly affects conversation flow -- a 10-second search pause feels like a dropped call.
The Scavio Solution
Integrate Scavio's search API as a tool in the voice agent's function-calling layer. When the agent detects a factual question it cannot answer from training data, it calls the API and receives structured results in 1.5-3 seconds. The agent reads back the relevant snippet while the search completes in the background of the conversation pause. For product pricing, route to Amazon. For general questions, route to Google.
Before
Before integration, a voice agent for a real estate company made up listing prices when callers asked about specific properties. A caller reported being quoted $450K for a home that was listed at $525K. The company paused the agent for two weeks to investigate.
After
After adding live search, the agent queries Google for the property address and reads back the listing price from the search result. Price accuracy went from ~70% to 99%. The 2-second search pause is masked by the agent saying 'Let me check that for you' -- callers report it feels natural.
Who It Is For
Voice AI developers building agents on Vapi, Retell, or ElevenLabs who need real-time factual grounding without breaking conversation flow.
Key Benefits
- Sub-3-second search latency fits within natural conversation pauses
- Voice agent answers real-time questions accurately instead of hallucinating
- Google search for general facts, Amazon for product pricing
- Structured results are easy to convert to spoken responses
- Works with Vapi, Retell, ElevenLabs, and custom voice stacks
Python Example
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def voice_agent_search(query: str, platform: str = 'google') -> str:
"""Search tool for voice agent function calling.
Returns a speakable summary under 200 chars."""
r = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': platform, 'query': query}, timeout=5).json()
aio = r.get('ai_overview')
if aio and aio.get('text'):
return aio['text'][:200]
organic = r.get('organic', [])
if organic:
return organic[0].get('snippet', 'No information found.')[:200]
return 'I was not able to find that information right now.'
print(voice_agent_search('current mortgage rate 30 year fixed 2026'))JavaScript Example
const H = { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' };
async function voiceAgentSearch(query, platform = 'google') {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: H,
body: JSON.stringify({ platform, query })
}).then(r => r.json());
if (r.ai_overview?.text) return r.ai_overview.text.slice(0, 200);
const top = (r.organic || [])[0];
return top ? (top.snippet || 'No information found.').slice(0, 200)
: 'I was not able to find that information right now.';
}
console.log(await voiceAgentSearch('current mortgage rate 30 year fixed 2026'));Platforms Used
Web search with knowledge graph, PAA, and AI overviews
Amazon
Product search with prices, ratings, and reviews
YouTube
Video search with transcripts and metadata