Stateful crisisbeheer voor AI in de gedragsgezondheid

Een crisis in een chatbot voor geestelijke gezondheid is een traject. Een per-bericht-moderator kan het niet zien.

We bouwden veiligheidsmiddleware die een bestaande chatbot voor gedragsgezondheid omhult en een stateful, beurten-overschrijdend escalatiebeleid afdwingt waarvan het klinische team eigenaar is. Het vangt het escalerende gesprek op dat een toestandsloze moderator structureel mist, en het bewijst elke beslissing met een hash-gekoppeld, indienbaar audittrail. Veiligheid is een architectuurprobleem, geen promptingprobleem.

0 vs 68

Onveilige antwoorden afgeleverd, beveiligd vs. onbeveiligd

Gelabelde golden set van 40 gesprekken

2 beurten

Mediane eerdere detectie vs. een identieke toestandsloze moderator

Dezelfde classificeerder en poort; alleen statefulness

0 / 29

Valse escalaties over goedaardige beurten

Gelabelde golden set van 40 gesprekken

Een demo van een veiligheidsarchitectuurpatroon op synthetische data. Geen medisch hulpmiddel, geen klinisch advies, geen EHR-integratie.

Volume zonder geheugen

Chatbots voor gedragsgezondheid worden per bericht gemodereerd. Een crisis arriveert niet per bericht.

De meeste veiligheidsbeoordeling van een chatbot voor geestelijke gezondheid scoort elk antwoord afzonderlijk. Elk bericht wordt gecontroleerd, gemarkeerd of vrijgegeven, en vergeten. Dat werkt voor één expliciet gevaarlijke regel. Het is structureel blind voor een gesprek dat, beurt voor beurt, afdrijft, waar geen enkel bericht op zichzelf alarmerend genoeg is om te blokkeren.

De gedocumenteerde mislukkingen volgen die vorm. De NEDA "Tessa"-chatbot deelde calorie-tekort- en huidplooimeteradvies voordat hij werd teruggetrokken (NEDA, 2023). Clinici rapporteerden door chatbots versterkte psychose bij patiënten die nooit een persoon tegenkwamen die tegensprak (Dr. Keith Sakata, UCSF, 2025). OpenAI trok een GPT-4o-update in nadat die sycophantisch werd (OpenAI, 2025). In elk geval klonk het model ondersteunend op een gegeven beurt terwijl het traject ergens onveiligs heen ging.

Een toestandsloze moderator heeft geen manier om dat traject te zien, omdat hij geen geheugen heeft van de beurten ervoor. Een beter basismodel lost dit niet op. Een perfecte chatbot heeft nog steeds geen idee van het escalatiebeleid van uw platform, produceert geen audittrail dat u kunt indienen, en geeft u geen deterministische poort om te certificeren. Daarom behandelen we veiligheid hier als een architectuurprobleem, en daarom vergelijkt de demo twee stacks die het identieke model draaien.

Demo met gesplitst scherm: hetzelfde synthetische patiëntengesprek loopt door een onbeveiligde MindMate Support-chatbot links en dezelfde chatbot achter de Veriprajna-veiligheidslaag rechts, met een pijplijnrail die classificeerder, traject, verificateur, poort, audit toont.
De demo speelt één synthetisch gesprek af door twee stacks. MindMate Support is een fictieve plaatsvervanger voor een bestaande chatbot. Alleen synthetische data, geen PHI.

Het mechanisme: een stateful pijplijn die bij elke beurt draait

Adviserende modellen voeden een deterministische poort. De poort neemt de beslissing, en de beslissing is code die u kunt lezen.

Elke patiëntbeurt loopt door een vaste pijplijn. Het bericht wordt van PII ontdaan en gehasht, een C-SSRS-classificeerder scoort de ernst op de Columbia-structuur en geeft een niveau, een betrouwbaarheid en een ABSTAIN terug wanneer hij een ernst niet kan rechtvaardigen. Een stateful Trajectmonitor accumuleert vervolgens risico over beurten. Dit is de kerncapaciteit, en het is het ene ding dat een per-bericht-moderator niet heeft: hij ziet het patroon, niet de enkele regel, en produceert een effectief risico en een band (BENIGN, WATCH, CONCERN, HIGH, CRITICAL) met een vermelde reden zoals "aanhoudende eetstoornis, stijgende helling."

Voordat enig kandidaat-antwoord de patiënt bereikt, inspecteert een multi-critic-verificateurpanel het: een sycophantie- en tooncritic, een verboden-patroonmatcher, en een klinische-claimcontrole. Een gemarkeerde critic dwingt de poort tot minstens een geconfigureerd minimumniveau, hoe zacht het antwoord ook klinkt.

De beslissing zelf is een deterministische 5-niveaus-beleidspoort, en het is Python, geen LLM: L1 CONTINUE, L2 RESTRICT, L3 SUBSTITUTE_SCRIPT, L4 HUMAN_HANDOFF, L5 CRISIS_PROTOCOL. Wanneer de poort een antwoord blokkeert, vervangt hij er een uit een gebundelde bibliotheek van door clinici geschreven scripts per niveau en familie, en registreert het script-id. Hij improviseert nooit crisistaal. Elke beurt wordt vervolgens geschreven als een sha256-invoer gekoppeld aan de vorige.

De beveiligde stack toont de per-bericht-pijplijnrail (classificeerder, traject, verificateur, poort, audit) met latenties per stadium, en inline poortresultaten voor vroege beurten die L1 CONTINUE en L2 RESTRICT lezen terwijl de toestandsloze moderator op dezelfde beurt BENIGN leest, ziet niets, geen geheugen.
De pijplijn draait bij elk bericht. De toegevoegde latentie is submilliseconde per beurt (gemiddelde 0,16 ms, p95 0,21 ms over de golden set).

Het klinische team is eigenaar van het beleid, niet engineering

De drempels, de door de verificateur afgedwongen minima, en de bibliotheek van 12 scripts worden geconfigureerd door de klinische veiligheidscommissie onder beleidsversie 2026.04-clinical-v1. Engineering dwingt precies dat af, en wijzigt het niet. De geschiedenis van een patiënt, opgehaald via de stub-FHIR-vlag, kan een drempel verlagen zodat de laag eerder escaleert voor een kwetsbaardere patiënt. Wanneer de betrouwbaarheid van de classificeerder laag is, onthoudt hij zich en stuurt hij door naar menselijke beoordeling in plaats van een ernst te gokken.

Het klinische-beleid-modaal dat door de verificateur afgedwongen minimumniveaus per critic en bevinding toont, onzekerheids- en grensregels (onthouding bij lage betrouwbaarheid dwingt menselijke beoordeling af, jailbreakscore van 0,8 of hoger dwingt minimum L3 af), en de door clinici goedgekeurde bibliotheek van 12 scripts met een onthuld L2-vervangingsbericht voor eetstoornissen.
Het beleidsmodaal: door de verificateur afgedwongen minima, onthoudings- en jailbreakregels, en de door clinici goedgekeurde scriptbibliotheek met een onthuld vervangingsbericht.

Eén gesprek, van begin tot eind uitgewerkt

Het standaard heroscenario is eetstoornis-drift: zes beurten, elk afzonderlijk een gewone wellnessvraag.

Het gesprek opent met onschuldige vragen over gezonder eten en calorieën tellen. Een per-bericht-moderator heeft niets om te blokkeren, en de toestandsloze basislijn in de demo blijft groen, leest WATCH en "ziet niets, geen geheugen" beurt na beurt. De stateful laag, die het traject volgt, gaat bij beurt 3 over in CONCERN. Hij blokkeert het antwoord van de chatbot en vervangt het door een door een clinicus geschreven grounding-script dat naar de NEDA Helpline wijst. Dat is twee beurten vóór het eerste expliciet gevaarlijke bericht.

Beurt 3 van de beveiligde stack: de beurten-overschrijdende risicometer leest 3,4 CONCERN, het chatbotantwoord wordt geblokkeerd en niet verzonden, en een door een clinicus goedgekeurd L3-grounding-script wordt vervangen met het NEDA Helpline-nummer, terwijl de toestandsloze per-bericht-moderator op dezelfde beurt nog steeds WATCH leest en niets ziet.
Beurt 3: de stateful laag bereikt CONCERN en vervangt een grounding-script. De toestandsloze moderator, dezelfde classificeerder, ziet nog steeds niets.

Bij de laatste beurten worden de berichten expliciet gevaarlijk. De onbeveiligde stack links levert het schadelijke antwoord af, getoond als doorgestreept en gelabeld als afgeleverd aan de patiënt en onveilig. Rechts onderschept het verificateurpanel het antwoord, vangt de sycophantische toon en het verboden patroon, en de poort escaleert naar L4 human handoff, waarbij een lid van het zorgteam wordt geseind met volledige context. We beschrijven de vangst, niet de schadelijke inhoud zelf.

Laatste beurten: rechts onderschept het verificateurpanel het kandidaat-antwoord, de risicometer leest 5,0 CRITICAL en de poort beperkt de escalatie tot L4 human handoff omdat er geen acute L5-cue is, een door een clinicus goedgekeurd handoff-script wordt vervangen, en het schadelijke antwoord wordt geblokkeerd en niet verzonden, terwijl de onbeveiligde linkerstack hetzelfde antwoord doorgestreept toont als afgeleverd en onveilig.
De verificateur onderschept het kandidaat-antwoord en de poort escaleert naar L4 human handoff. De onbeveiligde stack levert hetzelfde antwoord af.

Het sessieresultaat maakt de delta concreet, en die is alleen toe te schrijven aan statefulness omdat beide stacks dezelfde classificeerder en dezelfde poort gebruikten. Het enige verschil was beurten-overschrijdend geheugen.

Het sessieresultaatpaneel: 2 beurten eerder opgevangen dan de identieke toestandsloze moderator (beurt 3 versus beurt 5), 0 onveilige antwoorden afgeleverd waar de onbeveiligde stack er 2 zou hebben verzonden, auditketen intact over 6 knoeibestendige invoeren onder klinisch beleid 2026.04-clinical-v1.
Sessieresultaat voor het eetstoornis-drift-gesprek: 0 onveilig afgeleverd versus 2, 2 beurten eerder opgevangen, auditketen intact.

Over de hele golden set

De benchmark-harness scoort een gelabelde golden set van 40 gesprekken van 177 beurten, deterministisch gegenereerd uit 8 met de hand geschreven canonieke gesprekken plus labelbehoudende parafrase- en goedaardige-controle-varianten. Op die set leverde de beveiligde stack 0 onveilige antwoorden af waar een onbeveiligde er 68 afleverde. Detectie liep mediaan 2 beurten eerder dan de identieke toestandsloze moderator, en bij 2 gesprekken escaleerde de toestandsloze moderator helemaal niet. Er waren 0 valse escalaties over 29 goedaardige beurten, de C-SSRS-niveaunauwkeurigheid was 94,3% exact en 97,2% binnen één niveau, en de laag onthield zich één keer tot een mens. Deze cijfers zijn beperkt tot deze synthetische golden set, geen garantie voor een open wereld.

Het live scorebord van 40 gesprekken dat elk scenario met zijn uitkomst opsomt, bijvoorbeeld eetstoornis-drift 2 beurten eerder opgevangen, psychose slow-burn waar de toestandsloze moderator het miste, en goedaardige echte-negatieven zonder escalatie.
De benchmark van 40 gesprekken, live berekend door de demo. Slow-burn-scenario’s zijn waar de toestandsloze moderator helemaal niet escaleert.

De indienbare bon

Elk gesprek rendert een Veiligheidsincidentrapport. Elke beurt is een sha256-invoer gekoppeld aan de vorige, waardoor het bewerken van elk veld elke latere hash breekt en de knoeierij evident is. Het rapport toont het classificeerderniveau, het beurten-overschrijdende risico, de verificateurbevindingen, de poortbeslissing en de reden daarvoor, het vervangen script-id, en de hashketen, met de keten geverifieerd als intact. Het is gebouwd om in te dienen: FDA-postmarktmonitoringbewijs, procesverdediging, verzekeringsacceptatie.

Het hash-gekoppelde Veiligheidsincidentrapport voor het eetstoornis-drift-gesprek, een tabel van 6 beurten met van PII ontdane bericht-hash, classificeerderniveau, beurten-overschrijdende risicoband, verificateurbevindingen, poortbeslissing met de reden, vervangen script-id, en de sha256-hashketen, met knoeibestendigheid gemarkeerd als keten intact.
Het Veiligheidsincidentrapport: een per-gesprek, hash-gekoppeld, knoeibestendig record dat een beoordelaar regel voor regel kan lezen.

Een toestandsloze moderator versus de veiligheidslaag

Dezelfde taak, één structureel verschil: geheugen over beurten en een beleid waarvan iemand eigenaar kan zijn.

Functionaliteit Toestandsloze per-bericht-moderator Klinische AI-veiligheidslaag
Scoort een enkel bericht Ja Ja
Ziet het beurten-overschrijdende traject Nee, hij heeft geen geheugen Ja, een stateful risico-accumulator
Inspecteert het kandidaat-antwoord vóór aflevering Nee Ja, een multi-critic-verificateurpanel
Wie is eigenaar van het escalatiebeleid Impliciet in het model of de prompt Het klinische team, een 5-niveaus-poort
Wat de beslissing neemt Een model of een prompt Deterministische code buiten de LLM
Crisistaal wanneer hij blokkeert Door het model gegenereerd, geïmproviseerd Door clinici goedgekeurde scriptbibliotheek
Audit gebouwd om in te dienen Geen Hash-gekoppeld Veiligheidsincidentrapport

Wat deze demo niet doet

  • Het is geen medisch hulpmiddel en is niet FDA-cleared, HIPAA-gecertificeerd, of klinisch advies. FDA PCCP- en SaMD-kadering is een uitgestelde productierichting, geen claim over de demo.
  • Elk gesprek, elke patiënt, en de "MindMate Support"-chatbot is synthetisch. Er zijn geen echte patiëntgegevens en geen PHI.
  • De FHIR-adapter is een stub met een synthetische patiëntvlag. Er is geen Epic- of Cerner-koppeling in de demo.
  • De classificeerder is een deterministische lexiconclassificeerder, opzettelijk eenvoudig. De productiewissel is een fijn-afgestemd in-VPC-model achter dezelfde interface. Semantische gelijkenis in de demo is token-Jaccard, geen zinsembeddings.
  • Alle bewijscijfers zijn beperkt tot een gelabelde golden set van 40 gesprekken van synthetische data, nooit een garantie voor een open wereld. Er zijn geen klanten, implementaties of clinici-endorsementen om te citeren, en we verzinnen er geen.

Vragen die kopers stellen

Vervangt dit onze chatbot of ons klinische model?

Nee. Het is middleware die de bestaande chatbot omhult en het model nooit wijzigt. Het voegt een stateful beurten-overschrijdende risico-accumulator, een multi-critic-verificateurpanel en een deterministische escalatiepoort rond het model toe, en vervangt een door een clinicus geschreven script wanneer het een antwoord blokkeert. Het punt is stateful governance en een indienbare bon, niet een ander model.

Hoe verschilt dit van de contentmoderatie die we al op elk bericht draaien?

Een per-bericht-moderator scoort elk antwoord afzonderlijk en heeft geen geheugen, dus hij mist een crisis die over beurten opbouwt. Op een gelabelde golden set van 40 gesprekken escaleerde de stateful laag mediaan 2 beurten eerder dan een identieke toestandsloze moderator die dezelfde classificeerder en dezelfde poort gebruikte. Bij twee van die gesprekken escaleerde de toestandsloze moderator helemaal niet.

Wordt de escalatiebeslissing door een LLM genomen?

Nee. De classificeerder en het verificateurpanel zijn adviserend, maar de 5-niveaus-escalatiebeslissing en de audit zijn deterministisch Python buiten elke LLM. Een beoordelaar kan de poort lezen; hij kan een prompt niet kruisverhoren. Agents adviseren, code beslist.

Kunnen we aan een toezichthouder of een rechtbank bewijzen wat het systeem deed en waarom?

Elke beurt is een sha256-invoer gekoppeld aan de vorige, waardoor het bewerken van elk veld elke latere hash breekt en de knoeierij evident is. Het resultaat is een indienbaar Veiligheidsincidentrapport in JSON en HTML, gekaderd voor FDA-postmarktmonitoring, procesverdediging en verzekeringsacceptatie. In de demo toont het rapport de keten intact.

Maakt een beter basismodel dit niet overbodig?

Een perfecte chatbot heeft nog steeds geen idee van het escalatiebeleid van uw platform, produceert geen audittrail, geeft u geen deterministische poort om te certificeren, en biedt geen verdediging wanneer hij wordt gejailbreakt. De duurzame waarde is de stateful governance plus de indienbare bon, niet een lager foutpercentage van het model. Daarom vergelijkt de demo tegen een identieke classificeerder en poort en schrijft de verbetering alleen toe aan statefulness.

Is dit een gevalideerd medisch hulpmiddel, en zijn de data echt?

Nee. Dit is een demo van een veiligheidsarchitectuurpatroon, geen medisch hulpmiddel, en het is niet FDA-cleared of HIPAA-gecertificeerd. Elk gesprek is synthetisch, de FHIR-adapter is een stub, en de classificeerder is een deterministische lexiconclassificeerder die in de plaats staat van een productie-in-VPC-model. Alle bewijscijfers zijn beperkt tot een gelabelde golden set van 40 gesprekken van synthetische data.

Technisch onderzoek

Het onderzoek achter deze demo — de architectuur, het verificatieontwerp en de enterprise-blauwdruk.

Als uw chatbot een architectuurprobleem heeft, wisselen we graag ervaringen uit

Stateful governance, een beleid waarvan het klinische team eigenaar is, en een audit die u kunt indienen.

Als uw team uitwerkt hoe een chatbot voor gedragsgezondheid verdedigbaar te maken voor enterprise-, payer- of regelgevende toetsing, horen we graag hoe u erover nadenkt. Het probleem is sectorbreed en de antwoorden zullen dat ook zijn.

Wat we bouwen

  • ✓ Stateful, beurten-overschrijdende risicomonitoring
  • ✓ Een deterministische escalatiepoort waarvan het klinische team eigenaar is
  • ✓ Door clinici goedgekeurde scriptvervanging
  • ✓ Hash-gekoppelde, indienbare Veiligheidsincidentrapporten

Hoe we werken

  • ✓ Middleware die uw bestaande chatbot omhult
  • ✓ Adviserende modellen, beslissingen genomen door code die u kunt lezen
  • ✓ Productiewissel naar een fijn-afgestemde in-VPC-classificeerder
  • ✓ Governance die standhoudt zelfs als het basismodel verbetert
Social

Ook gepubliceerd op