Le problème
Les agents IA qui dépendent d'un seul fournisseur de recherche échouent complètement lorsque ce fournisseur rencontre des pannes, des limites de débit ou renvoie des résultats médiocres pour un type de requête spécifique. Un point de défaillance unique dans la couche de recherche se propage en échec des tâches de l'agent.
La solution Scavio
Construisez une chaîne de repli qui essaie d'abord le fournisseur de recherche principal, puis bascule vers des alternatives si le principal échoue ou renvoie des résultats de faible qualité. Scavio sert de fournisseur principal ou de repli à 0,005 $/requête avec une couverture multiplateforme.
Avant
L'outil de recherche d'agent appelle Tavily. Tavily subit une panne de 5 minutes. Toutes les tâches d'agent nécessitant une recherche échouent pendant 5 minutes. Les utilisateurs voient des erreurs.
Après
L'outil de recherche d'agent essaie le fournisseur principal, puis bascule sur Scavio en cas d'échec. Une panne de 5 minutes du fournisseur principal n'entraîne aucune défaillance visible par l'utilisateur. Les tâches de l'agent se terminent normalement.
À qui cela s'adresse
Les développeurs d'agents IA qui ont besoin d'une recherche fiable qui ne tombe jamais en panne, même pendant les pannes de fournisseur ou les périodes de limite de débit.
Avantages clés
- Recherche sans interruption pour les agents IA
- Basculement automatique en cas d'échec du fournisseur ou de résultats de faible qualité
- Vérification de la qualité avant de renvoyer les résultats à l'agent
- Optimisation des coûts multi-fournisseurs
- Journalisation transparente du repli pour le débogage
Exemple Python
import requests, os
API_KEY = os.environ["SCAVIO_API_KEY"]
def scavio_search(query: str, platform: str = "google") -> dict:
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": query, "platform": platform, "country_code": "us"},
timeout=10,
)
if resp.status_code == 200:
return resp.json()
return None
def fallback_search(query: str, platform: str = "google") -> dict:
"""Search with automatic fallback chain."""
# Try primary provider
try:
result = scavio_search(query, platform)
if result and len(result.get("organic_results", [])) >= 3:
return {"provider": "scavio", "data": result}
except Exception:
pass
# Fallback: try different platform or simplified query
try:
simplified = " ".join(query.split()[:5])
result = scavio_search(simplified, platform)
if result and result.get("organic_results"):
return {"provider": "scavio_simplified", "data": result}
except Exception:
pass
return {"provider": "none", "data": {"organic_results": [], "error": "All providers failed"}}
result = fallback_search("best react frameworks for enterprise 2026")
print(f"Provider: {result['provider']}, Results: {len(result['data'].get('organic_results', []))}")Exemple JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function scavioSearch(query, platform='google') {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query, platform, country_code:'us'})});
return r.ok ? r.json() : null;
}
async function fallbackSearch(query, platform='google') {
try { const d = await scavioSearch(query, platform); if (d && (d.organic_results||[]).length >= 3) return {provider:'scavio', data:d}; } catch {}
try { const d = await scavioSearch(query.split(' ').slice(0,5).join(' '), platform); if (d?.organic_results?.length) return {provider:'scavio_simplified', data:d}; } catch {}
return {provider:'none', data:{organic_results:[], error:'All providers failed'}};
}
const r = await fallbackSearch('best react frameworks for enterprise 2026');
console.log('Provider: '+r.provider+', Results: '+(r.data.organic_results||[]).length);Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA
YouTube
Recherche de vidéos avec transcriptions et métadonnées
Communauté, publications et commentaires imbriqués de n'importe quel subreddit