问题所在
Gemini搜索间歇性返回空响应(2026年4月广泛报告的bug)。完全依赖Gemini的代理在搜索静默失败时会输出无依据的自信回答。
Scavio 解决方案
用响应验证器包装Gemini调用。如果搜索返回零引用或空上下文块,自动降级到Scavio Google搜索获取引用数据,确保回答始终有据可查。
之前
当Gemini搜索静默失败时,代理返回自信但无依据的回答。用户失去信任。没有告警机制。
之后
代理检测到空搜索结果,调用Scavio,返回有引用的回答。降级增加约1.5秒延迟但保持答案质量。
适用人群
在生产代理中使用Gemini搜索且需要99%以上可靠性的AI工程师。需要搜索失败自动检测和恢复的团队。
核心优势
- 自动检测Gemini空搜索响应
- 通过Scavio Google搜索实现低于2秒的降级
- Gemini宕机期间用户无感知降级
- 兼容Gemini 2.5 Pro和Gemini 3 Pro
- Scavio $0.005/积分保持降级成本极低
Python 示例
Python
import requests, os
SCAVIO_KEY = os.environ['SCAVIO_API_KEY']
def search_with_fallback(query: str, gemini_results: dict) -> list:
citations = gemini_results.get('grounding_citations', [])
if citations:
return citations
# Gemini returned empty grounding — fallback to Scavio
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': SCAVIO_KEY},
json={'platform': 'google', 'query': query}, timeout=10)
data = resp.json()
return [{'title': r['title'], 'snippet': r['snippet'], 'url': r['link']}
for r in data.get('organic', [])[:5]]JavaScript 示例
JavaScript
async function searchWithFallback(query, geminiResults) {
const citations = geminiResults.grounding_citations || [];
if (citations.length > 0) return citations;
const resp = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ platform: 'google', query })
});
const data = await resp.json();
return (data.organic || []).slice(0, 5).map(r => ({
title: r.title, snippet: r.snippet, url: r.link
}));
}使用的平台
包含知识图谱、PAA和AI概览的网页搜索