Resumen
AI agents ese solo search Google miss producto prices, video tendencias, community sentiment, y social buzz. Este flujo de trabajo connects your agent to todos 6 Scavio plataformas a traves de un single clave API. El agent decides cual plataforma to consulta basado on el user's question, obtiene live datos, y synthesizes un cross-platform answer. One clave API, one billing cuenta, six fuentes de datos.
Desencadenador
Event-driven, on cada usuario consulta to el agent.
Programación
Event-driven
Pasos del flujo de trabajo
Clasificar Usuario Consulta
Determine cual plataformas son relevante. Producto questions hit Amazon y Walmart. Opinion questions hit Reddit. Tendencia questions hit TikTok y YouTube.
Route to Correct Plataforma
Call Scavio search API con el appropriate plataforma parametro. Use TikTok endpoint for TikTok consultas.
Obtener Live Datos
Ejecutar el search y extraer structured resultados: prices, ratings, views, upvotes, o engagement metricas.
Synthesize Cross-Platform Answer
Combine datos de multiples plataformas en un coherent answer con citaciones y puntos de datos.
Cache for Cost Efficiency
Cache resultados for 1 hora to avoid redundant llamadas un API on repeated similares consultas.
Implementacion en Python
import requests, os, json
from datetime import datetime, timedelta
API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY, "Content-Type": "application/json"}
TH = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
CACHE = {}
CACHE_TTL = timedelta(hours=1)
PLATFORM_RULES = {
"price": ["amazon", "walmart"],
"review": ["amazon", "reddit"],
"trend": ["tiktok", "youtube"],
"how to": ["youtube", "google"],
"opinion": ["reddit"],
"buy": ["amazon", "walmart", "google-shopping"],
}
def classify_query(query: str) -> list:
q = query.lower()
platforms = set()
for keyword, plats in PLATFORM_RULES.items():
if keyword in q:
platforms.update(plats)
return list(platforms) if platforms else ["google"]
def search_platform(query: str, platform: str) -> dict:
cache_key = f"{platform}:{query}"
if cache_key in CACHE and CACHE[cache_key]["expires"] > datetime.now():
return CACHE[cache_key]["data"]
if platform == "tiktok":
resp = requests.post(
"https://api.scavio.dev/api/v1/tiktok/search",
headers=TH,
json={"query": query},
timeout=15,
)
else:
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=H,
json={"query": query, "platform": platform},
timeout=15,
)
data = resp.json()
CACHE[cache_key] = {"data": data, "expires": datetime.now() + CACHE_TTL}
return data
def agent_search(query: str) -> dict:
platforms = classify_query(query)
results = {}
for p in platforms:
results[p] = search_platform(query, p)
return {"query": query, "platforms": platforms, "results": results}
answer = agent_search("best wireless earbuds price and reviews")
for p, data in answer["results"].items():
count = len(data.get("organic_results", data.get("results", [])))
print(f"{p}: {count} results")Implementacion en JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const TH = {'Authorization': 'Bearer '+process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const CACHE = new Map();
const CACHE_TTL = 3600000; // 1 hour
const PLATFORM_RULES = {price:['amazon','walmart'], review:['amazon','reddit'], trend:['tiktok','youtube'], 'how to':['youtube','google'], opinion:['reddit'], buy:['amazon','walmart','google-shopping']};
function classifyQuery(query) {
const q = query.toLowerCase();
const platforms = new Set();
for (const [kw, plats] of Object.entries(PLATFORM_RULES)) {
if (q.includes(kw)) plats.forEach(p=>platforms.add(p));
}
return platforms.size ? [...platforms] : ['google'];
}
async function searchPlatform(query, platform) {
const key = platform+':'+query;
const cached = CACHE.get(key);
if (cached && cached.expires > Date.now()) return cached.data;
let r;
if (platform === 'tiktok') {
r = await fetch('https://api.scavio.dev/api/v1/tiktok/search', {method:'POST', headers:TH, body:JSON.stringify({query})});
} else {
r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query, platform})});
}
const data = await r.json();
CACHE.set(key, {data, expires:Date.now()+CACHE_TTL});
return data;
}
async function agentSearch(query) {
const platforms = classifyQuery(query);
const results = {};
for (const p of platforms) results[p] = await searchPlatform(query, p);
return {query, platforms, results};
}
const answer = await agentSearch('best wireless earbuds price and reviews');
for (const [p, data] of Object.entries(answer.results)) {
const count = (data.organic_results || data.results || []).length;
console.log(p+': '+count+' results');
}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