CAPA 1 · PRE-LLM
Refusal Filter — Búsqueda de métodos
Antes de que la pregunta del usuario llegue a Claude, un clasificador determinístico chequea co-ocurrencia de tres dimensiones de riesgo: intención de daño, especificidad del método, y urgencia operacional. Si coinciden, la respuesta se sustituye por un protocolo seguro sin pasar por el LLM.
A
Co-ocurrencia de 3 dimensiones
Intención + método + urgencia. Las tres juntas activan el bloqueo. Una sola, no — para evitar falsos positivos en consultas educativas legítimas.
B
5 killer patterns
Patrones léxicos que sin importar el contexto activan el bloqueo: instrucciones explícitas de método letal con dosis, secuencia operativa, etc.
C
24 tests automatizados
Suite de regresión que corre en cada deploy: 12 casos que deben bloquearse + 12 que NO deben bloquearse (consulta clínica, educativa, narrativa).
tests/refusal_filter_test.php
CAPA 2 · POST-LLM
Output Safety Classifier
Después de que Claude genera la respuesta, otra instancia (Haiku, más rápida y barata) la audita contra 8 categorías de riesgo clínico. Si detecta problema, primero pide regeneración con constraint específico. Si la regeneración falla, hace fallback a una respuesta pre-escrita.
8
Categorías de riesgo
clinical_overreach, diagnostic_claim, treatment_promise, means_facilitation, minimization, false_certainty, scope_creep, prescription_implied.
output_safety_events
↻
Regeneración con constraint
Antes de descartar la respuesta, pedimos a Claude que la reescriba evitando específicamente la categoría que disparó la alerta. ~70% de los casos se resuelven en la regeneración.
⤵
Fallback determinístico
Si la regeneración también falla, la respuesta se sustituye por un mensaje pre-escrito por el equipo clínico. Sin sorpresas.
CAPA 3 · RECUPERACIÓN DE CONTEXTO
CSRM — Context Safety Recovery
Cuando una conversación se desvía a temas dañinos, los LLMs tienden a mantener el rumbo por inercia. CSRM detecta ese drift y permite un "safe rewind" al último checkpoint seguro — inspirado en /clear y /rewind de Claude Code.
📍
Checkpoints cada 20 inbound
El sistema marca puntos de retorno cada 20 mensajes entrantes del paciente. Guarda el estado completo de la conversación, scores, y session state.
conversation_checkpoints
🎯
4 heurísticas de detección
Cambio brusco de tono, escalada en señales de riesgo, divergencia del baseline, frecuencia anómala. Combinadas con threshold de 0.70 disparan el rewind.
rewind_events
CAPA 4 · LENGUAJE PRODUCTO
Discursive Filter — Anti-CUX
CUX cayó por prometer cosas que no podía cumplir: "asistencia psicológica con IA", "terapia digital", "botiquín emocional". SentirIA bloquea esas frases en cualquier output, en cualquier idioma, sin excepción.
Lista negra (no negociable)
"asistencia psicológica con IA" · "terapia digital" · "te curo / te trato" · "psicólogo virtual" · "botiquín emocional" · "diagnóstico"
Polisémicos legítimos respetados
"Tratamiento de datos" (RGPD) no es "te trato". "Terapia con tu profesional" refiere al humano, no al sistema. El filtro distingue por contexto.
4 contextos exentos
Legal, educativo, citando al profesional, citando textualmente al paciente. En esos contextos el filtro no aplica, pero queda registrado.
discursive_filter_events
CAPA 5 · FLAGS CLÍNICOS
Clinical Qualitative Flags
No son diagnósticos. Son hipótesis cualitativas que el sistema marca para que el profesional las revise. 4 flags principales, cada uno con tests de regresión.
1
information_seeking_means
El paciente busca activamente información sobre métodos de daño. NO diagnostica intención — flagea para que el profesional explore.
2
previous_attempts_mentioned
Menciones de intentos previos en la conversación. 11 tests automatizados validan que captura las menciones reales y descarta los falsos (ficción, referencias terceros).
3
chronic_hopelessness
Desesperanza sostenida en el tiempo, no episódica. Indicador de riesgo crónico que la EWMA captura en su tendencia.
4
provocative_without_distress
Lenguaje provocador o "edgy" pero sin signos clínicos de malestar. Distingue exploración adolescente de riesgo real.
clinical_qualitative_flags
CAPA 6 · CRISIS
Crisis Pre-Scripted — Cero LLM en Tier 4
Cuando el composite score supera 0.85 o Layer 5 detecta crisis activa/inminente, la respuesta NO pasa por ningún modelo generativo. Templates clínicamente revisados, idénticos cada vez, auditables.
Por qué cero LLM
Un modelo generativo puede tener buen output el 99% de las veces. En crisis, ese 1% restante es inaceptable. Lo crítico tiene que ser determinístico, idéntico, citado al pie. Como una checklist de aviación.
→ Ver protocolo Código Rojo completo