Arquitectura del sistema

Cuatro agentes que se escuchan entre sí.

La detección de burnout no es un problema de un solo modelo. FireGuard combina cuatro transformers especializados mediante una capa de convención que pondera sus votos para producir una decisión explicable.

Entrada
Texto del usuario ≥ 150 caracteres
Filtrado temático
Agente 1 · Topic Classifier BETO fine-tuned
Análisis en paralelo
Agente 2A · Sentimiento RoBERTuito
Agente 2B · Emoción RoBERTuito
Agente 3 · Burnout Detector mental-RoBERTa fine-tuned
Convención · votación ponderada 60/20/20
Decisión final + desglose score ∈ [0, 1]
Los protagonistas

Los cuatro agentes.

01

Agente 1 · Topic Classifier

BETO (BERT en español) fine-tuned sobre 1.000 mensajes sintéticos validados. Decide si el texto de entrada va de trabajo o de ocio.

Si el agente 1 dictamina que no es un contexto laboral, el análisis se detiene ahí: no tiene sentido evaluar burnout en un texto sobre fútbol. Umbral de confianza: 70%.

02

Agente 2A · Sentiment Analyzer

RoBERTuito sentiment (Pérez et al., 2021). Extrae la polaridad emocional del texto en tres categorías: positivo, negativo, neutro.

El sentimiento ofrece una señal robusta pero grosera. Por eso pondera solo un 20% en la decisión final, pero sirve como señal de polaridad independiente al agente específico.

03

Agente 2B · Emotion Analyzer

RoBERTuito emotion sobre las seis emociones básicas de Ekman: alegría, tristeza, ira, miedo, asco, sorpresa (+ neutral).

Una granularidad superior al sentimiento. Tristeza e ira persistentes apuntan a burnout; alegría apunta a bienestar. También pondera un 20%.

04

Agente 3 · Burnout Detector

mental-RoBERTa fine-tuned con un dataset propio de 94.000 mensajes etiquetados mediante el Copenhagen Burnout Inventory.

Es el modelo específico del dominio. Pondera un 60% en la decisión final porque es el único entrenado directamente sobre la tarea de detectar burnout en texto.

Base científica

Copenhagen Burnout Inventory.

Para entrenar al agente 3 no bastaba con etiquetar textos a ojo. Necesitábamos un criterio reproducible, y lo encontramos en el instrumento clínico más usado en investigación sobre burnout.

Personal

6 preguntas

Evalúan el agotamiento general del individuo: cansancio físico y mental presentes en la vida cotidiana.

Laboral

3 preguntas

Miden el grado en el que la persona atribuye su agotamiento específicamente al trabajo.

Con clientes

10 preguntas

Exploran el cansancio derivado del trato con personas (pacientes, alumnos, usuarios, clientes).

i

Cómo se genera cada etiqueta

Para cada mensaje del dataset de entrenamiento, Gemini 2.0 Flash responde las 19 preguntas del CBI en escala 1–5. Se suma la puntuación total (rango 19–95). Si supera 75 puntos, el mensaje se etiqueta como burnout; si queda bajo 30, como bienestar. Esto permite tener 94.000 ejemplos con una etiqueta clínicamente fundamentada.

Resultados

Lo que rinde el modelo.

0%
F1 Score sobre el test set del Agente 3
0%
Recall · solo 0,56% de falsos negativos
0%
Precision · el modelo rara vez se equivoca
0K
Mensajes etiquetados con CBI en el dataset
Tecnología

Bajo el capó.

Machine learning

PyTorch + Transformers

Modelos entrenados con la librería Transformers de Hugging Face sobre PyTorch. Fine-tuning con la Trainer API, 5 épocas, lr 2e-5, batch 16, max_length 256.

Backend

Flask + Cloud Run

API REST en Flask. Endpoint /analyze orquesta los cuatro agentes y devuelve el resultado con desglose completo. Desplegado en Google Cloud Run.

Dataset

Generación sintética con Gemini

Pipeline de tres agentes con Gemini 2.0 Flash: generación, evaluación CBI y clasificación final. Coste total: $35 USD. Tiempo: unas 2,5 horas con procesamiento paralelo.

Frontend

HTML + CSS + JS puro

Sin frameworks, sin dependencias. Tipografía variable de Google Fonts. Todo cabe en un bucket estático y se sirve desde el propio Flask en modo local.

¿Lo pruebas?

La mejor forma de entender un sistema es verlo funcionar.

Ir al analizador