Framework de Investigación
Pipeline de investigación por fases, con ejecución en DAG, artefactos, esquemas e informes trazables.
El framework de investigación es la parte del ecosistema más cercana a una arquitectura formal de agentes. Modela la investigación como un pipeline con fases, dependencias, artefactos, estados y validaciones.
Objetivo
Convertir una misión en lenguaje natural en un informe Markdown verificable:
DAG de Fases
Fases
| Fase | Función |
|---|---|
| F0 | Crear la carpeta de ejecución y transformar la misión en task.json. |
| F1 | Buscar candidatos, normalizar, deduplicar y aplicar restricciones. |
| F2 | Obtener y analizar reviews. |
| F4 | Obtener precios, comparativas y estacionalidad. |
| Y1 | Buscar vídeos relevantes. |
| Y2 | Extraer las transcripciones de los vídeos. |
| F6 | Compilar el informe final con fuentes y evidencias. |
Adaptador de Investigación Externa
El pipeline de investigación puede usar un adaptador de investigación basado en MCP para recopilar información externa. Este adaptador separa el pipeline de la implementación concreta del proveedor: el pipeline solicita investigación, recibe resultados estructurados y conserva la evidencia útil como artefactos.
En la arquitectura actual, este papel puede estar respaldado por un conector MCP basado en Perplexity, pero la decisión importante es el límite de adaptación: la búsqueda externa se trata como una capacidad reemplazable, no como lógica incrustada directamente en las fases del pipeline.
Orquestador
El orquestador controla:
- el orden de ejecución;
- las fases en paralelo;
- los reintentos;
- la validación de las entradas;
- los estados parciales;
- la escritura de puntos de control;
- la notificación final.
Las fases no se llaman entre sí. Cada fase lee sus entradas y escribe sus salidas. Esta separación evita flujos ocultos y facilita la depuración.
Artefactos
Cada ejecución crea una carpeta por misión:
Estado de las Fases
El framework distingue estados que resultan útiles en sistemas reales:
| Estado | Significado |
|---|---|
pending | La fase aún no ha empezado. |
running | La fase está en ejecución. |
succeeded | La fase se completó correctamente. |
succeeded_partial | El resultado es incompleto pero válido. |
failed_retryable | El fallo se puede reintentar. |
failed_terminal | El fallo es definitivo. |
blocked_missing_input | Faltan artefactos necesarios. |
skipped | La fase se omite por diseño o por condición. |
Principio de Robustez
El estado succeeded_partial es clave. En la investigación real, algunas fuentes fallan, faltan precios y no todos los vídeos tienen transcripción. El sistema no debería romperse por eso: debería documentar la degradación y aun así producir un informe útil.