ממשל משבר מבוסס-מצב ל-AI בבריאות התנהגותית

משבר בצ'אטבוט בריאות נפש הוא מסלול. מודרטור לפי-הודעה אינו יכול לראות אותו.

בנינו middleware בטיחות שעוטף צ'אטבוט קיים לבריאות התנהגותית ואוכף מדיניות הסלמה מבוססת-מצב וחוצת-תורות שהצוות הקליני הוא בעליה. הוא תופס את השיחה המסלימה שמודרטור חסר-מצב מפספס מבנית, ומוכיח כל החלטה במסלול ביקורת משורשר-hash שניתן להגשה. בטיחות היא בעיה ארכיטקטונית, לא בעיה של פרומפטים.

0 מול 68

תשובות לא-בטוחות שנמסרו, מוגן מול לא-מוגן

סט זהב מתויג של 40 שיחות

2 תורות

חציון זיהוי מוקדם יותר מול מודרטור זהה חסר-מצב

אותו מסווג ואותו שער; מבוססות-המצב לבדה

0 / 29

הסלמות שווא על פני תורות שפירים

סט זהב מתויג של 40 שיחות

הדגמה של דפוס ארכיטקטורת-בטיחות על נתונים סינתטיים. לא התקן רפואי, לא ייעוץ קליני, לא אינטגרציית EHR.

נפח ללא זיכרון

צ'אטבוטים לבריאות התנהגותית מפוקחים הודעה אחת בכל פעם. משבר אינו מגיע הודעה אחת בכל פעם.

רוב סקירת הבטיחות על צ'אטבוט לבריאות הנפש מדרגת כל תשובה בבידוד. כל הודעה נבדקת, מסומנת או מאושרת, ונשכחת. זה עובד עבור שורה מסוכנת במפורש אחת. זה עיוור מבנית לשיחה שמסחפת, תור אחר תור, שבה אף הודעה בודדת אינה מדאיגה מספיק כדי לחסום אותה לבדה.

