Resumen
Production AI agents cannot tolerate search downtime. Este flujo de trabajo ejecuta un verificacion de estado cada 5 minutos contra el primary search proveedor. Si el primary fails o returns degraded resultados, it automaticamente routes agent search solicitudes to el fallback proveedor. Logs todos fallback eventos for post-incident resena.
Desencadenador
Health verificar cada 5 minutos. Fallback enrutamiento activado on primary failure.
Programación
Every 5 minutos (verificacion de estado)
Pasos del flujo de trabajo
Ejecutar Primary Proveedor Health Verificar
Enviar un canary consulta to el primary search proveedor. Verificar tiempo de respuesta, estado code, y resultado calidad (minimo 3 resultados organicos).
Actualizar Proveedor Status Registry
Escribir el verificacion de estado resultado to un estado registry. Rastrear consecutive failures to avoid flapping entre proveedores.
Route Agent Solicitudes Based on Status
Agent search solicitudes verificar el estado registry. Si primary es healthy, route alli. Si degraded o down, route to fallback.
Log Fallback Events
Record cada fallback evento con marca de tiempo, reason, y consulta. Generar un diario digest of fallback incidents for el ops team.
Implementacion en Python
import requests, os, json, time
from datetime import datetime
API_KEY = os.environ["SCAVIO_API_KEY"]
STATUS_FILE = "provider_status.json"
def health_check() -> dict:
try:
start = time.time()
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": "test query", "country_code": "us"},
timeout=10,
)
latency = time.time() - start
data = resp.json()
healthy = resp.status_code == 200 and len(data.get("organic_results", [])) >= 3
return {"healthy": healthy, "latency": round(latency, 2), "timestamp": datetime.now().isoformat()}
except Exception as e:
return {"healthy": False, "error": str(e), "timestamp": datetime.now().isoformat()}
status = health_check()
print(f"Provider healthy: {status['healthy']}, latency: {status.get('latency', 'N/A')}s")Implementacion en JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function healthCheck() {
try {
const start = Date.now();
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query:'test query', country_code:'us'})});
const d = await r.json();
return {healthy: r.ok && (d.organic_results||[]).length >= 3, latency: Date.now()-start, timestamp: new Date().toISOString()};
} catch (e) { return {healthy:false, error:e.message, timestamp:new Date().toISOString()}; }
}
const s = await healthCheck();
console.log('Healthy: '+s.healthy+', Latency: '+s.latency+'ms');Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA
YouTube
Búsqueda de videos con transcripciones y metadatos
Comunidad, publicaciones y comentarios en hilos de cualquier subreddit