Saltar al contenido

Gestion de investigaciones

import { Aside } from ‘@astrojs/starlight/components’;

Que es una investigacion

Una investigacion es un contenedor persistente que agrupa:

  • Evidencias: documentos, ficheros, resultados OSINT ingresados con SHA-256
  • Entidades: personas, empresas, dominios, IPs… extraidas de las evidencias
  • Claims: afirmaciones verificables con trazabilidad completa hasta la evidencia fuente
  • Informes: documentos de 9 secciones generados al final

Todo persiste en SQLite + ChromaDB y sobrevive entre sesiones.

Estructura de directorios

investigaciones/<slug>/
├── evidencias/ # Ficheros originales (con hash SHA-256 en el nombre)
├── hallazgos/ # Outputs intermedios (resultados OSINT en JSON)
├── informes/ # Informes generados (Markdown)
└── metadata.json # Metadata de la investigacion

Ciclo de vida

1. Crear la investigacion

Ventana de terminal
# Desde el CLI interactivo
osint-agent investigation create "Caso Acme Corp" --goal "Due diligence"
# O con el skill de Claude Code
/investigation-init "Caso Acme Corp" --goal "Due diligence"

Crea la estructura de directorios, registra la investigacion en SQLite e inicializa la coleccion ChromaDB.

2. Ingestar evidencias

Ventana de terminal
/evidence-ingest informe-registral.pdf
/evidence-ingest contrato-2024.docx
/evidence-ingest https://example.com/press-release

El pipeline completo:

Fichero/URL
↓ SHA-256 hash (dedup: si ya existe, salta)
↓ Extraccion de texto (PDF/TXT/HTML/MD)
↓ Chunking (fragmentos solapantes)
↓ Embeddings (sentence-transformers multilingue)
↓ Almacenamiento en ChromaDB
↓ Registro en SQLite con metadatos

3. Investigar IOCs (y guardar como evidencia)

Ventana de terminal
/osint-investigate "acme-corp.com"
/osint-investigate "185.220.101.34"

El resultado del agente OSINT se guarda automaticamente como evidencia en la investigacion activa.

4. Extraer entidades

Ventana de terminal
/entity-extract

Extrae y normaliza entidades de todas las evidencias ingresadas segun la ontologia FTM:

  • Personas (con normalizacion de nombres espanoles, honorificos)
  • Empresas (con normalizacion de CIF, formas legales)
  • Dominios, IPs, emails, telefonos, cuentas bancarias (IBAN)
  • Eventos, ubicaciones, documentos

5. Registrar y verificar claims

Ventana de terminal
/claim-track "Acme Corp tiene sede registrada en Madrid segun informe registral"
/verify-claims

Cada claim se almacena con:

  • evidence_id: la evidencia que lo respalda
  • chunk_id: el fragmento especifico
  • snippet: el texto exacto de donde se extrajo
  • status: VERIFIED / DISPUTED / UNVERIFIED

6. Busqueda semantica

Ventana de terminal
/memory-query "contratos con proveedores chinos"

Busca en ChromaDB usando embeddings — encuentra informacion relevante aunque las palabras exactas no coincidan.

7. Generar informe

Ventana de terminal
/report-generate

Genera un informe de 9 secciones en investigaciones/<slug>/informes/:

  1. Resumen ejecutivo
  2. Objetivo y alcance
  3. Metodologia
  4. Hallazgos verificados
  5. Entidades identificadas
  6. Evidencias
  7. Analisis de riesgos
  8. Limitaciones y advertencias
  9. Proximos pasos recomendados

Investigacion activa

Solo puede haber una investigacion “activa” a la vez. Se guarda en data/.active:

Ventana de terminal
osint-agent investigation use caso-acme
# → escribe "caso-acme" en data/.active

Los skills de Claude Code leen data/.active automaticamente.

Gestion de multiples investigaciones

Ventana de terminal
osint-agent investigation list # Lista todas las investigaciones
osint-agent investigation use <slug> # Activa una investigacion
osint-agent status # Estado de la investigacion activa
osint-agent limits # Cuotas mensuales de operaciones
VariableDefaultDescripcion
ACTIVE_INVESTIGATIONS_LIMIT5Maximas investigaciones activas simultaneas
MONTHLY_OPERATIONS_LIMIT100Cuota mensual de operaciones