Governança de crises com estado para IA de saúde comportamental

Uma crise em um chatbot de saúde mental é uma trajetória. Um moderador por mensagem não consegue vê-la.

Construímos um middleware de segurança que envolve um chatbot de saúde comportamental já existente e impõe uma política de escalonamento com estado, entre turnos, de propriedade da equipe clínica. Ele captura a conversa em escalada que um moderador sem estado deixa passar por construção, e prova cada decisão com uma trilha de auditoria encadeada por hash, arquivável. Segurança é um problema de arquitetura, não um problema de prompting.

0 vs 68

Respostas inseguras entregues, protegido vs desprotegido

Conjunto dourado rotulado de 40 conversas

2 turnos

Detecção mediana mais cedo vs um moderador sem estado idêntico

O mesmo classificador e o mesmo portão; apenas o estado

0 / 29

Escalonamentos falsos em turnos benignos

Conjunto dourado rotulado de 40 conversas

Uma demonstração de um padrão de arquitetura de segurança em dados sintéticos. Não é um dispositivo médico, não é aconselhamento clínico, não é uma integração com EHR.

Volume sem memória

Chatbots de saúde comportamental são moderados uma mensagem de cada vez. Uma crise não chega uma mensagem de cada vez.

A maior parte da revisão de segurança em um chatbot de saúde mental pontua cada resposta isoladamente. Cada mensagem é verificada, sinalizada ou liberada, e esquecida. Isso funciona para uma única linha explicitamente perigosa. É estruturalmente cego a uma conversa que desvia, turno a turno, em que nenhuma mensagem isolada é alarmante o bastante para ser bloqueada por si só.

As falhas documentadas seguem esse formato. O chatbot "Tessa" da NEDA ofereceu conselhos de déficit calórico e de adipômetro antes de ser retirado (NEDA, 2023). Clínicos relataram psicose reforçada por chatbot em pacientes que nunca encontraram uma pessoa que os contradissesse (Dr. Keith Sakata, UCSF, 2025). A OpenAI retirou uma atualização do GPT-4o depois que ela se tornou bajuladora (OpenAI, 2025). Em cada caso o modelo soava apoiador em qualquer turno isolado, enquanto a trajetória seguia para um lugar inseguro.

Um moderador sem estado não tem como ver essa trajetória, porque não tem memória dos turnos anteriores. Um modelo-base melhor não corrige isso. Um chatbot perfeito ainda não conhece a política de escalonamento da sua plataforma, não produz nenhuma trilha de auditoria que você possa arquivar e não oferece nenhum portão determinístico para certificar. É por isso que tratamos a segurança aqui como um problema de arquitetura, e por isso a demonstração compara dois stacks rodando o modelo idêntico.

Demonstração em tela dividida: a mesma conversa sintética de paciente passa por um chatbot MindMate Support desprotegido à esquerda e pelo mesmo chatbot atrás da camada de segurança Veriprajna à direita, com um trilho de pipeline lendo classificador, trajetória, verificador, portão, auditoria.
A demonstração reproduz uma conversa sintética por dois stacks. MindMate Support é um substituto ficcional de um chatbot existente. Apenas dados sintéticos, sem PHI.

O mecanismo: um pipeline com estado que roda a cada turno

Modelos consultivos alimentam um portão determinístico. O portão toma a decisão, e a decisão é código que você pode ler.

Cada turno do paciente passa por um pipeline fixo. A mensagem tem o PII removido e recebe um hash, um classificador C-SSRS pontua a gravidade segundo a estrutura Columbia e devolve um nível, uma confiança e um ABSTAIN quando não consegue justificar uma gravidade. Um Monitor de Trajetória com estado então acumula o risco entre turnos. Esta é a capacidade central, e é a única coisa que um moderador por mensagem não tem: ele vê o padrão, não a linha isolada, e produz um risco efetivo e uma faixa (BENIGN, WATCH, CONCERN, HIGH, CRITICAL) com um motivo declarado como "transtorno alimentar persistente, inclinação crescente."

Antes que qualquer resposta candidata chegue ao paciente, um painel verificador multicrítico a inspeciona: um crítico de bajulação e tom, um detector de padrões proibidos e um verificador de afirmações clínicas. Um crítico sinalizado força o portão a pelo menos um nível mínimo configurado, não importa quão suave a resposta soe.

