El problema
Los agentes de LangGraph alucinan cuando carecen de información actual. El flujo de trabajo basado en gráficos es potente para el razonamiento de varios pasos, pero sin datos en vivo, el agente genera respuestas que suenan plausibles basadas en datos de entrenamiento obsoletos. Esto es especialmente problemático para tareas que involucran precios, eventos recientes, disponibilidad de productos o cualquier información urgente. Agregar búsqueda web a LangGraph requiere definir un nodo de herramienta personalizado y conectarlo al gráfico.
La solucion de Scavio
Agregue Scavio como nodo de herramienta de búsqueda en su gráfico LangGraph. La herramienta acepta una consulta y un parámetro de plataforma, devuelve resultados JSON estructurados y los introduce en el contexto del agente para un razonamiento fundamentado. El nodo de búsqueda se ejecuta como parte de la ejecución del gráfico, por lo que el agente puede decidir cuándo y cómo buscar en función de su estado de razonamiento.
Antes
Antes de agregar la base de búsqueda, el agente de LangGraph respondió preguntas sobre precios con estimaciones de datos de capacitación que estaban desactualizadas con meses. Las respuestas sobre la disponibilidad del producto fueron conjeturas. Las consultas relacionadas con noticias produjeron respuestas seguras pero ficticias.
Después
Después de integrar el nodo de la herramienta de búsqueda, el agente consulta a Scavio antes de responder preguntas urgentes. Las respuestas incluyen citas con URL. Las respuestas sobre precios reflejan datos actuales y el agente se niega correctamente a responder cuando los resultados de la búsqueda no son concluyentes.
Para quien es
Los desarrolladores de LangGraph crean agentes que necesitan información precisa y actual. Equipos que migran de cadenas LangChain a gráficos LangGraph y desean mantener la capacidad de búsqueda web en la nueva arquitectura.
Beneficios clave
- Los datos de búsqueda en vivo eliminan las alucinaciones para consultas urgentes
- Los resultados JSON estructurados se integran limpiamente en el estado LangGraph
- El agente decide cuándo buscar según las necesidades de razonamiento
- Cobertura multiplataforma: Google, Amazon, YouTube, Reddit en una sola herramienta
- El costo por consulta de $0,005 mantiene la conexión a tierra asequible a escala
Ejemplo en Python
import requests
from typing import TypedDict, Annotated
API_KEY = "your_scavio_api_key"
def scavio_search(query: str, platform: str = "google") -> str:
"""Search the web for current information. Use for prices, news, products, or any time-sensitive data."""
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": platform, "query": query, "ai_overview": platform == "google"},
timeout=15,
)
res.raise_for_status()
data = res.json()
blocks = []
if data.get("ai_overview"):
blocks.append(f"AI Overview: {data['ai_overview']['text'][:300]}")
for r in data.get("organic", [])[:5]:
blocks.append(f"- {r.get('title', '')}: {r.get('snippet', '')} ({r.get('link', '')})")
return "\n".join(blocks) if blocks else "No results found."
# LangGraph integration:
# from langgraph.prebuilt import create_react_agent
# tools = [scavio_search]
# agent = create_react_agent(model, tools)
# result = agent.invoke({"messages": [("user", "What is Scavio API pricing in 2026?")]})
print(scavio_search("scavio api pricing 2026"))Ejemplo en JavaScript
const API_KEY = "your_scavio_api_key";
async function scavioSearch(query, platform = "google") {
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, query, ai_overview: platform === "google" }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
const data = await res.json();
const blocks = [];
if (data.ai_overview) blocks.push(`AI Overview: ${data.ai_overview.text?.slice(0, 300)}`);
for (const r of (data.organic ?? []).slice(0, 5)) {
blocks.push(`- ${r.title ?? ""}: ${r.snippet ?? ""} (${r.link ?? ""})`);
}
return blocks.join("\n") || "No results found.";
}
// LangGraph.js integration:
// import { createReactAgent } from "@langchain/langgraph/prebuilt";
// const tools = [scavioSearch];
// const agent = createReactAgent({ llm: model, tools });
console.log(await scavioSearch("scavio api pricing 2026"));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
Comunidad, publicaciones y comentarios en hilos de cualquier subreddit