Resumen
LangGraph research agents ese rely solely on search produce repetitive resultados porque they forget anterior sesiones. Este flujo de trabajo agrega persistent memory so el agent construye on past research. El search paso fills knowledge gaps mientras memory proporciona continuity. Cada research sesion costs $0.05-0.25 in consultas de busqueda.
Desencadenador
On-demand via llamada un API o programado semanal for recurring research topics.
Programación
On-demand o semanal for recurring topics
Pasos del flujo de trabajo
Cargar Anterior Research de Memory
Retrieve relevante context de el persistent memory almacenar. Este incluye past findings, open questions, y conocido facts about el research topic.
Identificar Knowledge Gaps
Comparar el actual research question contra almacenado knowledge. Identificar que es ya conocido y que necesita fresh search datos.
Ejecutar Targeted Searches
Ejecutar consultas de busqueda solo for identified gaps. Use Google for facts, Reddit for opinions, YouTube for tutoriales. Avoid re-searching que memory ya covers.
Synthesize y Actualizar Memory
Fusionar nuevo search findings con existing memory. Actualizar el knowledge almacenar con nuevo facts, changed informacion, y resolved questions.
Generar Research Salida
Produce el research informe o answer, citing ambos memory-sourced y search-sourced informacion con marcas de tiempo for freshness.
Implementacion en Python
import requests, os
API_KEY = os.environ["SCAVIO_API_KEY"]
def research_search(queries: list) -> list:
"""Execute targeted research searches for identified knowledge gaps."""
results = []
for q in queries:
platform = "reddit" if "opinion" in q.lower() else "youtube" if "tutorial" in q.lower() else "google"
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": q, "platform": platform, "country_code": "us"},
timeout=15,
)
data = resp.json()
results.append({
"query": q,
"platform": platform,
"findings": [
{"title": r.get("title", ""), "snippet": r.get("snippet", ""), "url": r.get("link", "")}
for r in data.get("organic_results", [])[:5]
],
})
return results
# Targeted searches for knowledge gaps only
gaps = ["LangGraph v0.3 breaking changes 2026", "langgraph memory implementation opinion"]
findings = research_search(gaps)
for f in findings:
print(f"[{f['platform']}] {f['query']}: {len(f['findings'])} results")Implementacion en JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function researchSearch(queries) {
const results = [];
for (const q of queries) {
const platform = q.toLowerCase().includes('opinion') ? 'reddit' : q.toLowerCase().includes('tutorial') ? 'youtube' : 'google';
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query:q, platform, country_code:'us'})});
const d = await r.json();
results.push({query:q, platform, findings:(d.organic_results||[]).slice(0,5).map(r=>({title:r.title, snippet:r.snippet, url:r.link}))});
}
return results;
}
const gaps = ['LangGraph v0.3 breaking changes 2026', 'langgraph memory tutorial'];
const findings = await researchSearch(gaps);
findings.forEach(f => console.log('['+f.platform+'] '+f.query+': '+f.findings.length+' results'));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