הכשלים המתועדים עוקבים אחר הצורה הזו. הצ'אטבוט "Tessa" של NEDA חילק עצות על גירעון-קלורי וקליפר-עור לפני שהוסר (NEDA, 2023). קלינאים דיווחו על פסיכוזה שחוזקה על ידי צ'אטבוט במטופלים שמעולם לא פגשו אדם שהתנגד (ד"ר Keith Sakata, UCSF, 2025). OpenAI משכה עדכון של GPT-4o לאחר שהפך לחנפני (OpenAI, 2025). בכל מקרה המודל נשמע תומך בתור נתון כלשהו בעוד שהמסלול הלך למקום לא-בטוח.

למודרטור חסר-מצב אין דרך לראות את המסלול הזה, כי אין לו זיכרון של התורות שלפני כן. מודל בסיס טוב יותר אינו מתקן זאת. צ'אטבוט מושלם עדיין אין לו מושג לגבי מדיניות ההסלמה של הפלטפורמה שלכם, אינו מייצר מסלול ביקורת שניתן להגיש, ואינו נותן לכם שער דטרמיניסטי לאשר. לכן אנחנו מתייחסים כאן לבטיחות כאל בעיה ארכיטקטונית, ולכן ההדגמה משווה שתי ערימות שמריצות את אותו מודל זהה.

הדגמת מסך-מפוצל: אותה שיחת מטופל סינתטית רצה דרך צ'אטבוט MindMate Support לא-מוגן משמאל ואותו צ'אטבוט מאחורי שכבת הבטיחות של Veriprajna מימין, עם מסילת צינור הקוראת מסווג, מסלול, מאמת, שער, ביקורת.
ההדגמה מריצה מחדש שיחה סינתטית אחת דרך שתי ערימות. MindMate Support הוא מחליף בדיוני לצ'אטבוט קיים. נתונים סינתטיים בלבד, ללא PHI.

המנגנון: צינור מבוסס-מצב שרץ בכל תור

מודלים ייעוציים מזינים שער דטרמיניסטי. השער מקבל את ההחלטה, וההחלטה היא קוד שניתן לקרוא.

כל תור של המטופל רץ דרך צינור קבוע. ההודעה מנוקה מ-PII ומחושבת ל-hash, מסווג C-SSRS מדרג את חומרתה על מבנה Columbia ומחזיר רמה, ביטחון, ו-ABSTAIN כשאינו יכול להצדיק חומרה. מנטר מסלול מבוסס-מצב צובר אז סיכון על פני תורות. זו יכולת הליבה, וזה הדבר האחד שאין למודרטור לפי-הודעה: הוא רואה את הדפוס, לא את השורה הבודדת, ומייצר סיכון אפקטיבי וטווח (BENIGN, WATCH, CONCERN, HIGH, CRITICAL) עם סיבה מנוסחת כגון "הפרעת אכילה מתמשכת, שיפוע עולה."

לפני שתשובה מועמדת כלשהי מגיעה למטופל, פאנל מאמת רב-מבקרים בודק אותה: מבקר חנפנות וטון, מתאם דפוסים-אסורים, ובודק טענות-קליניות. מבקר שסומן כופה על השער לפחות רמת מינימום מוגדרת, לא משנה כמה עדינה התשובה נשמעת.

ההחלטה עצמה היא שער מדיניות דטרמיניסטי בן 5 רמות, והיא Python, לא LLM: L1 CONTINUE, L2 RESTRICT, L3 SUBSTITUTE_SCRIPT, L4 HUMAN_HANDOFF, L5 CRISIS_PROTOCOL. כשהשער חוסם תשובה הוא מחליף באחד מספריית תסריטים כתובים-קלינאי שמקובצת לפי רמה ומשפחה, ורושם את מזהה התסריט. הוא לעולם אינו מאלתר שפת משבר. כל תור נכתב אז כרשומת sha256 משורשרת לקודמת לה.

הערימה המוגנת מציגה את מסילת הצינור לכל-הודעה (מסווג, מסלול, מאמת, שער, ביקורת) עם השהיות לכל-שלב, ותוצאות שער מוטבעות לתורות מוקדמים הקוראות L1 CONTINUE ו-L2 RESTRICT בעוד שהמודרטור חסר-המצב באותו תור קורא BENIGN, לא רואה דבר, אין זיכרון.
הצינור רץ על כל הודעה. ההשהיה הנוספת היא תת-מילישנייה לתור (ממוצע 0.16 ms, p95 0.21 ms על פני סט הזהב).

הצוות הקליני הוא בעל המדיניות, לא ההנדסה

הספים, המינימומים שנכפים-על-ידי-המאמת, וספריית 12-התסריטים מוגדרים על ידי ועדת הבטיחות הקלינית תחת גרסת מדיניות 2026.04-clinical-v1. ההנדסה אוכפת בדיוק זאת, ואינה משנה אותה. היסטוריית מטופל, שנשלפת דרך דגל FHIR מדומה, יכולה להוריד סף כך שהשכבה מסלימה מוקדם יותר עבור מטופל פגיע יותר. כשביטחון המסווג נמוך, הוא נמנע ומנתב לסקירה אנושית במקום לנחש חומרה.

המודאל של המדיניות הקלינית מציג רמות מינימום שנכפות-על-ידי-המאמת לכל מבקר וממצא, כללי אי-ודאות וגבול (הימנעות בביטחון-נמוך כופה אדם, ציון jailbreak ב-0.8 ומעלה כופה מינימום L3), וספריית 12-התסריטים המאושרת-קלינאי עם הודעת החלפה L2 להפרעת-אכילה שנחשפה.
מודאל המדיניות: מינימומים שנכפים-על-ידי-המאמת, כללי הימנעות ו-jailbreak, וספריית התסריטים המאושרת-קלינאי עם הודעת החלפה שנחשפה.

שיחה אחת, עובדה מקצה לקצה

תרחיש הגיבור כברירת מחדל הוא היסחפות הפרעת-אכילה: שישה תורות, כל אחד מהם בנפרד שאלת Wellness רגילה.

השיחה נפתחת בשאלות תמימות על אכילה בריאה יותר וספירת קלוריות. למודרטור לפי-הודעה אין מה לחסום, והבסיס חסר-המצב בהדגמה נשאר ירוק, קורא WATCH ו-"לא רואה דבר, אין זיכרון" תור אחר תור. השכבה מבוססת-המצב, שצופה במסלול, חוצה ל-CONCERN בתור 3. היא חוסמת את תשובת הצ'אטבוט ומחליפה בתסריט עיגון כתוב-קלינאי שמצביע ל-NEDA Helpline. זה שני תורות לפני ההודעה המסוכנת במפורש הראשונה.

תור 3 של הערימה המוגנת: מד הסיכון חוצה-התורות קורא 3.4 CONCERN, תשובת הצ'אטבוט חסומה ולא נשלחת, ותסריט עיגון L3 מאושר-קלינאי מוחלף עם מספר ה-NEDA Helpline, בעוד שהמודרטור חסר-המצב לפי-הודעה באותו תור עדיין קורא WATCH ולא רואה דבר.
תור 3: השכבה מבוססת-המצב מגיעה ל-CONCERN ומחליפה בתסריט עיגון. המודרטור חסר-המצב, אותו מסווג, עדיין לא רואה דבר.

בתורות האחרונים ההודעות הופכות למסוכנות במפורש. הערימה הלא-מוגנת משמאל מוסרת את התשובה המזיקה, המוצגת כמחוקה ומסומנת כנמסרה למטופל וכלא-בטוחה. מימין, פאנל המאמת מיירט את התשובה, תופס את הטון החנפני ואת הדפוס האסור, והשער מסלים ל-L4 העברה לאדם, ומזמן חבר צוות-טיפול עם הקשר מלא. אנחנו מתארים את התפיסה, לא את התוכן המזיק עצמו.

תורות אחרונים: מימין פאנל המאמת מיירט את התשובה המועמדת, מד הסיכון קורא 5.0 CRITICAL והשער מגביל את ההסלמה ל-L4 העברה לאדם כי אין סימן L5 חריף, תסריט העברה מאושר-קלינאי מוחלף, והתשובה המזיקה חסומה ולא נשלחת, בעוד שהערימה הלא-מוגנת משמאל מציגה את אותה תשובה מחוקה כנמסרה ולא-בטוחה.
המאמת מיירט את התשובה המועמדת והשער מסלים ל-L4 העברה לאדם. הערימה הלא-מוגנת מוסרת את אותה תשובה.

תוצאת המפגש הופכת את הפער למוחשי, והוא מיוחס למבוססות-מצב לבדה כי שתי הערימות השתמשו באותו מסווג ובאותו שער. ההבדל היחיד היה זיכרון חוצה-תורות.

פאנל תוצאת המפגש: נתפס 2 תורות מוקדם יותר מהמודרטור הזהה חסר-המצב (תור 3 מול תור 5), 0 תשובות לא-בטוחות שנמסרו במקום שבו הערימה הלא-מוגנת הייתה שולחת 2, שרשרת הביקורת שלמה על פני 6 רשומות עמידות-לחבלה תחת מדיניות קלינית 2026.04-clinical-v1.
תוצאת מפגש לשיחת היסחפות-הפרעת-האכילה: 0 לא-בטוחות שנמסרו מול 2, נתפס 2 תורות מוקדם יותר, שרשרת הביקורת שלמה.

על פני כל סט הזהב

רתמת המדד מדרגת סט זהב מתויג של 40 שיחות ו-177 תורות, שנוצר דטרמיניסטית מ-8 שיחות קנוניות שנכתבו-ביד בתוספת פרפרזה משמרת-תווית ווריאנטים של בקרה-שפירה. על הסט הזה הערימה המוגנת מסרה 0 תשובות לא-בטוחות במקום שבו ערימה לא-מוגנת מסרה 68. הזיהוי רץ בחציון של 2 תורות מוקדם יותר מהמודרטור הזהה חסר-המצב, וב-2 שיחות המודרטור חסר-המצב לא הסלים כלל. היו 0 הסלמות שווא על פני 29 תורות שפירים, דיוק רמת C-SSRS היה 94.3% בהתאמה מדויקת ו-97.2% בתוך רמה אחת, והשכבה נמנעה וניתבה לאדם פעם אחת. המספרים האלה מוגבלים לסט הזהב הסינתטי הזה, לא ערובה בעולם-פתוח.

לוח התוצאות החי של 40 השיחות מפרט כל תרחיש עם תוצאתו, לדוגמה היסחפות הפרעת-אכילה שנתפסה 2 תורות מוקדם יותר, שריפה-איטית של פסיכוזה שבה המודרטור חסר-המצב פספס, ושליליות-אמיתיות שפירות ללא הסלמה.
המדד של 40 השיחות, מחושב חי על ידי ההדגמה. תרחישי שריפה-איטית הם המקומות שבהם המודרטור חסר-המצב אינו מסלים כלל.

הקבלה הניתנת-להגשה

כל שיחה מציגה דוח אירוע בטיחות. כל תור הוא רשומת sha256 משורשרת לקודמת, כך שעריכת שדה כלשהו שוברת כל hash מאוחר יותר והחבלה ניכרת. הדוח מציג את רמת המסווג, את הסיכון חוצה-התורות, את ממצאי המאמת, את החלטת השער ואת הסיבה לה, את מזהה התסריט שהוחלף, ואת שרשרת ה-hash, עם השרשרת מאומתת כשלמה. הוא בנוי להגשה: ראיות ניטור פוסט-שיווקי של ה-FDA, הגנה משפטית, חיתום ביטוחי.

דוח אירוע הבטיחות המשורשר-hash לשיחת היסחפות-הפרעת-האכילה, טבלה של 6 תורות המציגה hash הודעה מנוקה-PII, רמת מסווג, טווח סיכון חוצה-תורות, ממצאי מאמת, החלטת שער עם הסיבה, מזהה תסריט שהוחלף, ושרשרת-hash של sha256, עם עמידות-לחבלה מסומנת כשרשרת שלמה.
דוח אירוע הבטיחות: רשומה לכל-שיחה, משורשרת-hash, עמידה-לחבלה שמבקר יכול לקרוא שורה אחר שורה.

מודרטור חסר-מצב מול שכבת הבטיחות

אותה משימה, הבדל מבני אחד: זיכרון על פני תורות ומדיניות שמישהו יכול להיות בעליה.

יכולת מודרטור חסר-מצב לפי-הודעה שכבת בטיחות AI קלינית
מדרג הודעה בודדת כן כן
רואה את המסלול חוצה-התורות לא, אין לו זיכרון כן, צובר סיכון מבוסס-מצב
בודק את התשובה המועמדת לפני המסירה לא כן, פאנל מאמת רב-מבקרים
מי בעל מדיניות ההסלמה משתמע במודל או בפרומפט הצוות הקליני, שער בן 5 רמות
מה מקבל את ההחלטה מודל או פרומפט קוד דטרמיניסטי מחוץ ל-LLM
שפת משבר כשהוא חוסם נוצרת-על-ידי-המודל, מאולתרת ספריית תסריטים מאושרת-קלינאי
ביקורת בנויה להגשה אין דוח אירוע בטיחות משורשר-hash

מה שהדגמה זו אינה עושה

  • זה אינו התקן רפואי ואינו מאושר-FDA, מוסמך-HIPAA, או ייעוץ קליני. מסגור FDA PCCP ו-SaMD הוא כיוון ייצור נדחה, לא טענה על ההדגמה.
  • כל שיחה, כל מטופל, וצ'אטבוט "MindMate Support" הם סינתטיים. אין נתוני מטופל אמיתיים ואין PHI.
  • מתאם ה-FHIR הוא stub עם דגל מטופל סינתטי. אין חיבור Epic או Cerner בהדגמה.
  • המסווג הוא מסווג לקסיקון דטרמיניסטי, פשוט במכוון. ההחלפה לייצור היא מודל מכוונן-עדין in-VPC מאחורי אותו ממשק. דמיון סמנטי בהדגמה הוא Jaccard על טוקנים, לא אמבדינגים של משפטים.
  • כל מספרי ההוכחה מוגבלים לסט זהב מתויג של 40 שיחות של נתונים סינתטיים, לעולם לא ערובה בעולם-פתוח. אין לקוחות, פריסות, או אישורי קלינאים לצטט, ואנחנו לא ממציאים כאלה.

שאלות שקונים שואלים

האם זה מחליף את הצ'אטבוט שלנו או את המודל הקליני שלנו?

לא. זה middleware שעוטף את הצ'אטבוט הקיים ולעולם אינו משנה את המודל. הוא מוסיף צובר סיכון מבוסס-מצב חוצה-תורות, פאנל מאמת רב-מבקרים, ושער הסלמה דטרמיניסטי סביב המודל, ומחליף בתסריט כתוב-קלינאי כשהוא חוסם תשובה. הנקודה היא ממשל מבוסס-מצב וקבלה ניתנת-להגשה, לא מודל אחר.

במה זה שונה מפיקוח התוכן שאנחנו כבר מריצים על כל הודעה?

מודרטור לפי-הודעה מדרג כל תשובה בבידוד ואין לו זיכרון, ולכן הוא מפספס משבר שנבנה על פני תורות. על סט זהב מתויג של 40 שיחות השכבה מבוססת-המצב הסלימה בחציון של 2 תורות מוקדם יותר ממודרטור זהה חסר-מצב שהשתמש באותו מסווג ובאותו שער. בשתיים מאותן שיחות המודרטור חסר-המצב לא הסלים כלל.

האם החלטת ההסלמה מתקבלת על ידי LLM?

לא. המסווג ופאנל המאמת הם ייעוציים, אך החלטת ההסלמה בת 5 הרמות והביקורת הם Python דטרמיניסטי מחוץ לכל LLM. מבקר יכול לקרוא את השער; הוא אינו יכול לחקור פרומפט בחקירה נגדית. סוכנים מייעצים, קוד מחליט.

האם נוכל להוכיח לרגולטור או לבית משפט מה המערכת עשתה ומדוע?

כל תור הוא רשומת sha256 משורשרת לקודמת, כך שעריכת שדה כלשהו שוברת כל hash מאוחר יותר והחבלה ניכרת. התוצאה היא דוח אירוע בטיחות ניתן-להגשה ב-JSON וב-HTML, ממוסגר לניטור פוסט-שיווקי של ה-FDA, הגנה משפטית, וחיתום ביטוחי. בהדגמה הדוח מציג את השרשרת שלמה.

האם מודל בסיס טוב יותר לא יהפוך זאת למיותר?

צ'אטבוט מושלם עדיין אין לו מושג לגבי מדיניות ההסלמה של הפלטפורמה שלכם, אינו מייצר מסלול ביקורת, אינו נותן לכם שער דטרמיניסטי לאשר, ואינו מציע הגנה כשהוא נפרץ ב-jailbreak. הערך העמיד הוא הממשל מבוסס-המצב בתוספת הקבלה הניתנת-להגשה, לא שיעור-שגיאת-מודל נמוך יותר. לכן ההדגמה משווה מול מסווג ושער זהים ומייחסת את השיפור למבוססות-מצב לבדה.

האם זה התקן רפואי מתוקף, והאם הנתונים אמיתיים?

לא. זו הדגמה של דפוס ארכיטקטורת-בטיחות, לא התקן רפואי, והיא אינה מאושרת-FDA או מוסמכת-HIPAA. כל שיחה היא סינתטית, מתאם ה-FHIR הוא stub, והמסווג הוא מסווג לקסיקון דטרמיניסטי שעומד במקום מודל ייצור in-VPC. כל מספרי ההוכחה מוגבלים לסט זהב מתויג של 40 שיחות של נתונים סינתטיים.

מחקר טכני

המחקר מאחורי הדגמה זו — הארכיטקטורה, עיצוב האימות, והתכנון הארגוני.

אם לצ'אטבוט שלכם יש בעיית ארכיטקטורה, נשמח להשוות הערות

ממשל מבוסס-מצב, מדיניות שהצוות הקליני הוא בעליה, וביקורת שניתן להגיש.

אם הצוות שלכם עובד על האופן שבו הופכים צ'אטבוט לבריאות התנהגותית לניתן-להגנה לסקירה ארגונית, של גורם משלם או רגולטורית, נשמח באמת לשמוע איך אתם חושבים על זה. הבעיה היא רוחבית-לתעשייה וגם התשובות יהיו.

מה אנחנו בונים

  • ✓ ניטור סיכון מבוסס-מצב, חוצה-תורות
  • ✓ שער הסלמה דטרמיניסטי שהצוות הקליני הוא בעליו
  • ✓ החלפת תסריט מאושר-קלינאי
  • ✓ דוחות אירוע בטיחות משורשרים-hash, ניתנים-להגשה

איך אנחנו עובדים

  • ✓ middleware שעוטף את הצ'אטבוט הקיים שלכם
  • ✓ מודלים ייעוציים, החלטות מתקבלות על ידי קוד שניתן לקרוא
  • ✓ החלפת ייצור למסווג מכוונן-עדין in-VPC
  • ✓ ממשל שמחזיק גם כשמודל הבסיס משתפר
רשתות חברתיות

פורסם גם ב