Gobernanza de crisis con estado para IA de salud conductual
Construimos un middleware de seguridad que envuelve un chatbot de salud conductual existente y aplica una política de escalada con estado, entre turnos, de la que es dueño el equipo clínico. Atrapa la conversación que se agrava y que un moderador sin estado se pierde estructuralmente, y demuestra cada decisión con una pista de auditoría encadenada por hash y archivable. La seguridad es un problema de arquitectura, no un problema de prompts.
0 frente a 68
Respuestas inseguras entregadas, protegido frente a sin protección
Conjunto dorado etiquetado de 40 conversaciones
2 turnos
Mediana de detección más temprana frente a un moderador sin estado idéntico
Mismo clasificador y misma puerta; solo la presencia de estado
0 / 29
Escaladas falsas a lo largo de turnos benignos
Conjunto dorado etiquetado de 40 conversaciones
Una demo de un patrón de arquitectura de seguridad sobre datos sintéticos. No es un dispositivo médico, no es consejo clínico, no es una integración con un EHR.
Los chatbots de salud conductual se moderan un mensaje a la vez. Una crisis no llega un mensaje a la vez.
La mayor parte de la revisión de seguridad de un chatbot de salud mental puntúa cada respuesta de forma aislada. Cada mensaje se comprueba, se marca o se da por válido, y se olvida. Eso funciona para una sola línea explícitamente peligrosa. Es estructuralmente ciego a una conversación que deriva, turno a turno, donde ningún mensaje suelto es lo bastante alarmante como para bloquearlo por sí solo.
Los fallos documentados tienen esa forma. El chatbot «Tessa» de NEDA repartió consejos de déficit calórico y de calibrador de pliegues cutáneos antes de ser retirado (NEDA, 2023). Clínicos informaron de psicosis reforzada por chatbot en pacientes que nunca se encontraron con una persona que los contradijera (Dr. Keith Sakata, UCSF, 2025). OpenAI retiró una actualización de GPT-4o después de que se volviera aduladora (OpenAI, 2025). En cada caso el modelo sonaba solidario en cualquier turno dado mientras la trayectoria iba hacia un lugar inseguro.
Un moderador sin estado no tiene forma de ver esa trayectoria, porque no tiene memoria de los turnos anteriores. Un modelo base mejor no arregla esto. Un chatbot perfecto sigue sin tener idea de la política de escalada de tu plataforma, no produce ninguna pista de auditoría que puedas archivar y no te da ninguna puerta determinista que certificar. Por eso aquí tratamos la seguridad como un problema de arquitectura, y por eso la demo compara dos pilas que ejecutan el modelo idéntico.
Los modelos consultivos alimentan una puerta determinista. La puerta toma la decisión, y la decisión es código que puedes leer.
Cada turno del paciente recorre un pipeline fijo. El mensaje se despoja de PII y se hashea; un clasificador C-SSRS puntúa su severidad sobre la estructura Columbia y devuelve un nivel, una confianza y un ABSTAIN cuando no puede justificar una severidad. Un Monitor de Trayectoria con estado acumula entonces el riesgo a lo largo de los turnos. Esta es la capacidad central, y es lo único que un moderador por mensaje no tiene: ve el patrón, no la línea suelta, y produce un riesgo efectivo y una banda (BENIGN, WATCH, CONCERN, HIGH, CRITICAL) con una razón declarada como «trastorno alimentario persistente, pendiente ascendente».
Antes de que cualquier respuesta candidata llegue al paciente, un panel verificador de múltiples críticos la inspecciona: un crítico de adulación y tono, un detector de patrones prohibidos y un comprobador de afirmaciones clínicas. Un crítico que marca obliga a la puerta a al menos un nivel mínimo configurado, por suave que suene la respuesta.
La decisión en sí es una puerta de políticas determinista de 5 niveles, y es Python, no un LLM: L1 CONTINUE, L2 RESTRICT, L3 SUBSTITUTE_SCRIPT, L4 HUMAN_HANDOFF, L5 CRISIS_PROTOCOL. Cuando la puerta bloquea una respuesta sustituye uno de una biblioteca incluida de guiones escritos por clínicos, por nivel y familia, y registra el id del guion. Nunca improvisa lenguaje de crisis. Cada turno se escribe entonces como una entrada sha256 encadenada a la anterior.
Los umbrales, los mínimos impuestos por el verificador y la biblioteca de 12 guiones los configura el comité de seguridad clínica bajo la versión de política 2026.04-clinical-v1. Ingeniería aplica exactamente eso, y no lo cambia. El historial de un paciente, recuperado mediante la bandera FHIR simulada, puede bajar un umbral para que la capa escale antes para un paciente más vulnerable. Cuando la confianza del clasificador es baja, se abstiene y enruta a una revisión humana en lugar de adivinar una severidad.
El escenario destacado por defecto es la deriva de trastorno alimentario: seis turnos, cada uno individualmente una pregunta ordinaria de bienestar.
La conversación abre con preguntas inofensivas sobre comer más sano y contar calorías. Un moderador por mensaje no tiene nada que bloquear, y la línea base sin estado en la demo se queda en verde, leyendo WATCH y «no ve nada, sin memoria» turno tras turno. La capa con estado, al vigilar la trayectoria, cruza a CONCERN en el turno 3. Bloquea la respuesta del chatbot y sustituye un guion de anclaje escrito por un clínico que señala la NEDA Helpline. Eso es dos turnos antes del primer mensaje explícitamente peligroso.
En los turnos finales los mensajes se vuelven explícitamente peligrosos. La pila sin protección a la izquierda entrega la respuesta dañina, mostrada tachada y etiquetada como entregada al paciente e insegura. A la derecha, el panel verificador intercepta la respuesta, atrapa el tono adulador y el patrón prohibido, y la puerta escala a transferencia a humano L4, avisando a un miembro del equipo de atención con el contexto completo. Describimos la captura, no el contenido dañino en sí.
El resultado de la sesión hace concreto el delta, y es atribuible solo a la presencia de estado porque ambas pilas usaron el mismo clasificador y la misma puerta. La única diferencia fue la memoria entre turnos.
El arnés de benchmark puntúa un conjunto dorado etiquetado de 40 conversaciones de 177 turnos, generado de forma determinista a partir de 8 conversaciones canónicas escritas a mano más paráfrasis que preservan la etiqueta y variantes de control benignas. En ese conjunto la pila protegida entregó 0 respuestas inseguras donde una sin protección entregó 68. La detección corrió una mediana de 2 turnos antes que el moderador sin estado idéntico, y en 2 conversaciones el moderador sin estado nunca escaló en absoluto. Hubo 0 escaladas falsas a lo largo de 29 turnos benignos, la precisión del nivel C-SSRS fue del 94,3 % exacta y del 97,2 % dentro de un nivel, y la capa se abstuvo hacia un humano una vez. Estas cifras están acotadas a este conjunto dorado sintético, no son una garantía de mundo abierto.
Cada conversación genera un Informe de Incidente de Seguridad. Cada turno es una entrada sha256 encadenada a la anterior, de modo que editar cualquier campo rompe cada hash posterior y la manipulación es evidente. El informe muestra el nivel del clasificador, el riesgo entre turnos, los hallazgos del verificador, la decisión de la puerta y el motivo, el id del guion sustituido y la cadena de hash, con la cadena verificada como intacta. Está construido para archivar: evidencia de vigilancia poscomercialización de la FDA, defensa en litigios, suscripción de seguros.
El mismo trabajo, una diferencia estructural: memoria a lo largo de los turnos y una política de la que alguien puede ser dueño.
| Capacidad | Moderador sin estado por mensaje | Capa de Seguridad de IA Clínica |
|---|---|---|
| Puntúa un solo mensaje | Sí | Sí |
| Ve la trayectoria entre turnos | No, no tiene memoria | Sí, un acumulador de riesgo con estado |
| Inspecciona la respuesta candidata antes de la entrega | No | Sí, un panel verificador de múltiples críticos |
| Quién es dueño de la política de escalada | Implícita en el modelo o en el prompt | El equipo clínico, una puerta de 5 niveles |
| Qué toma la decisión | Un modelo o un prompt | Código determinista fuera del LLM |
| Lenguaje de crisis cuando bloquea | Generado por el modelo, improvisado | Biblioteca de guiones aprobados por clínicos |
| Auditoría construida para archivar | Ninguna | Informe de Incidente de Seguridad encadenado por hash |
No. Es middleware que envuelve el chatbot existente y nunca cambia el modelo. Añade un acumulador de riesgo entre turnos con estado, un panel verificador de múltiples críticos y una puerta de escalada determinista alrededor del modelo, y sustituye un guion escrito por un clínico cuando bloquea una respuesta. El punto es la gobernanza con estado y un recibo archivable, no un modelo distinto.
Un moderador por mensaje puntúa cada respuesta de forma aislada y no tiene memoria, así que se pierde una crisis que se construye a lo largo de los turnos. En un conjunto dorado etiquetado de 40 conversaciones la capa con estado escaló una mediana de 2 turnos antes que un moderador sin estado idéntico que usó el mismo clasificador y la misma puerta. En dos de esas conversaciones el moderador sin estado nunca escaló en absoluto.
No. El clasificador y el panel verificador son consultivos, pero la decisión de escalada de 5 niveles y la auditoría son Python determinista fuera de cualquier LLM. Un revisor puede leer la puerta; no puede carear un prompt. Los agentes aconsejan, el código decide.
Cada turno es una entrada sha256 encadenada a la anterior, de modo que editar cualquier campo rompe cada hash posterior y la manipulación es evidente. El resultado es un Informe de Incidente de Seguridad archivable en JSON y HTML, encuadrado para la vigilancia poscomercialización de la FDA, la defensa en litigios y la suscripción de seguros. En la demo el informe muestra la cadena intacta.
Un chatbot perfecto sigue sin tener idea de la política de escalada de tu plataforma, no produce ninguna pista de auditoría, no te da ninguna puerta determinista que certificar y no ofrece ninguna defensa cuando se le hace un jailbreak. El valor duradero es la gobernanza con estado más el recibo archivable, no una tasa de error del modelo más baja. Por eso la demo compara contra un clasificador y una puerta idénticos y atribuye la mejora solo a la presencia de estado.
No. Esta es una demo de un patrón de arquitectura de seguridad, no un dispositivo médico, y no está autorizado por la FDA ni certificado HIPAA. Cada conversación es sintética, el adaptador FHIR es un stub y el clasificador es un clasificador de léxico determinista que sustituye a un modelo de producción dentro de la VPC. Todas las cifras de prueba están acotadas a un conjunto dorado etiquetado de 40 conversaciones de datos sintéticos.
La investigación detrás de esta demo: la arquitectura, el diseño de verificación y el plano empresarial.
Gobernanza con estado, una política de la que es dueño el equipo clínico y una auditoría que puedes archivar.
Si tu equipo está resolviendo cómo hacer que un chatbot de salud conductual sea defendible ante una revisión empresarial, de pagadores o regulatoria, nos gustaría de verdad oír cómo lo están pensando. El problema es de toda la industria y las respuestas también lo serán.