El problema
La mayoría de las fallas de los agentes de IA son fallas de recuperación: el LLM nunca vio los datos correctos, por lo que no pudo razonar correctamente. Los equipos invierten en mejores modelos, contextos más largos y sugerencias más sofisticadas, pero el cuello de botella está en la fase anterior: la capa de recuperación del agente determina la calidad de la respuesta más que el modelo de razonamiento. Un modelo de clase GPT-4 con mala recuperación produce peores respuestas que un modelo más pequeño con excelente recuperación.
La solucion de Scavio
Diseñe una capa de recuperación que enrute consultas a las fuentes de datos correctas, obtenga datos en paralelo y combine los resultados en un contexto unificado. Utilice la API multiplataforma de Scavio como columna vertebral de búsqueda: dirija consultas de productos a Amazon/Walmart, consultas de opinión a Reddit, consultas de tutoriales a YouTube y consultas generales a Google. Una clave API, una integración, seis plataformas de superficie de recuperación.
Antes
El agente tiene una ruta de recuperación: búsqueda en Google a través de SerpAPI. El usuario hace una pregunta sobre el producto: el agente recibe publicaciones de blog, no precios. El usuario pide opiniones: el agente obtiene contenido SEO, no hilos de Reddit. El usuario pregunta sobre una tendencia: el agente extraña completamente a TikTok. Calidad de recuperación: 40% de resultados relevantes.
Después
Rutas de agentes por intención: producto -> Amazon+Walmart, opinión -> Reddit, tutorial -> YouTube, tendencia -> TikTok, general -> Google. Misma consulta, contexto 3 veces más relevante. Calidad de recuperación: 85%+ resultados relevantes. Cuatro llamadas API paralelas se completan en menos de 3 segundos.
Para quien es
Arquitectos de agentes de IA que diseñan el subsistema de recuperación de su agente y buscan un patrón que enrute las consultas a las fuentes de datos más relevantes.
Beneficios clave
- El enrutamiento basado en la intención coloca la fuente de datos adecuada detrás de cada tipo de consulta
- La recuperación paralela entre plataformas mantiene la latencia por debajo de 3 segundos
- Una integración API cubre seis plataformas de superficie de recuperación
- Las mejoras en la calidad de la recuperación se combinan en todas las tareas posteriores.
- Cada llamada de recuperación cuesta $0,005; incluso las consultas en 4 plataformas cuestan $0,02
Ejemplo en Python
import requests, os
from concurrent.futures import ThreadPoolExecutor
API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY, "Content-Type": "application/json"}
INTENT_ROUTES = {
"product": ["amazon", "walmart"],
"opinion": ["reddit", "google"],
"tutorial": ["youtube", "google"],
"trend": ["tiktok", "youtube"],
"news": ["google"],
"local": ["google_maps"],
}
def classify_intent(query: str) -> str:
"""Simple keyword-based intent classifier. Replace with LLM classifier for production."""
q = query.lower()
if any(w in q for w in ["price", "buy", "cost", "product"]):
return "product"
if any(w in q for w in ["opinion", "think", "review", "recommend"]):
return "opinion"
if any(w in q for w in ["how to", "tutorial", "guide", "setup"]):
return "tutorial"
if any(w in q for w in ["trending", "viral", "popular"]):
return "trend"
return "news"
def fetch_platform(query: str, platform: str) -> dict:
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=H,
json={"query": query, "platform": platform, "country_code": "us"},
timeout=10,
)
results = resp.json().get("organic_results", [])[:5]
return {
"platform": platform,
"results": [{"title": r["title"], "snippet": r.get("snippet", ""), "url": r["link"]} for r in results],
}
def retrieval_layer(query: str) -> list[dict]:
intent = classify_intent(query)
platforms = INTENT_ROUTES.get(intent, ["google"])
with ThreadPoolExecutor(max_workers=4) as pool:
futures = [pool.submit(fetch_platform, query, p) for p in platforms]
return [f.result() for f in futures]
# Agent retrieval: right platforms for the query
context = retrieval_layer("what do people think about the new MacBook Pro")
for source in context:
print(f"--- {source['platform']} ({len(source['results'])} results) ---")
for r in source["results"][:2]:
print(f" {r['title']}")Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
const H = {"x-api-key": API_KEY, "Content-Type": "application/json"};
const INTENT_ROUTES = {
product: ["amazon", "walmart"],
opinion: ["reddit", "google"],
tutorial: ["youtube", "google"],
trend: ["tiktok", "youtube"],
news: ["google"],
local: ["google_maps"],
};
function classifyIntent(query) {
const q = query.toLowerCase();
if (["price", "buy", "cost", "product"].some(w => q.includes(w))) return "product";
if (["opinion", "think", "review", "recommend"].some(w => q.includes(w))) return "opinion";
if (["how to", "tutorial", "guide", "setup"].some(w => q.includes(w))) return "tutorial";
if (["trending", "viral", "popular"].some(w => q.includes(w))) return "trend";
return "news";
}
async function fetchPlatform(query, platform) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: H,
body: JSON.stringify({ query, platform, country_code: "us" }),
});
const results = (await res.json()).organic_results || [];
return {
platform,
results: results.slice(0, 5).map(r => ({ title: r.title, snippet: r.snippet || "", url: r.link })),
};
}
async function retrievalLayer(query) {
const intent = classifyIntent(query);
const platforms = INTENT_ROUTES[intent] || ["google"];
return Promise.all(platforms.map(p => fetchPlatform(query, p)));
}
const context = await retrievalLayer("what do people think about the new MacBook Pro");
for (const source of context) {
console.log(`--- ${source.platform} (${source.results.length} results) ---`);
source.results.slice(0, 2).forEach(r => console.log(` ${r.title}`));
}Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA
Amazon
Búsqueda de productos con precios, calificaciones y reseñas
YouTube
Búsqueda de videos con transcripciones y metadatos
Walmart
Búsqueda de productos con precios y datos de cumplimiento
Comunidad, publicaciones y comentarios en hilos de cualquier subreddit
TikTok
Descubrimiento de videos, creadores y productos en tendencia