Resumen
Este flujo de trabajo ejecuta un CrewAI research crew ese procesa 10 topics diario, con cada agent grounded by live search datos de Scavio. A investigador agent searches Google for cada topic, un synthesizer agent combines findings, y un writer agent produces research summaries. El Scavio herramienta integracion asegura cada crew salida es basado on actual datos bastante than training cutoff knowledge.
Desencadenador
Cron programar (diario at 10:00 AM UTC)
Programación
Ejecuta diario at 10:00 AM UTC
Pasos del flujo de trabajo
Cargar diario research topics
Leer el lista of 10 topics for today's research batch de configuracion o un contenido calendar.
Initialize CrewAI crew con Scavio herramienta
Set up el CrewAI crew con un personalizado Scavio search herramienta ese agents puede call durante execution.
Ejecutar investigador agent per topic
El investigador agent consultas Scavio for cada topic, collecting resultados organicos, AI Overviews, y People Also Ask datos.
Ejecutar synthesizer agent
El synthesizer agent combines raw search datos en structured findings con fuente attribution.
Salida research batch
Save el batch of 10 research summaries as structured JSON for downstream consumption.
Implementacion en Python
import requests
import json
from pathlib import Path
from datetime import datetime
API_KEY = "your_scavio_api_key"
TOPICS = [
"best SERP API for AI agents 2026",
"structured search data vs web scraping",
"AI Overview optimization strategies",
"search API pricing comparison 2026",
"MCP search integration patterns",
]
def scavio_search(query: str) -> dict:
"""Custom tool function for CrewAI agents."""
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": query, "ai_overview": True},
timeout=15,
)
res.raise_for_status()
data = res.json()
return {
"query": query,
"organic": [
{"title": r.get("title", ""), "snippet": r.get("snippet", ""), "link": r.get("link", "")}
for r in data.get("organic", [])[:5]
],
"ai_overview": (data.get("ai_overview") or {}).get("text", "")[:500],
"paa": [q.get("question", "") for q in data.get("people_also_ask", [])],
}
def run():
date = datetime.utcnow().strftime("%Y-%m-%d")
batch_results = []
for topic in TOPICS:
# Step 1: Research phase (simulates CrewAI researcher agent)
search_data = scavio_search(topic)
# Step 2: Synthesis phase (simulates CrewAI synthesizer agent)
summary = {
"topic": topic,
"sources_found": len(search_data["organic"]),
"has_ai_overview": bool(search_data["ai_overview"]),
"related_questions": search_data["paa"],
"top_sources": search_data["organic"][:3],
"ai_overview_excerpt": search_data["ai_overview"][:200],
}
batch_results.append(summary)
output = {"date": date, "topics_processed": len(TOPICS), "results": batch_results}
Path(f"crewai_batch_{date}.json").write_text(json.dumps(output, indent=2))
print(f"CrewAI batch {date}: {len(batch_results)} topics researched")
for r in batch_results:
print(f" {r['topic']}: {r['sources_found']} sources, AIO={'yes' if r['has_ai_overview'] else 'no'}")
if __name__ == "__main__":
run()Implementacion en JavaScript
const API_KEY = "your_scavio_api_key";
const TOPICS = ["best SERP API for AI agents 2026", "structured search data vs web scraping", "AI Overview optimization"];
async function scavioSearch(query) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform: "google", query, ai_overview: true }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
const data = await res.json();
return {
organic: (data.organic ?? []).slice(0, 5).map((r) => ({ title: r.title ?? "", snippet: r.snippet ?? "" })),
aiOverview: (data.ai_overview ?? {}).text ?? "",
paa: (data.people_also_ask ?? []).map((q) => q.question ?? ""),
};
}
const results = [];
for (const topic of TOPICS) {
const data = await scavioSearch(topic);
results.push({ topic, sources: data.organic.length, hasAio: !!data.aiOverview });
}
for (const r of results) console.log(`${r.topic}: ${r.sources} sources, AIO=${r.hasAio}`);Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA