Construir tu propia perplexidad: la arquitectura detrás de la investigación profunda impulsada por la IA
⚠️ Una llamada al despertar para los desarrolladores
Muchos programadores perderán sus empleos a la IA en los próximos años, pero no aquellos que aprendan a construirlo.Su misión no es sólo aprender a usar ChatGPT o Claude, es convertirse en el creador de tales sistemas, construir la próxima Perplexidad en lugar de simplemente usarla.
⚠️ Una llamada al despertar para los desarrolladores
Muchos programadores perderán sus empleos a la IA en los próximos años, pero no aquellos que aprendan a construirlo.Su misión no es sólo aprender a usar ChatGPT o Claude, es convertirse en el creador de tales sistemas, construir la próxima Perplexidad en lugar de simplemente usarla.
La fuente abierta:https://github.com/aifa-agi/aifa-deep-researcer-starter/
1. What You'll Master by Reading This Article
Qué aprenderás leyendo este artículoEste artículo proporciona un plan arquitectónico completo para construir su propio agente de IA de investigación profunda, similar a la función de "Investigación profunda" de Perplexity.
Technical ArchitectureCómo diseñar un sistema de búsqueda recursiva utilizando Next.js 15, OpenAI y exa.ai que realmente funciona en la producción
Mental ModelsPor qué la búsqueda profunda es una estructura de árbol, no un proceso lineal - y cómo esto cambia todo sobre la investigación de la IA
Practical SolutionsCómo integrar la búsqueda web externa con bases de conocimiento vectoriales internas para crear contenido verdaderamente único que sus competidores no pueden replicar
Performance OptimizationCómo gestionar los recursos del servidor y la experiencia del usuario durante operaciones de IA de larga duración sin romper el banco
Production-Ready CodeImplementaciones de TypeScript de concreto utilizando la moderna pila de tecnología que puede implementar hoy
Al final de este artículo, tendrá una comprensión clara de cómo construir un SaaS auto-hostado para la investigación profunda que se puede integrar en cualquier producto, lo que le dará una ventaja competitiva que es realmente difícil de replicar.
1.1. The Technology Stack That Powers Intelligence
Para implementar nuestro agente de IA de investigación profunda, utilizamos una pila de tecnología moderna optimizada para aplicaciones listas para la producción con un uso intensivo de IA. Esta no es solo una demostración de tecnología, está construida para la escala y la fiabilidad del mundo real.
1.1.1. Frontend and Framework
React 19La última versión con mejor rendimiento y nuevas capacidades de rendimiento simultáneo que manejan sin problemas las interacciones complejas de IA
Next.js 15Framework React completa con App Router, incluyendo soporte para rutas paralelas y de intercepción (perfecto para flujos de trabajo de IA complejos)
TypeScript 5Tipo riguroso para la fiabilidad del código y la experiencia superior del desarrollador en la construcción de sistemas de IA complejos
1.1.2. AI and Integrations
OpenAI SDK (v4.96.2)SDK oficial para la integración con GPT-4 y otros modelos de OpenAI, con soporte de streaming completo
AI SDK (v4.1.45)- Biblioteca universal para trabajar con varios proveedores de IA, dándole la flexibilidad para cambiar de modelos
Exa.js (v1.4.10)- Motor de búsqueda orientado a la IA especializado para la búsqueda semántica que realmente entiende el contexto
1.1.3. UI and Styling
Tailwind CSS 4Framework CSS de utilidad para el desarrollo rápido sin sacrificar la calidad del diseño
Radix UIComponentes sin cabeza para crear interfaces accesibles que funcionen en todos los dispositivos
Lucide React- Biblioteca de iconos moderna con un lenguaje de diseño consistente
shadcn/ui- Sistema de componentes basado en Radix UI y Tailwind CSS para interfaces de nivel profesional
1.1.4. Forms and Validation
React Hook Form- Biblioteca de alto rendimiento para el manejo de formularios que no ralentiza sus interfaces de IA
ZodEsquema de validación TypeScript-first con escritura estática que captura los errores antes de que lleguen a la producción
Hookform ResolversIntegración sin problemas entre Zod y React Hook Form
1.1.5. Content Processing
React MarkdownRendimiento de contenido Markdown con soporte de componentes para informes generados por la IA rica
date-fns- Biblioteca moderna para el manejo de fechas en los cronogramas de investigación de IA
Why This Stack Matters
Esta tecnología proporciona lahigh performance, detype safety, yscalabilityCada elección aquí es intencional, desde las rutas paralelas de Next.js 15 que manejan flujos de trabajo de IA complejos, hasta Exa.js que proporciona las capacidades de búsqueda semántica que hacen posible la investigación profunda.
The result?Un sistema que puede manejar la complejidad computacional de la investigación de IA recursiva, manteniendo al mismo tiempo los estándares de experiencia del usuario que requieren las aplicaciones modernas.
Listo para ver cómo estas piezas se ajustan para crear algo realmente poderoso? subamos a la arquitectura que hace que todo funcione.
La revolución de la IA no está llegando, está aquí. Y está creando una gran división en la comunidad de desarrolladores. Por un lado están aquellos que ven la IA como otra herramienta para aumentar la productividad, usando ChatGPT para escribir funciones y deshabilitar el código.the real opportunity isn't in using AI—it's in building it.
Mientras que la mayoría de los desarrolladores están aprendiendo a promover ChatGPT de manera más efectiva, un grupo más pequeño está dominando la arquitectura detrás de sistemas como Perplexity, Claude y agentes de IA personalizados.
The harsh realityLas empresas no necesitan desarrolladores que puedan usar herramientas de IA, necesitan desarrolladores que puedan construir sistemas de IA. La diferencia entre estas dos habilidades determinará quién prospera y quién se vuelve obsoleto en el próximo ciclo económico.
Este artículo proporciona un plan arquitectónico completo para construir su propio agente de investigación profunda alimentado por IA, similar a la característica de "Investigación profunda" de Perplexity. Aprenderá no solo la implementación técnica, sino los modelos mentales y los principios de diseño que separan las integraciones de IA amateur de los sistemas listos para la producción que pueden convertirse en ventajas competitivas.
What you'll master by the end:
- Arquitectura de búsqueda recursiva: Cómo diseñar sistemas que piensan en árboles, no en líneas
- Pipelines de datos AI-first: integración de la búsqueda web externa con bases de conocimiento internas
- Orquestación de agentes: Construir sistemas de IA que puedan evaluar, iterar y mejorar sus propios resultados
- Consideraciones de producción: Gestionar los recursos del servidor, los horarios y la experiencia del usuario para operaciones de IA de larga duración
El objetivo no es darle código para copiar-pasar. Es transferir el pensamiento arquitectónico que le permitirá diseñar sistemas de IA para cualquier dominio, cualquier caso de uso y cualquier escala. Al final, tendrá el marco mental para construir agentes de IA que no solo responden a preguntas - realizan investigaciones como analistas expertos.
Listo para pasar del consumidor de IA al arquitecto de IA? sumergimos en por qué los LLM tradicionales necesitan un "perro guía" para navegar por Internet de manera efectiva.
2. Introduction: Life After ChatGPT Changed Everything
Introducción: La vida después de ChatGPT cambió todoEstamos viviendo en uno de los períodos más transformadores de la historia de la tecnología. ChatGPT y otros modelos de gran lenguaje (LLMs) han revolucionado fundamentalmente la forma en que interactúamos con la información. pero si ha estado construyendo aplicaciones serias con estas herramientas, probablemente haya golpeado el mismo muro que yo:models only know the world up to their training cutoff date, and they hallucinate with alarming confidence.
2.1. The Problem: Band-Aid Web Search in Modern LLMs
Los equipos detrás de ChatGPT, Claude y otros modelos trataron de resolver esto con la búsqueda web integrada.Suena genial en teoría, pero cavar más profundamente y encontrará algunos defectos arquitectónicos graves que lo hacen inadecuado para aplicaciones de producción:
Surface-Level Search: El sistema realiza una o dos consultas de búsqueda, captura los primeros resultados y lo llama un día.
Zero Follow-ThroughSi la primera búsqueda no da resultados completos, el sistema no hace preguntas de seguimiento ni explora ángulos alternativos.
Garbage Data QualityLos motores de búsqueda tradicionales devuelven páginas HTML confundidas con anuncios, elementos de navegación y contenido irrelevante.
Context IsolationEl sistema no puede conectar la información encontrada con sus datos internos, documentos de la empresa o bases de conocimiento específicas de dominio.
2.2. The Gold Standard: Perplexity's Deep Research Revolution
Perplexity fue la primera compañía que nos mostró cómo debería funcionar realmente la integración de búsqueda-LLM. Su enfoque es fundamentalmente diferente de estas soluciones de ayuda a la banda:
AI-Optimized Search EnginesEn lugar de las llamadas de API genéricas de Google, utilizan sistemas de búsqueda especializados que devuelven contenido limpio y estructurado diseñado para el consumo de IA.
Iterative Investigation ProcessEl sistema no se detiene en los resultados iniciales: analiza los hallazgos, formula nuevas preguntas y continúa la búsqueda hasta que construye una imagen completa.
Deep Research ModeEste es un agente de IA autónomo que puede trabajar durante minutos a la vez, perforando recursivamente en temas y recogiendo información de docenas de fuentes.
This is exactly the kind of system we're going to build together.
2.3. Why This Matters for Every Developer
En la era de la primera IA, cada producto está corriendo para convertirse en "más inteligente".Pero simplemente conectar la API de ChatGPT es solo una apuesta de mesa ahora.
- Buscar información actual de Internet en tiempo real
- Combine datos públicos con sus bases de conocimiento propietarias
- Generar insights únicos imposibles de obtener de los LLM estándar
- Adaptarse a su dominio de negocio específico y a los matices de la industria
2.4. What You'll Walk Away With
Mi objetivo no es darte código para copiar (aunque obtendrás mucho de eso).Quiero transferir los modelos mentales y los principios arquitectónicos que te permitirán:
- Entender la filosofía detrás de la investigación profunda de IA
- Diseñar la arquitectura para su caso de uso específico
- Implementar el sistema utilizando la pila moderna (Next.js 15, OpenAI, exa.ai)
- Integrar la solución en cualquier producto existente
- Escale y optimice el sistema para sus necesidades
Al final de este artículo, tendrá un plan arquitectónico completo y ejemplos de código listos para la producción para construir su propia "Perplexidad" - un agente de IA que podría convertirse en la arma secreta de su producto.
Important: No solo estudiaremos la implementación técnica, sino también la lógica empresarial. ¿Por qué la búsqueda recursiva es más efectiva que la lineal? ¿Cómo combinas correctamente fuentes externas e internas? ¿Qué patrones UX funcionan para operaciones de IA de larga duración? Estas preguntas son tan críticas como el código.
2.5. For the Impatient: Skip to the Code
Para aquellos que ya tienen los conceptos y quieren sumergirse directamente en la implementación, aquí está la solución de código abierto que vamos a construir:https://github.com/aifa-agi/aifa-deep-researcer-starter
https://github.com/aifa-agi/aifa-deep-researcer-starterPersonalmente no puedo soportar artículos que te dan muchas palabras y poca sustancia. siéntate libre de clonar el repo y hacerlo ejecutar en modo de desarrollo ahora mismo.
Pro tip: Atraerás limitaciones de tiempo (403 errores) en el nivel de alojamiento gratuito de Vercel en la producción, pero en localhost puedes experimentar completamente y estudiar los registros al contenido de tu corazón.
Listo para construir el futuro de la investigación impulsada por la IA? Comencemos por comprender por qué los LLMs necesitan un "perro guía" para navegar por Internet de manera efectiva.
3. Why LLMs Need a "Guide Dog": The Critical Role of External Search Systems
Por qué los LLM necesitan un "perro guía": el papel crítico de los sistemas de búsqueda externosAquí está una verdad dura que muchos desarrolladores aprenden de la manera cara:Large Language Models cannot independently access current information from the internetEsto no es un bug, es una limitación arquitectónica fundamental que requiere una solución sofisticada: la integración con sistemas de búsqueda especializados diseñados para el consumo de IA.
3.1. Why Traditional Search Engines Are AI Poison
Google, Bing y otros motores de búsqueda tradicionales fueron construidos para los humanos navegando por la web, no para las máquinas que procesan datos.
- Bloques de anuncios y trastornos de navegación que confunden la extracción de contenido
- Contenido irrelevante (comentarios, barras laterales, pasos, banners de cookies)
- Datos no estructurados que requieren un análisis complejo y a menudo fallan
javascript// The traditional approach - a nightmare for AI
const htmlResponse = await fetch('https://api.bing.com/search?q=query');
const messyHtml = await htmlResponse.text();
// You get HTML soup with ads, scripts, and digital garbage
// Good luck extracting meaningful insights from this mess
He visto que los equipos pasan semanas construyendo analizadores de HTML, solo para que se rompan cada vez que un sitio importante actualiza su diseño.It's not scalable, and it's definitely not reliable.
3.2. Keyword Matching vs. Semantic Understanding: A World of Difference
Los sistemas de búsqueda tradicionales buscan coincidencias exactas de palabras, ignorando completamente el contexto y el significado. Una consulta como "Optimización de Next.js para comercio electrónico" podría perder un excelente artículo sobre "aumentar el rendimiento de las aplicaciones React en las tiendas en línea", aunque sean temas semánticamente idénticos.
Esto es como tener un asistente de investigación que solo puede encontrar libros al coincidir con las palabras exactas en el título, mientras ignora todo sobre el contenido real.For AI agents doing deep research, this approach is fundamentally broken.
3.3. AI-Native Search Engines: The Game Changer
Sistemas especializados como Exa.ai, Metaphor y Tavily resuelven los problemas básicos que hacen que la búsqueda tradicional no sea útil para la IA:
Comprensión Semántica Querer
Utilizan representaciones vectoriales para buscar por significado, no sólo palabras clave.Su IA puede encontrar contenido relevante incluso cuando los términos exactos no coinciden.
Datos limpios y estructurados
Devuelven contenido preprocesado sin basura HTML. No más pesadillas de análisis o extractores rotos.
Concienciación Contextual
Comprenden las consultas anteriores y el contexto general de la investigación, permitiendo una investigación verdaderamente iterativa.
javascript// The AI-native approach - clean and powerful
const cleanResults = await exa.search({
query: "Detailed analysis of Next.js performance optimization for high-traffic e-commerce platforms",
type: "neural",
contents: { text: true, summary: true }
});
// You get clean, relevant content ready for AI processing
// No parsing, no cleanup, no headaches
3.4. Why This Matters for Production Systems
La calidad de sus datos de entrada determina directamente la calidad de su resultado final de investigación. los motores de búsqueda nativos de IA proporcionan:
Data ReliabilityContenido estructurado sin necesidad de análisis de HTML frágil
ScalabilityAPIs estables diseñados para un uso automatizado y de alto volumen
Cost Efficiency: Overhead computacional reducido para el procesamiento de datos
AccuracyMejor relevancia de fuente conduce a mejores perspectivas finales
javascript// Hybrid search: external + internal sources
const [webResults, vectorResults] = await Promise.all([
exa.search(query),
vectorStore.similaritySearch(query)
]);
const combinedContext = [...webResults, ...vectorResults];
// Now your AI has both current web data AND your proprietary knowledge
3.5. The Bottom Line: Architecture Matters
Los motores de búsqueda nativos de IA no son sólo un detalle técnicothey're the architectural foundationSin el "perro guía" correcto, incluso el LLM más sofisticado se esforzará por crear un análisis profundo y preciso de la información actual.
Piense así: no enviaría a un brillante investigador a una biblioteca donde todos los libros estén escritos en código y la mitad de las páginas son anuncios.
The solution?Dale a su IA las herramientas adecuadas para el trabajo.En la próxima sección, nos sumergiremos en los patrones arquitectónicos específicos que hacen posible la investigación recursiva y profunda.
Listo para ver cómo se ajustan las piezas? Exploremos el diseño del sistema que potencia a los agentes de investigación de IA verdaderamente inteligentes.
4. Think Like a Tree: The Architecture of Recursive Search
4. Think Like a Tree: The Architecture of Recursive SearchEl cerebro humano estructura naturalmente la información compleja como redes jerárquicas.Cuando un investigador investiga un nuevo tema, no se mueven en línea recta: desarrollan una red de conocimiento similar a un árbol donde cada nuevo descubrimiento genera preguntas adicionales y direcciones de investigación.Este es exactamente el modelo mental que necesitamos implementar en nuestra arquitectura de agentes de inteligencia artificial de búsqueda profunda.
4.1. The Fundamental Difference in Approaches
Los sistemas de búsqueda tradicionales y la búsqueda web integrada en los LLM funcionan linealmente: recibir consulta → realizar búsqueda → devolver resultados → generar respuestas.
Problems with the Linear Approach:
- Resultados a nivel de superficie: el sistema se detiene en los primeros hechos que encuentra
- No hay continuidad de contexto: cada consulta de búsqueda está aislada de las anteriores
- Conexiones que faltan: el sistema no puede ver las relaciones entre diferentes aspectos de un tema
- Calidad aleatoria: Los resultados dependen totalmente de la suerte de la consulta inicial
El enfoque basado en árboles resuelve estos problemas modelando el proceso natural de la investigación humana.Cada fuente descubierta puede generar nuevas preguntas, que se convierten en ramas de investigación separadas.
4.2. Anatomy of a Search Tree
Examinemos la estructura de un árbol de búsqueda profunda con un ejemplo concreto:
textNext.js vs WordPress for AI Projects/
├── Performance/
│ ├── Source 1
│ ├── Source 2
│ └── Impact of AI Libraries on Next.js Performance/
│ └── Source 7
├── Development Costs/
│ ├── Source 3
│ └── Source 4
└── SEO and Indexing/
├── Source 5
└── Source 6
First-level branchesson los principales aspectos del tema que el LLM genera basado en el análisis de la consulta original. En nuestro ejemplo, estos son el rendimiento, el coste y el SEO. Estos subtemas no se forman aleatoriamente - el LLM analiza el espacio semántico de la consulta e identifica las direcciones clave de investigación.
Tree leavesson fuentes específicas (artículos, documentos, estudios) que se encuentran para cada subcuestión. Cada hoja contiene información factual que se incluirá en el informe final.
Recursive branchesson la característica más poderosa de esta arquitectura.Cuando el sistema analiza las fuentes encontradas, puede descubrir nuevos aspectos del tema que requieren investigación adicional.Estos aspectos se convierten en nuevas subcuerdas, generando sus propias ramas.
4.3. Practical Advantages of Tree Architecture
Research CompletenessEn lugar de una colección aleatoria de hechos, el sistema construye un mapa de conocimiento lógicamente conectado donde cada elemento tiene su lugar en la estructura general.
Adaptive Depth: El sistema determina automáticamente qué direcciones requieren una investigación más profunda.Si una rama produce muchas fuentes relevantes, el sistema puede ir más profundamente.Si una dirección resulta no informativa, la búsqueda termina temprano.
Contextual Connectivity: Cada nueva consulta de búsqueda se forma teniendo en cuenta la información ya encontrada. Esto permite preguntas más precisas y específicas que las búsquedas aisladas.
Quality Assessment: At each tree level, the system can evaluate the relevance and quality of found sources, filtering noise and concentrating on the most valuable information.
4.4. Managing Tree Parameters
Search Depthdetermina cuántos niveles de recursión el sistema puede realizar. Profundidad 1 significa sólo subcuerdas principales sin más perforación. Profundidad 3-4 permite una investigación verdaderamente detallada.
Search WidthControla el número de sub-preguntas en cada nivel. Demasiada anchura puede conducir a la investigación superficial de muchas direcciones.
Branching Factores el número promedio de nodos infantiles para cada nodo de árbol. En el contexto de la búsqueda de información, esto corresponde al número de nuevas subcuerdas generadas basándose en cada fuente encontrada.
4.5. Optimization and Problem Prevention
Cycle PreventionEl sistema debe rastrear las direcciones ya investigadas para evitar los circuitos de recursión infinitos.
Dynamic Prioritization: Las ramas más prometedoras deben investigarse con mayor profundidad, mientras que las direcciones menos informativas pueden terminar antes.
Parallel InvestigationDiferentes ramas de árboles se pueden investigar en paralelo, acelerando significativamente el proceso cuando hay suficientes recursos computacionales disponibles.
Memory and CachingLos resultados de la búsqueda deben ser almacenados en caché para evitar solicitudes repetidas a las API externas cuando los temas se sobrepasan.
Execution Time and Server Timeouts: Este es otro problema que a menudo se manifiesta cuando se implementa la investigación profunda, especialmente si la profundidad excede dos niveles.Podríamos decir que aumentar el nivel aumenta exponencialmente la complejidad de la investigación.
4.6. The Bottom Line: From Chaos to System
La arquitectura de Tree transforma el caótico proceso de búsqueda de información en investigación sistemática, donde cada elemento tiene su lugar en la estructura general del conocimiento. Esto permite al agente de IA trabajar como un investigador experimentado - no solo recopilando hechos, sino construyendo una comprensión integral del tema investigado.
The result? An AI system that thinks like a human researcher, but operates at machine scale and speed. In the next section, we'll dive into the technical implementation that makes this architectural vision a reality.
Listo para ver cómo traducimos este marco conceptual en código de producción? Exploremos la pila técnica que potencia la inteligencia recursiva.
5. The "Search-Evaluate-Deepen" Cycle: Implementing True Recursion
El ciclo de “Search-Evaluate-Deepen”: Implementación de la verdadera recursiónEl análisis recursivo de Internet no es sólo una característica técnica, es una necesidad fundamental para crear agentes de IA verdaderamente inteligentes.La primera página de cualquier resultado de búsqueda sólo muestra la punta del iceberg de la información.
5.1. Data Architecture for Deep Investigation
En las implementaciones de producción, el sistema opera con tipos de datos estructurados que acumulan conocimiento en cada nivel de recursión:
typescripttype Learning = {
learning: string;
followUpQuestions: string[];
};
type SearchResult = {
title: string;
url: string;
content: string;
publishedDate: string;
};
type Research = {
query: string | undefined;
queries: string[];
searchResults: SearchResult[];
knowledgeBaseResults: string[]; // Vector database responses
learnings: Learning[];
completedQueries: string[];
};
Esta estructura de datos acumula conocimiento en cada nivel de recursión, creando un contexto unificado para toda la investigación - exactamente lo que separa la investigación profesional de la recopilación aleatoria de hechos.
5.2. Stage 1: "Search" — Intelligent Query Generation
El sistema no se basa en una única consulta de búsqueda, sino que genera varias consultas dirigidas utilizando la inteligencia LLM:
typescriptconst generateSearchQueries = async (query: string, breadth: number) => {
const {
object: { queries },
} = await generateObject({
model: mainModel,
prompt: `Generate ${breadth} search queries for the following query: ${query}`,
schema: z.object({
queries: z.array(z.string()).min(1).max(10),
}),
});
return queries;
};
Key insight: Elbreadth
El parámetro controla la anchura de la investigación: el número de diferentes aspectos del tema que se investigarán en paralelo.Este es el lugar donde ocurre la magia: en lugar de la búsqueda lineal, se obtiene una cobertura exponencial.
5.3. Stage 2: "Evaluate" — AI-Driven Result Filtering
No todas las fuentes encontradas son igualmente valiosas.El sistema utiliza un agente de IA con herramientas para la evaluación inteligente de cada resultado:
typescriptconst searchAndProcess = async (/* parameters */) => {
const pendingSearchResults: SearchResult[] = [];
const finalSearchResults: SearchResult[] = [];
await generateText({
model: mainModel,
prompt: `Search the web for information about ${query}, For each item, where possible, collect detailed examples of use cases (news stories) with a detailed description.`,
system: "You are a researcher. For each query, search the web and then evaluate if the results are relevant",
maxSteps: 10,
tools: {
searchWeb: tool({
description: "Search the web for information about a given query",
parameters: z.object({ query: z.string().min(1) }),
async execute({ query }) {
const results = await searchWeb(query, breadth, /* other params */);
pendingSearchResults.push(...results);
return results;
},
}),
evaluate: tool({
description: "Evaluate the search results",
parameters: z.object({}),
async execute() {
const pendingResult = pendingSearchResults.pop();
if (!pendingResult) return "No search results available for evaluation.";
const { object: evaluation } = await generateObject({
model: mainModel,
prompt: `Evaluate whether the search results are relevant and will help answer the following query: ${query}. If the page already exists in the existing results, mark it as irrelevant.`,
output: "enum",
enum: ["relevant", "irrelevant"],
});
if (evaluation === "relevant") {
finalSearchResults.push(pendingResult);
}
return evaluation === "irrelevant"
? "Search results are irrelevant. Please search again with a more specific query."
: "Search results are relevant. End research for this query.";
},
}),
},
});
return finalSearchResults;
};
Revolutionary approachEl sistema utiliza un agente de IA con herramientas que pueden buscar y evaluar los resultados repetidamente hasta que encuentre suficiente información relevante.
5.4. Vector Knowledge Base Integration
El poder real surge de la sinergia entre la búsqueda externa e interna. Para cada consulta, el sistema busca simultáneamente Internet y su propia base de conocimiento vector:
typescriptasync function getKnowledgeItem(query: string, vectorStoreId: string) {
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const response = await client.responses.create({
model: "gpt-4o-mini",
tools: [
{
type: "file_search",
vector_store_ids: [vectorStoreId],
max_num_results: 5,
},
],
input: [
{
role: "developer",
content: `Search the vector store for information. Output format language: ${process.env.NEXT_PUBLIC_APP_HTTP_LANG || "en"}`,
},
{
role: "user",
content: query,
},
],
});
return response.output_text;
}
5.5. Practical Implementation
En el ciclo principal de investigación, el sistema consulta ambas fuentes en paralelo:
typescriptfor (const query of queries) {
const searchResults = await searchAndProcess(/* web search */);
accumulatedResearch.searchResults.push(...searchResults);
if (vectorStoreId && vectorStoreId !== "") {
const kbResult = await getKnowledgeItem(query, vectorStoreId);
accumulatedResearch.knowledgeBaseResults.push(kbResult);
}
}
5.6. Stage 3: "Deepen" — Generating Follow-Up Questions
Fase 3: “Deepen” – Generar preguntas de seguimientoThe most powerful feature: the system's ability to generate new research directions based on already found information:
typescriptconst generateLearnings = async (query: string, searchResult: SearchResult) => {
const { object } = await generateObject({
model: mainModel,
prompt: `The user is researching "${query}". The following search result were deemed relevant.
Generate a learning and a follow-up question from the following search result:
<search_result>
${JSON.stringify(searchResult)}
</search_result>`,
schema: z.object({
learning: z.string(),
followUpQuestions: z.array(z.string()),
}),
});
return object;
};
5.7. Recursive Deepening
Cada fuente encontrada es analizada para extraer nuevas preguntas que se convierten en la base para el siguiente nivel de búsqueda:
typescriptfor (const searchResult of searchResults) {
const learnings = await generateLearnings(query, searchResult);
accumulatedResearch.learnings.push(learnings);
accumulatedResearch.completedQueries.push(query);
const newQuery = `Overall research goal: ${prompt}
Previous search queries: ${accumulatedResearch.completedQueries.join(", ")}
Follow-up questions: ${learnings.followUpQuestions.join(", ")}`;
await deepResearch(
/* search parameters */,
newQuery,
depth - 1,
Math.ceil(breadth / 2), // Reduce width at each level
vectorOfThought,
accumulatedResearch,
vectorStoreId
);
}
5.8. Managing Depth and Complexity
La implementación de la producción muestra cómo gestionar el crecimiento exponencial de la complejidad:
typescriptconst deepResearch = async (
/* multiple filtering parameters */,
prompt: string,
depth: number = 2,
breadth: number = 5,
vectorOfThought: string[] = [],
accumulatedResearch: Research = {
query: undefined,
queries: [],
searchResults: [],
knowledgeBaseResults: [],
learnings: [],
completedQueries: [],
},
vectorStoreId: string
): Promise<Research> => {
if (depth === 0) {
return accumulatedResearch; // Base case for recursion
}
// Adaptive query formation based on "thought vector"
let updatedPrompt = "";
if (vectorOfThought.length === 0) {
updatedPrompt = prompt;
} else {
const vectorOfThoughItem = vectorOfThought[vectorOfThought.length - depth];
updatedPrompt = `${prompt}, focus on these important branches of thought: ${vectorOfThoughItem}`;
}
// ... rest of implementation
};
5.9. Key Optimizations
Width Reduction: deMath.ceil(breadth / 2)
at each level prevents exponential growth
Thought Vector: devectorOfThought
Permite orientar la investigación en áreas específicas
Context Accumulation: All results are preserved in a unified data structure
5.10. The Hybrid Advantage in Practice
Creating Unique ContentCombinar datos públicos con conocimientos internos permite crear informes que nadie más puede replicar. sus competidores pueden acceder a las mismas fuentes públicas, pero no a sus casos internos, estadísticas y experiencia.
Context EnrichmentLos datos externos proporcionan moneda y amplitud, los datos internos proporcionan profundidad y especificidad.El sistema puede encontrar tendencias generales de la industria en línea, luego complementarlas con sus propios datos sobre cómo estas tendencias afectan a su negocio.
Maintaining CurrencyIncluso si la información web es obsoleta o inexacta, su base de conocimientos interna puede proporcionar datos más frescos y verificados.
6. From Chaos to Order: Generating Expert-Level Reports
Desde el caos al orden: generando informes a nivel de expertosDespués de completar todos los niveles de búsqueda recursiva, el sistema acumula enormes cantidades de información dispar: resultados de búsqueda web, datos de base de datos vectoriales, aprendizajes generados y preguntas de seguimiento.
6.1. Context Accumulation: Building the Complete Picture
All collected data is unified into a single Research
structure that serves as complete context for final synthesis:
typescripttype Research = {
query: string | undefined; // Original query
queries: string[]; // All generated search queries
searchResults: SearchResult[]; // Web search results
knowledgeBaseResults: string[]; // Vector database responses
learnings: Learning[]; // Extracted insights
completedQueries: string[]; // History of completed queries
};
This isn't just data storageEs un gráfico de conocimiento completo que captura todo el viaje de investigación.Cada visión, cada fuente, cada conexión se conserva para la síntesis final.
6.2. The Master Prompt: Where Intelligence Meets Synthesis
La calidad del informe final depende directamente de la sofisticación del prompt de generación.El sistema utiliza el modelo más potente de OpenAI para la síntesis:
typescriptconst generateReport = async (
research: Research,
vectorOfThought: string[],
systemPrompt: string
) => {
const { text } = await generateText({
model: openai("o3-mini"), // Most powerful model for synthesis
system: systemPrompt,
prompt:
"Use the following structured research data to generate a detailed expert report:\n\n" +
JSON.stringify(research, null, 2),
});
return text;
};
Key insight: We're not just asking the AI to summarize — we're providing it with a complete research dataset and asking it to think like a domain expert. The difference in output quality is dramatic.
6.3. Structured Output: Beyond Simple Summaries
El sistema no solo crea un resumen de texto, sino que genera documentos estructurados con encabezados, tablas, listas pro/con y formatación profesional, como se muestra en el ahorro de resultados:
typescriptconsole.log("Research completed!");
console.log("Generating report...");
const report = await generateReport(research, vectorOfThought, systemPrompt);
console.log("Report generated! Saving to report.md");
fs.writeFileSync("report.md", report); // Save as Markdown
Why Markdown?Es el formato perfecto para el contenido generado por IA, estructurado lo suficientemente para una presentación profesional, lo suficientemente flexible para varios formatos de salida y legible en cualquier flujo de trabajo de desarrollo moderno.
6.4. Quality Control Through System Prompts
ElsystemPrompt
Permite personalizar el estilo y la estructura del informe para necesidades específicas:
- Estilo académico para los artículos de investigación y el análisis académico
- Formato de negocio para informes corporativos y resúmenes ejecutivos
- Documentación técnica para contenido enfocado al desarrollador
- Análisis de inversiones para informes financieros y estratégicos
// Example: Business-focused system prompt const businessSystemPrompt = `You are a senior business analyst creating an executive report. Structure your analysis with:
Executive Summary
- Los principales hallazgos
- Implicaciones del mercado
- Recomendaciones
- Evaluación de riesgos
Use data-driven insights and provide specific examples from the research.`;
6.5. The Intelligence Multiplier Effect
Here's what makes this approach revolutionary: El sistema no solo agrega información, sino que sintetiza insights que surgen de las conexiones entre diferentes fuentes.Un investigador humano podría pasar 8-12 horas llevando a cabo este nivel de investigación.Nuestro sistema lo hace en 10-60 minutos, a menudo descubriendo conexiones que los humanos pierden.
6.6. Production Considerations
Memory Management: Con la investigación profunda (profundidad 3-4), el contexto acumulado puede convertirse en masivo.
Token OptimizationEl prompt de síntesis final puede superar fácilmente los límites de token.Las implementaciones de producción necesitan estrategias de truncado inteligentes que conserven las ideas más valiosas.
Quality AssuranceNo todos los informes generados son iguales.Considere implementar mecanismos de puntuación para evaluar la integridad y coherencia del informe.
6.7. Real-World Impact
Time Compression: Horas de investigación humana → Minutos de análisis de IA
Depth EnhancementLa IA puede procesar y conectar más fuentes de lo que es humanamente posible
ConsistencyCada informe sigue la misma metodología rigurosa
ScalabilityGenerar docenas de informes simultáneamente
7. Conclusion: Building the Future of AI Research
Conclusión: Construir el futuro de la investigación de IACrear un agente de IA de investigación profunda no es sólo un reto técnico, es una solución arquitectónica que puede convertirse en una ventaja competitiva para cualquier producto.Hemos cubierto el ciclo completo desde el concepto hasta la implementación, mostrando cómo transformar el proceso caótico de la búsqueda de información en una investigación sistemática y a nivel de expertos.
7.1. Key Architectural Principles
Think in Trees, Not LinesLa búsqueda profunda se trata de explorar redes de información estructuradas en árboles, donde cada descubrimiento genera nuevas preguntas y direcciones de investigación.
Use AI-Native ToolsLos motores de búsqueda especializados como exa.ai no son opcionales: son esenciales para la investigación de calidad.Retornan datos limpios en lugar de basura HTML que proporcionan las API de búsqueda tradicionales.
Apply Recursion for Depth: La primera página de los resultados es sólo la punta del iceberg. Las ideas reales se encuentran en la profundización recursiva a través del ciclo "Buscar-Evaluar-Definir".
Combine External and Internal SourcesLa sinergia entre los datos de Internet públicos y el conocimiento de la organización privada crea contenido único que no se puede obtener de ninguna otra manera.
Use LLMs for Both Analysis and SynthesisLos agentes de IA con herramientas no solo pueden buscar información sino también evaluar su relevancia, generar nuevas preguntas y crear informes estructurados.
7.2. Production-Ready Results
La implementación basada en Next.js 15, OpenAI y exa.ai demuestra que tal sistema puede ser construido y desplegado para la producción.https://github.com/aifa-agi/aifa-deep-researcer-starterMostrar todos los componentes clave:
- Arquitectura recursiva con gestión de profundidad y anchura
- Integration of web search with vector knowledge bases
- Agentes de IA con herramientas para la evaluación de resultados
- Generación de informes de expertos con capacidades de almacenamiento de archivos
7.3. Challenges and Limitations
Server TimeoutsLa investigación con profundidad superior a 2 niveles puede tomar horas, requiriendo soluciones especiales para entornos de producción.
Exponential Complexity GrowthCada nivel de profundidad aumenta el número de consultas geométricamente, lo que requiere una gestión cuidadosa de los recursos.
Source QualityIncluso los motores de búsqueda de IA pueden devolver información inexacta, lo que requiere validación adicional y verificación de hechos.
7.4. Your Next Steps
Ahora tienes un plan arquitectónico completo y ejemplos de código real.
Start with Minimal Implementation: Utilice la versión básica de este artículo para el prototipo
Explore the Ready SolutionEl clonhttps://github.com/aifa-agi/aifa-deep-researcer-starterExperimentando localmente
Adapt to Your NeedsIntegrar estos principios en los productos y flujos de trabajo existentes
8. Homework Challenge: Solving the Long-Wait UX Problem
Desafío de tareas domésticas: resolver el problema de UX de larga esperaHemos cubierto la arquitectura técnica de los agentes de investigación profunda de IA, pero queda un problema UX críticamente importante: ¿qué haces cuando el sistema funciona durante varios minutos mientras el usuario mira a una pantalla blanca? Como muestra la implementación real de aifa-deep-researcer-starter, la investigación con profundidad mayor a 2 niveles puede tomar horas, mientras que los usuarios solo ven una pantalla de carga estática.
8.1. The Problem: Server Silence Kills Trust
A diferencia de las aplicaciones web típicas donde las operaciones tardan segundos, los agentes de investigación profunda de IA pueden permanecer en silencio durante minutos.Los usuarios no reciben ningún feedback del servidor hasta el final del proceso.
- Ansiedad de espera: los usuarios no saben si el sistema está funcionando o congelado
- Pérdida de control: No hay manera de entender cuánto más esperar
- Declining Confidence: Parece que la aplicación está roto o "comer" la solicitud
- Alta tasa de rechazo: los usuarios cierran la pestaña sin esperar a los resultados
Perplexity, Claude y otros productos de IA modernos resuelven esto con animaciones interactivas, indicadores de progreso y pistas dinámicas.
8.2. The Developer Challenge
Imagínese esta restricción técnica: su ruta de la API Next.js realiza una operación larga (investigación profunda) y no puede enviar datos intermedios hasta su finalización.El frontend sólo recibe una respuesta al final.Soluciones clásicas como Server-Sent Events o WebSockets pueden no estar disponibles debido a limitaciones de alojamiento o restricciones de arquitectura.
How do you create engaging UX under these conditions that will retain users and reduce waiting anxiety?
8.3. Discussion Questions
UX Patterns and Visualization:
- ¿Qué patrones UX aplicarías para visualizar procesos de búsqueda profunda cuando el servidor está "silencioso"?
- ¿Cómo puedes simular el progreso "en vivo" incluso sin actualizaciones del estado del servidor real?
- ¿Debería utilizar falsas barras de progreso, o esto viola la confianza del usuario?
- ¿Qué animaciones y micro-interacciones ayudan a crear una sensación de un sistema "vivo"?
User Communication:
- ¿Cómo explicas a los usuarios por qué la espera puede ser larga? ¿Qué textos/ilustraciones utilizar?
- ¿Debería mostrar los tiempos de espera estimados si pueden variar mucho (2 a 60 minutos)?
- ¿Cómo visualizas las etapas del proceso ("Generar consultas de búsqueda...", "Analizar fuentes...", "Formar informe de expertos...")?
- ¿Qué metáforas ayudan a los usuarios a comprender el valor de la espera?
Technical Implementation:
- ¿Qué enfoques optimistas de la interfaz de usuario se pueden aplicar sin feedback del servidor?
- ¿Cómo implementar una interfaz "conversativa" que apoye a los usuarios durante la espera?
- ¿Puede utilizar las computadoras locales (WASM, Web Workers) para simular el progreso?
- ¿Cómo se organiza la degradación graciosa si los usuarios cierran la pestaña durante la investigación?
8.4. Learning from the Best
Soluciones de estudio implementadas en Perplexity Deep Research, Bing Copilot, Google Search Generative Experience. ¿Qué puede tomar de las pantallas de carga de juegos que mantienen la atención durante minutos? ¿Cómo solucionan Netflix, YouTube y otras plataformas los problemas de carga de contenido?
RememberEn una era de respuestas instantáneas de ChatGPT, la espera de calidad puede convertirse en una ventaja competitiva.Los usuarios están dispuestos a esperar si entienden el valor del proceso y sienten que el sistema está trabajando para ellos.
9. About the Author and AIFA Project
Sobre el autor y el Proyecto AIFAEl autor,Roman Bolxyanov, en su reciente serie de publicaciones, detalla las herramientas y soluciones arquitectónicas que implementa en su ambicioso proyecto de código abiertoAIFA(Agentes de IA en la arquitectura evolutiva y auto-replicante).
En su implementación actual, AIFA ya representa un impresionante modelo de inicio para la creación de aplicaciones AI-first con una interfaz de usuario única donde la inteligencia artificial se convierte en el método de interacción principal, mientras que la interfaz web tradicional sirve como visualización auxiliar.
Sin embargo, este es solo el comienzo.El objetivo a largo plazo del proyecto es la evolución a un sistema AGI completo donde los agentes de IA tendrán capacidades para:
- Evolución autónoma y mejora de sus algoritmos
- Auto-replicación y creación de nuevos agentes especializados
- Competencia y cooperación en entornos distribuidos
- Operaciones autónomas en espacios web y redes blockchain
La búsqueda profunda cubierta en este artículo es sólo una de las habilidades básicas de los futuros agentes AGI que podrán no solo investigar información sino también tomar decisiones, crear productos e interactuar con el mundo real.
Si usted está interesado en observar el desarrollo del proyecto y experimentar con tecnologías de IA de vanguardia, no dude en forcar elEl repositorio de AIFACada compromiso nos acerca a la creación de una inteligencia artificial verdaderamente autónoma.
Ready to build the future?El código está abierto, la arquitectura está probada y las posibilidades son ilimitadas.Su próximo avance en la investigación impulsada por la IA está a solo un clon de git lejos.