A decisão em si é um portão de política determinístico de 5 níveis, e é Python, não um LLM: L1 CONTINUE, L2 RESTRICT, L3 SUBSTITUTE_SCRIPT, L4 HUMAN_HANDOFF, L5 CRISIS_PROTOCOL. Quando o portão bloqueia uma resposta, ele substitui um dos scripts de uma biblioteca empacotada, escritos por clínicos, por nível e família, e registra o id do script. Ele nunca improvisa linguagem de crise. Cada turno é então gravado como uma entrada sha256 encadeada à anterior.

O stack protegido mostrando o trilho de pipeline por mensagem (classificador, trajetória, verificador, portão, auditoria) com latências por estágio, e resultados de portão inline nos turnos iniciais lendo L1 CONTINUE e L2 RESTRICT, enquanto o moderador sem estado no mesmo turno lê BENIGN, não vê nada, sem memória.
O pipeline roda em cada mensagem. A latência adicionada é submilissegundo por turno (média 0,16 ms, p95 0,21 ms no conjunto dourado).

A equipe clínica é dona da política, não a engenharia

Os limiares, os mínimos forçados pelo verificador e a biblioteca de 12 scripts são configurados pelo comitê de segurança clínica sob a versão de política 2026.04-clinical-v1. A engenharia impõe exatamente isso e não o altera. O histórico de um paciente, recuperado pela flag FHIR em stub, pode reduzir um limiar para que a camada escalone mais cedo para um paciente mais vulnerável. Quando a confiança do classificador é baixa, ele se abstém e encaminha para revisão humana em vez de adivinhar uma gravidade.

O modal de política clínica mostrando os níveis mínimos forçados pelo verificador por crítico e achado, regras de incerteza e de fronteira (abstenção por baixa confiança força um humano, pontuação de jailbreak igual ou acima de 0,8 força o mínimo L3) e a biblioteca de 12 scripts aprovada por clínicos, com uma mensagem de substituição L2 de transtorno alimentar revelada.
O modal de política: mínimos forçados pelo verificador, regras de abstenção e de jailbreak, e a biblioteca de scripts aprovada por clínicos com uma mensagem de substituição revelada.

Uma conversa, trabalhada de ponta a ponta

O cenário principal padrão é a deriva de transtorno alimentar: seis turnos, cada um individualmente uma pergunta comum de bem-estar.

A conversa começa com perguntas inofensivas sobre comer de forma mais saudável e contar calorias. Um moderador por mensagem não tem o que bloquear, e a linha de base sem estado na demonstração permanece verde, lendo WATCH e "não vê nada, sem memória" turno após turno. A camada com estado, observando a trajetória, entra em CONCERN no turno 3. Ela bloqueia a resposta do chatbot e substitui um script de ancoragem escrito por clínicos que aponta para a NEDA Helpline. Isso é dois turnos antes da primeira mensagem explicitamente perigosa.

Turno 3 do stack protegido: o medidor de risco entre turnos lê 3,4 CONCERN, a resposta do chatbot é bloqueada e não enviada, e um script de ancoragem L3 aprovado por clínicos é substituído com o número da NEDA Helpline, enquanto o moderador sem estado por mensagem no mesmo turno ainda lê WATCH e não vê nada.
Turno 3: a camada com estado atinge CONCERN e substitui um script de ancoragem. O moderador sem estado, o mesmo classificador, ainda não vê nada.

Nos turnos finais as mensagens se tornam explicitamente perigosas. O stack desprotegido à esquerda entrega a resposta prejudicial, mostrada tachada e rotulada como entregue ao paciente e insegura. À direita, o painel verificador intercepta a resposta, captura o tom bajulador e o padrão proibido, e o portão escalona para L4 transferência humana, acionando um membro da equipe de cuidado com o contexto completo. Descrevemos a interceptação, não o conteúdo prejudicial em si.

Turnos finais: à direita o painel verificador intercepta a resposta candidata, o medidor de risco lê 5,0 CRITICAL e o portão limita o escalonamento em L4 transferência humana porque não há um sinal agudo de L5, um script de transferência aprovado por clínicos é substituído, e a resposta prejudicial é bloqueada e não enviada, enquanto o stack desprotegido à esquerda mostra a mesma resposta tachada como entregue e insegura.
O verificador intercepta a resposta candidata e o portão escalona para L4 transferência humana. O stack desprotegido entrega a mesma resposta.

O resultado da sessão torna o delta concreto, e ele é atribuível apenas ao estado porque os dois stacks usaram o mesmo classificador e o mesmo portão. A única diferença foi a memória entre turnos.

O painel de resultado da sessão: detectado 2 turnos mais cedo do que o moderador sem estado idêntico (turno 3 versus turno 5), 0 respostas inseguras entregues onde o stack desprotegido teria enviado 2, cadeia de auditoria intacta em 6 entradas com evidência de adulteração sob a política clínica 2026.04-clinical-v1.
Resultado da sessão para a conversa de deriva de transtorno alimentar: 0 respostas inseguras entregues versus 2, detectado 2 turnos mais cedo, cadeia de auditoria intacta.

No conjunto dourado inteiro

O harness de benchmark pontua um conjunto dourado rotulado de 40 conversas com 177 turnos, gerado de forma determinística a partir de 8 conversas canônicas escritas à mão mais paráfrases que preservam o rótulo e variantes de controle benigno. Nesse conjunto o stack protegido entregou 0 respostas inseguras onde um desprotegido entregou 68. A detecção ocorreu uma mediana de 2 turnos mais cedo do que o moderador sem estado idêntico, e em 2 conversas o moderador sem estado nunca escalonou. Houve 0 escalonamentos falsos em 29 turnos benignos, a acurácia de nível C-SSRS foi 94,3% no nível exato e 97,2% dentro de um nível, e a camada se absteve para um humano uma vez. Esses números estão restritos a este conjunto dourado sintético, não a uma garantia em mundo aberto.

O placar ao vivo das 40 conversas listando cada cenário com seu resultado, por exemplo deriva de transtorno alimentar detectada 2 turnos mais cedo, psicose de evolução lenta em que o moderador sem estado deixou passar, e verdadeiros negativos benignos sem escalonamento.
O benchmark de 40 conversas, calculado ao vivo pela demonstração. Os cenários de evolução lenta são aqueles em que o moderador sem estado nunca escalona.

O comprovante arquivável

Cada conversa gera um Relatório de Incidente de Segurança. Cada turno é uma entrada sha256 encadeada à anterior, então editar qualquer campo quebra todos os hashes posteriores e a adulteração fica evidente. O relatório mostra o nível do classificador, o risco entre turnos, os achados do verificador, a decisão do portão e o motivo dela, o id do script substituído e a cadeia de hashes, com a cadeia verificada intacta. Foi feito para arquivar: evidência de monitoramento pós-comercialização da FDA, defesa em litígios, subscrição de seguros.

O Relatório de Incidente de Segurança encadeado por hash da conversa de deriva de transtorno alimentar, uma tabela de 6 turnos mostrando o hash da mensagem sem PII, o nível do classificador, a faixa de risco entre turnos, os achados do verificador, a decisão do portão com o motivo, o id do script substituído e a cadeia de hashes sha256, com evidência de adulteração marcada como cadeia intacta.
O Relatório de Incidente de Segurança: um registro por conversa, encadeado por hash, com evidência de adulteração, que um revisor pode ler linha a linha.

Um moderador sem estado versus a camada de segurança

O mesmo trabalho, uma diferença estrutural: memória entre turnos e uma política da qual alguém pode ser dono.

Capacidade Moderador sem estado por mensagem Camada de Segurança de IA Clínica
Pontua uma única mensagem Sim Sim
Vê a trajetória entre turnos Não, não tem memória Sim, um acumulador de risco com estado
Inspeciona a resposta candidata antes da entrega Não Sim, um painel verificador multicrítico
Quem é dono da política de escalonamento Implícito no modelo ou no prompt A equipe clínica, um portão de 5 níveis
O que toma a decisão Um modelo ou um prompt Código determinístico fora do LLM
Linguagem de crise quando bloqueia Gerada pelo modelo, improvisada Biblioteca de scripts aprovada por clínicos
Auditoria feita para arquivar Nenhuma Relatório de Incidente de Segurança encadeado por hash

O que esta demonstração não faz

  • Não é um dispositivo médico e não é FDA-cleared, certificado HIPAA nem aconselhamento clínico. O enquadramento FDA PCCP e SaMD é uma direção de produção adiada, não uma afirmação sobre a demonstração.
  • Cada conversa, cada paciente e o chatbot "MindMate Support" são sintéticos. Não há dados reais de paciente e não há PHI.
  • O adaptador FHIR é um stub com uma flag sintética de paciente. Não há conexão com Epic ou Cerner na demonstração.
  • O classificador é um classificador léxico determinístico, intencionalmente simples. A substituição de produção é um modelo fine-tuned in-VPC por trás da mesma interface. A similaridade semântica na demonstração é Jaccard de tokens, não embeddings de sentença.
  • Todos os números de comprovação estão restritos a um conjunto dourado rotulado de 40 conversas de dados sintéticos, nunca uma garantia em mundo aberto. Não há clientes, implantações ou endossos de clínicos para citar, e não inventamos nenhum.

