Un agente de investigación autónomo acepta un tema, realiza múltiples búsquedas en la web, recopila y deduplica fuentes y luego sintetiza los hallazgos en un informe estructurado, todo sin intervención humana. Este patrón es valioso para inteligencia de mercado, resúmenes de literatura académica y análisis competitivo. Este tutorial crea un agente de este tipo utilizando Python puro y la API de Scavio, sin depender de un marco de agente completo. El agente emite consultas de búsqueda secuenciales, extrae datos clave de fragmentos de SERP y los formatea como un informe de rebajas.
Requisitos previos
- Python 3.10 o superior
- solicita biblioteca instalada
- Una clave API de Scavio
- Una clave API de OpenAI para el paso de síntesis (opcional)
Guia paso a paso
Paso 1: Definir el plan de investigación
Divida el tema de investigación en una lista de consultas de búsqueda. Un buen agente de investigación genera de 3 a 5 consultas que cubren diferentes aspectos del tema.
def make_queries(topic: str) -> list[str]:
return [
topic,
f"{topic} latest developments 2026",
f"{topic} key players market",
f"{topic} challenges limitations",
]Paso 2: Recopilar resultados de búsqueda para cada consulta
Llame a la API de Scavio para cada consulta y combine los resultados orgánicos en una única lista deduplicada codificada por URL.
def collect_results(queries: list[str]) -> dict:
seen = {}
for query in queries:
data = search_google(query)
for r in data.get("organic_results", []):
seen[r["link"]] = r
return seenPaso 3: Extraer datos de fragmentos
Cree una lista plana de tuplas (título, fragmento, URL) a partir de los resultados deduplicados para usar en la generación de informes.
def extract_facts(results: dict) -> list[tuple]:
facts = []
for url, r in results.items():
if r.get("snippet"):
facts.append((r["title"], r["snippet"], url))
return factsPaso 4: Redactar el informe
Formatee los datos recopilados en un informe de rebajas simple. Opcionalmente, pase los hechos a un LLM para su síntesis.
def write_report(topic: str, facts: list[tuple]) -> str:
lines = [f"# Research Report: {topic}\n"]
for title, snippet, url in facts[:10]:
lines.append(f"## {title}")
lines.append(snippet)
lines.append(f"Source: {url}\n")
return "\n".join(lines)Ejemplo en Python
import os
import requests
API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"
def search_google(query: str) -> dict:
r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
json={"query": query, "country_code": "us"})
r.raise_for_status()
return r.json()
def research(topic: str) -> str:
queries = [topic, f"{topic} 2026 trends", f"{topic} challenges"]
seen = {}
for q in queries:
for r in search_google(q).get("organic_results", []):
seen[r["link"]] = r
lines = [f"# {topic}\n"]
for r in list(seen.values())[:10]:
lines.append(f"## {r['title']}")
lines.append(r.get("snippet", ""))
lines.append(f"{r['link']}\n")
return "\n".join(lines)
if __name__ == "__main__":
report = research("large language model inference optimization")
print(report)Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";
async function searchGoogle(query) {
const res = await fetch(ENDPOINT, {
method: "POST",
headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ query, country_code: "us" })
});
return res.json();
}
async function research(topic) {
const queries = [topic, `${topic} 2026 trends`, `${topic} challenges`];
const seen = new Map();
for (const q of queries) {
const data = await searchGoogle(q);
for (const r of data.organic_results || []) {
seen.set(r.link, r);
}
}
const results = [...seen.values()].slice(0, 10);
return results.map(r => `## ${r.title}\n${r.snippet || ""}\n${r.link}`).join("\n\n");
}
research("AI inference optimization").then(console.log).catch(console.error);Salida esperada
# Research Report: AI inference optimization
## Faster LLM Inference Techniques in 2026
Quantization, speculative decoding, and model distillation have reduced...
Source: https://example.com/llm-inference
## Key Players in AI Inference Hardware
NVIDIA, AMD, and Groq continue to dominate...
Source: https://example.com/inference-hardware