Resumen
Support agents answer questions basado on un knowledge base ese fue last actualizado semanas o meses ago. Cuando productos cambio precios, caracteristicas actualizacion, o nuevo integraciones launch, el agent da outdated answers hasta someone manualmente actualiza el KB. Este flujo de trabajo searches Google diario for your product's actual documentacion, precios paginas, y changelog, entonces actualiza el knowledge base entradas ese tienen drifted de el live datos.
Desencadenador
Cron programar (diario at 6 AM UTC)
Programación
Diario at 6 AM UTC
Pasos del flujo de trabajo
Cargar knowledge base entradas
Leer todos KB entradas tagged as requiring freshness verifica (precios, caracteristicas, integraciones, compatibility).
Search for actual datos
For cada KB entrada, consulta Scavio for el topic. Comparar el resultados de busqueda contra el almacenado KB contenido.
Detectar drift
Marcar entradas donde resultados de busqueda contradict el KB contenido (diferentes prices, deprecated caracteristicas, nuevo versiones).
Generar actualizacion suggestions
For cada drifted entrada, crear un suggested actualizacion con el nuevo datos y fuente URL.
Apply auto-updates o queue resena
Auto-apply actualiza for factual campos (prices, versiones). Queue subjective cambios for human resena.
Informe cambios
Enviar un resumen of applied y queued cambios to el soporta team lead.
Implementacion en Python
import requests, os, json
H = {"x-api-key": os.environ["SCAVIO_API_KEY"]}
KB_ENTRIES = [
{"id": "pricing", "topic": "Scavio pricing", "current_text": "Scavio offers 250 free credits per month"},
{"id": "platforms", "topic": "Scavio supported platforms", "current_text": "Google, YouTube, Amazon, Walmart, Reddit"},
]
def check_kb_freshness(entry):
r = requests.post("https://api.scavio.dev/api/v1/search", headers=H,
json={"platform": "google", "query": entry["topic"] + " 2026",
"ai_overview": True}, timeout=10).json()
snippets = [o.get("snippet", "") for o in r.get("organic", [])[:3]]
aio_text = ""
aio = r.get("ai_overview")
if aio:
aio_text = aio.get("text", "")
all_text = " ".join(snippets) + " " + aio_text
# Simple drift detection: check if key terms from KB appear in search results
kb_terms = [t.lower() for t in entry["current_text"].split() if len(t) > 3]
found = sum(1 for t in kb_terms if t in all_text.lower())
confidence = found / max(len(kb_terms), 1)
return {
"id": entry["id"],
"topic": entry["topic"],
"confidence": round(confidence, 2),
"needs_review": confidence < 0.5,
"search_evidence": snippets[:2],
"ai_overview_text": aio_text[:200] if aio_text else None
}
for entry in KB_ENTRIES:
result = check_kb_freshness(entry)
status = "DRIFT DETECTED" if result["needs_review"] else "OK"
print(f"[{status}] {result['topic']} (confidence: {result['confidence']})")
if result["needs_review"]:
print(f" Evidence: {result['search_evidence'][0][:100]}...")Implementacion en JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function checkKbFreshness(entry) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform: "google", query: entry.topic + " 2026", ai_overview: true})
}).then(r => r.json());
const snippets = (r.organic || []).slice(0, 3).map(o => o.snippet || "");
const aioText = r.ai_overview?.text || "";
const allText = snippets.join(" ") + " " + aioText;
const kbTerms = entry.currentText.split(" ").filter(t => t.length > 3).map(t => t.toLowerCase());
const found = kbTerms.filter(t => allText.toLowerCase().includes(t)).length;
const confidence = found / Math.max(kbTerms.length, 1);
return {
id: entry.id, topic: entry.topic,
confidence: Math.round(confidence * 100) / 100,
needsReview: confidence < 0.5,
searchEvidence: snippets.slice(0, 2)
};
}Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA