Stateful crisisbeheer voor AI in de gedragsgezondheid
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.
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.
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 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 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.
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.
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.
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.
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.
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 |
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.
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.
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.
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.
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.
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.
Het onderzoek achter deze demo — de architectuur, het verificatieontwerp en de enterprise-blauwdruk.
Volledige oplossing
Ontdek de oplossing Clinical AI Safety for Mental Health Platforms →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.