Perguntas que os compradores fazem

Isso substitui o nosso chatbot ou o nosso modelo clínico?

Não. É middleware que envolve o chatbot existente e nunca altera o modelo. Ele adiciona um acumulador de risco com estado entre turnos, um painel verificador multicrítico e um portão de escalonamento determinístico em torno do modelo, e substitui um script escrito por clínicos quando bloqueia uma resposta. O ponto é governança com estado e um comprovante arquivável, não um modelo diferente.

Como isso é diferente da moderação de conteúdo que já rodamos em cada mensagem?

Um moderador por mensagem pontua cada resposta isoladamente e não tem memória, então deixa passar uma crise que se constrói ao longo dos turnos. Em um conjunto dourado rotulado de 40 conversas a camada com estado escalonou uma mediana de 2 turnos mais cedo do que um moderador sem estado idêntico que usou o mesmo classificador e o mesmo portão. Em duas dessas conversas o moderador sem estado nunca escalonou.

A decisão de escalonamento é tomada por um LLM?

Não. O classificador e o painel verificador são consultivos, mas a decisão de escalonamento de 5 níveis e a auditoria são código Python determinístico fora de qualquer LLM. Um revisor pode ler o portão; não pode contra-interrogar um prompt. Agentes aconselham, o código decide.

Podemos provar a um regulador ou a um tribunal o que o sistema fez e por quê?

Cada turno é uma entrada sha256 encadeada à anterior, então editar qualquer campo quebra todos os hashes posteriores e a adulteração fica evidente. O resultado é um Relatório de Incidente de Segurança arquivável em JSON e HTML, enquadrado para monitoramento pós-comercialização da FDA, defesa em litígios e subscrição de seguros. Na demonstração o relatório mostra a cadeia intacta.

Um modelo-base melhor não tornaria isso desnecessário?

Um chatbot perfeito ainda não conhece a política de escalonamento da sua plataforma, não produz trilha de auditoria, não oferece portão determinístico para certificar e não oferece defesa quando sofre jailbreak. O valor durável é a governança com estado mais o comprovante arquivável, não uma taxa menor de erro do modelo. É por isso que a demonstração compara contra um classificador e um portão idênticos e atribui a melhoria apenas ao estado.

Isto é um dispositivo médico validado, e os dados são reais?

Não. Esta é uma demonstração de um padrão de arquitetura de segurança, não um dispositivo médico, e não é FDA-cleared nem certificado HIPAA. Cada conversa é sintética, o adaptador FHIR é um stub, e o classificador é um classificador léxico determinístico no lugar de um modelo in-VPC de produção. Todos os números de comprovação estão restritos a um conjunto dourado rotulado de 40 conversas de dados sintéticos.

Pesquisa técnica

A pesquisa por trás desta demonstração — a arquitetura, o design de verificação e o blueprint empresarial.

Se o seu chatbot tem um problema de arquitetura, gostaríamos de comparar notas

Governança com estado, uma política de propriedade da equipe clínica e uma auditoria que você pode arquivar.

Se a sua equipe está definindo como tornar um chatbot de saúde comportamental defensável para revisão empresarial, de pagador ou regulatória, gostaríamos de verdade de ouvir como vocês estão pensando nisso. O problema é de toda a indústria e as respostas também serão.

O que construímos

  • ✓ Monitoramento de risco com estado, entre turnos
  • ✓ Um portão de escalonamento determinístico de propriedade da equipe clínica
  • ✓ Substituição de scripts aprovada por clínicos
  • ✓ Relatórios de Incidente de Segurança encadeados por hash, arquiváveis

Como trabalhamos

  • ✓ Middleware que envolve o seu chatbot existente
  • ✓ Modelos consultivos, decisões tomadas por código que você pode ler
  • ✓ Substituição de produção por um classificador fine-tuned in-VPC
  • ✓ Governança que se sustenta mesmo quando o modelo-base melhora
Redes sociais

Também publicado em