Inspiration
Muchas pymes descubren una falla de TI cuando el cliente llama molesto. Las señales ya existían, pero estaban dispersas entre métricas, logs y eventos normales del negocio. Creamos Sentinel para reconocer esas señales y permitir que el equipo técnico actúe antes del impacto.
What it does
Sentinel analiza minuto a minuto la telemetría sintética de Kaiku: CPU, RAM, disco, latencia, errores, logs y contexto operativo.
El sistema:
- Calcula riesgo temprano en horizontes de 40 minutos, 2 horas, 6 horas y 24 horas.
- Reduce falsas alarmas reconociendo respaldos, campañas y otras actividades normales.
- Separa fallas de telemetría de riesgos de incidente.
- Genera alertas con empresa, timestamp, score de confianza y tipo probable.
- Conserva evidencia causal y recomienda una acción verificable.
- Permite descargar el CSV requerido por el reto.
- En un entorno controlado, puede seleccionar un runbook autorizado, ejecutarlo, verificar la recuperación y revertirlo si falla.
How we built it
Construimos un pipeline causal en Python que transforma cada corrida en características obtenidas exclusivamente del presente y el pasado.
El detector combina:
- Cuatro modelos
HistGradientBoostingClassifier. - Perfiles robustos de comportamiento normal condicionados por contexto.
Isolation Forestpara detectar desviaciones.- Tendencias, cambios relativos y distancia contra el baseline histórico.
- Una máquina de estados con persistencia, recuperación y cooldown para controlar el ruido.
El backend utiliza FastAPI, SQLAlchemy, REST y Server-Sent Events. El frontend está construido con React, TypeScript, Vite, TanStack Query y Zod.
Gemini no genera alertas ni modifica el score. Solamente puede elegir un identificador de una lista cerrada de runbooks preautorizados. Un servidor MCP valida nuevamente la acción antes de ejecutarla en la infraestructura controlada.
Challenges we ran into
El reto principal fue detectar señales tempranas sin acceder a las soluciones reservadas del evaluador.
También tuvimos que resolver:
- Datos faltantes, valores inválidos y apagones.
- Logs ruidosos que no siempre representan incidentes.
- Eventos de negocio que parecen anomalías, pero son normales.
- Prevención de fuga de información futura.
- Control de alertas repetidas.
- Separación entre riesgo, calidad de datos y causa probable.
- Reproducibilidad de resultados entre las 54 corridas.
Como no existe ground truth público, utilizamos episodios proxy únicamente para entrenamiento y validación interna, sin presentarlos como resultados oficiales.
Accomplishments that we're proud of
- Procesamos las 54 corridas de Kaiku con un modelo y una política congelados.
- Conservamos causalidad: una decisión en el minuto
tsólo utiliza datos disponibles hastat. - Generamos archivos CSV válidos, ordenados y sin alertas duplicadas.
- Separamos alertas de riesgo de interrupciones de telemetría.
- Implementamos persistencia idempotente y streaming reanudable.
- Creamos una ruta segura de remediación con allowlist, verificación y rollback.
- El sistema de detección continúa funcionando aunque Gemini no esté disponible.
- La aplicación puede clonarse y ejecutarse de forma reproducible en otra computadora.
What we learned
Aprendimos que detectar anomalías no es suficiente. Un sistema útil debe conectar:
primera señal → detección confiable → decisión segura → acción → verificación
También aprendimos que un score alto no necesariamente representa un incidente real. El contexto del negocio, la persistencia temporal y la calidad de la evidencia son indispensables para evitar que los operadores pierdan confianza en el sistema.
What's next for Sentinel
Los siguientes pasos son:
- Validar el modelo contra las etiquetas privadas del evaluador.
- Calibrar el score como probabilidad cuando exista ground truth suficiente.
- Entrenar una versión donde los logs también participen directamente en el riesgo.
- Incorporar más empresas sin mezclar sus comportamientos normales.
- Ejecutar primero en modo sombra sobre telemetría real.
- Integrar runbooks con infraestructura productiva mediante permisos, canary deployments y rollback comprobable.
- Ampliar las pruebas automáticas de backend y frontend.
Built With
- docker
- fastapi
- google-gemini
- mock
- model-context-protocol
- numpy
- pandas
- pnpm
- pyarrow
- pytest
- python
- railway
- react
- recharts
- scikit-learn
- server-sent-events
- service
- sqlalchemy
- sqlite
- tanstack-query
- typescript
- vite
- zod
Log in or sign up for Devpost to join the conversation.