
החוק היה אמיתי. התשובה עדיין הייתה בלתי חוקית.
התשובה הראשונה שאי פעם ראיתי צ'אטבוט ממשלתי נותן בביטחון ובאופן שגוי הייתה על שובר Section 8.
בעל דירה שואל, במילים פשוטות, האם הוא רשאי לסרב לשוכר שישולם עבורו שכר דירה באמצעות שובר דיור. התשובה הנכונה היא לא. סירוב הוא אפליה על בסיס מקור הכנסה לפי NYC Admin. Code § 8-107(5), ונציבות זכויות האדם של העיר יכולה להטיל קנסות אזרחיים של עד $250,000 על הפרה מכוונת. זו אינה שאלת מלכודת. זהו דין מושרש. ובאוקטובר 2023, הבוט MyCity של העיר ניו יורק עצמה, שרץ על Azure AI, אמר לבעלי עסקים ולבעלי דירות את ההפך. The Markup תיעד זאת במרץ 2024: הבוט אמר שבעלי דירות יכולים לדחות מחזיקי שוברים, שחנויות יכולות לעבור להיות ללא מזומן, שמעסיקים יכולים לכייס חלק מהטיפים של עובדיהם. כל אחת מהתשובות האלה הייתה בלתי חוקית, וכל אחת מהן נשאה את חותם העיר על דומיין .gov.
לא בניתי את CivicCite כי מודל הזה. בניתי אותו בגלל התשובות שהיו כמעט נכונות, ואני רוצה לספר לכם על זו ששינתה את האופן שבו אני חושב על כל הבעיה. אם אתם רוצים לראות את הדבר עצמו, הוא חי כאן: veriprajna.com/he/demos/government-municipal-ai. הקורפוס הוא גרף הדגמה סינתטי-אך-נאמן, לא ייעוץ משפטי. אבל המנגנון אמיתי, והמנגנון הוא החלק ששווה להתווכח עליו.
הרגע שנשאר איתי לא היה הבוט ממציא חוק. זה היה לצפות בצנרת שלי עצמי מושכת את החוק הנכון ועדיין מנסחת את התשובה השגויה.
השבוע שבו ביליתי בהוספת אחזור לבעיה שאחזור אינו יכול לגעת בה
התחלתי בזה כמו שכמעט כל אחד ב-GovTech מתחיל, משוכנע שהתיקון לצ'אטבוט שקרן הוא אחזור טוב יותר. תנו למודל את הקוד העירוני האמיתי. עגנו כל תשובה בהוראה אמיתית. retrieval-augmented generation, התשובה הסטנדרטית לפחד הסטנדרטי — שהמודל ממציא דברים. זה סיפור נקי, הוא מדגים יפה, והאמנתי בו יותר זמן ממה שהיה עליי.
ואז קראתי את מספרי סטנפורד והם הרסו את הסיפור. Magesh ועמיתיו, במחקר מ-2025 שפורסם דרך JELS, מדדו את שני כלי המחקר המשפטי הייעודיים שעושים בדיוק את זה. Lexis+ AI הזה ב-17% מהשאילתות. מחקר בסיוע בינה מלאכותית של Westlaw הזה ב-33%. אלה אינם צ'אטבוטי צעצוע. אלה מערכות שמאחזרות תחילה את החוק ויוצרות שנית, שנבנו על ידי חברות שכל העסק שלהן הוא להיות צודקות לגבי החוק. בערך אחת מכל שלוש תשובות מהכלי השני עדיין הייתה שגויה. האחזור שיפר את הטיוטה. הוא לא הפך את התשובה לבטוחה לשחרור.
אני רוצה להיות כן לגבי איך זה הרגיש, כי בדיוק ביליתי שבוע בבניית אותה ארכיטקטורה ובהרגשת חכמות לגביה. הצנרת שלי פירקה את שאלת האזרח לתת-שאלות משפטיות אטומיות, אחזרה הוראות מועמדות מגרף קוד עירוני, והגבילה את המודל לנסח רק ממה שאחזר. בשאלת Section 8 הוא עשה הכול נכון עד הצעד האחרון. הוא מצא את § 8-107(5). החוק הנכון. הוא משך את הטקסט המדויק על מקור הכנסה חוקי. ואז ניסח משפט שקרא, למעשה, כן, אתה יכול לסרב לשובר.
החוק הנכון. התשובה השגויה. יושבים זה על גבי זה באותה טיוטה.
האחזור מוסר למודל את החוק הנכון. הוא אינו עושה דבר כדי למנוע מהמודל לקרוא את החוק הזה לאחור.
זה היה השבוע שבו הבעיה שינתה צורה עבורי. התייחסתי להזיה כאל האויב, והזיה אמיתית, אבל זה הכשל שאפשר לדמיין שתופסים. הכשל שבאמת שלח את תשובות MyCity עדין יותר וגרוע יותר: ההוראה הנכונה מצוטטת, המסקנה השגויה מנוסחת. אין פברוק בשום מקום במשפט. אין דבר שמסנן של "האם המצאת את זה" יכול לתפוס, כי שום דבר לא הומצא. רק קריאה שגויה בביטחון של חוק שישב בדיוק שם. מצב הכשל הזה בלתי נראה לאחזור, כי האחזור בודק רק שהחוק נוכח, לעולם לא שהמשפט קרא אותו בכיוון הנכון.
מה גרוע יותר, חוק מומצא או חוק אמיתי שנקרא לאחור?
חזרתי שוב ושוב לשאלה הזאת, והתשובה שלי נעשתה ודאית יותר ויותר. החוק המומצא הוא הכשל הבטוח יותר.
חשבו מה אזרח עושה עם כל אחד מהם. חוק מפוברק בבירור נשמע מוזר, מצטט סעיף קוד שאינו נפתר, מרגיש לא בסדר. חוק אמיתי שנקרא לאחור נשמע מושלם. יש לו ציטוט אמיתי. הסעיף קיים. בעל דירה קורא "כן, אתה יכול לסרב לשובר," רואה מספר קוד אמיתי מצורף, ופועל על פיו. עכשיו יש סירוב בלתי חוקי, שוכר עם תביעת אפליה, ומסלול נייר שמוביל חזרה לתשובה ממשלתית. נכונות הציטוט היא בדיוק מה שהופך את המסקנה השגויה למסוכנת. זהו האישור שעצה רעה רוכבת עליו פנימה.
אז הבדיקה שהכי אכפת לי ממנה מעולם לא הייתה "האם הציטוט הזה אמיתי." היא הייתה "האם הציטוט הזה באמת תומך במשפט הזה." בצנרת הבדיקה הזאת היא גרירה: בהינתן הטענה שנוסחה והטקסט המדויק של ההוראה המצוטטת, האם הטקסט גורר את הטענה, סותר אותה, או אף אחד מהם. בטיוטת Section 8, ה"כן" של המודל נתפס כסותר על ידי § 8-107(5), כי ההוראה אומרת במפורש את ההפך. הטיוטה מתה שם. מה ששורד, ומה שהשער משחרר בסופו של דבר, הוא הטענה המתוקנת: בעל דירה אינו רשאי לסרב, והנה החוק שאומר זאת.

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

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

תשובה שגויה בדומיין ממשלתי אינה מבוכה. היא אחריות משפטית עם שם העיר עליה.
הביטו במה שהמסך הזה מסרב לעשות. הוא אינו מסנתז תשובה סבירה מחוק מת. הוא אומר, בשפה פשוטה, שההוראה היחידה העוסקת בזה בוטלה ושום דבר שבתוקף כעת אינו שולט בשאלה, והוא מעביר את האזרח הלאה במקום לנחש. הימנעות כנה מנצחת תשובה שגויה בביטחון, במיוחד בממשל. ובממשל הסיכונים אינם מוניטיניים. ייעוץ משפטי ממשלתי יושב באזור התפקיד הקנייני, מה שאומר שאין מגן חסינות ריבונית להתחבא מאחוריו כשהתשובה מתבררת כשגויה.
זו אינה עוד דאגה היפותטית, וזה חלק מהסיבה שבניתי את הדבר עכשיו במקום מאוחר יותר. היו 78 הצעות חוק הקשורות לצ'אטבוטים ב-27 מדינות ב-2026. S7263 של ניו יורק הגיעה למליאת הסנאט ב-26 בפברואר 2026. חובות הסיכון הגבוה של Annex III ב-EU AI Act נכנסות לאכיפה ב-2 באוגוסט 2026, עם קנסות של עד €15M או 3% מהמחזור העולמי. השאלה הרגולטורית עוברת מ"האם הבינה המלאכותית שלכם מועילה" ל"האם אתם יכולים להוכיח שהבינה המלאכותית שלכם הורשתה לומר זאת." שתיקה שניתן להגן עליה. תשובה שגויה בביטחון — לא.
המספר שרגולטור יכול באמת לפעול עליו
נהגתי לחשוב שהמדד הכותרתי למערכת כזאת הוא שיעור הזיה, ועכשיו אני חושב שהאינסטינקט הזה הפוך בדיוק. אחוז הוא הדבר הלא נכון למסור לרגולטור.
דמיינו שאתם מחלקת המשפטים של העיר, המשרד שמחזיק באחריות כשתשובה משתבשת. "הצ'אטבוט שלנו מזה רק 4% מהזמן" אינו מרגיע. זהו הודאה שארבעה מתוך מאה אזרחים מקבלים תשובה עם סמכות העיר מאחוריה ושום דבר לא עומד מאחורי התשובה. המספר שמשמעותו משהו אינו על כמה פעמים המודל טועה. הוא על האם משהו לא מאומת אי פעם הורשה לצאת מהדלת. אז המדד שבניתי את הבנצ'מארק סביבו הוא זה: על סט זהב קבוע ומתויג של 12 שאילתות, שרץ דרך הצנרת האמיתית, ספירת התשובות ששוחררו ללא בסיס סטטוטורי מאומת ובתוקף. היעד הוא אפס מתוך שתים-עשרה.
שיעור הזיה אומר לרגולטור כמה פעמים נכשלתם. הוא אינו יכול לומר להם שתפסתם זאת.

אני רוצה להיות מדויק לגבי מה שהמספר הזה הוא ומה שאינו, כי הערכת יתר שלו הייתה בוגדת בכל ההנחה. זהו תוצאה על סט מתויג קבוע, לא ערבות לעולם פתוח ולא "אפס הזיה," ביטוי שלדעתי אף אדם ישר לא צריך למכור. המודל עדיין מנסח טענות לא מושלמות. הנקודה היא שהלא מאומתות מוחזקות, לא שהן לעולם לא מנוסחות. לצד המספר הזה יושבים עוד שניים: כיסוי רשומת ביקורת של 100%, כלומר רשומה אחת שניתן להגיש לכל שאילתה בין אם היא יוצאת או מסרבת, והסכמת דיספוזיציה עם אמת הקרקע המתויגת. קו הבסיס של plain-RAG, ארכיטקטורת MyCity ללא שער, היה משחרר את התשובות הבלתי חוקיות המתועדות על אותו סט. ההשוואה הזאת היא הקשר, לא הכותרת.
הרשומה היא החלק שהייתי מגן עליו הכי קשה.

כל שאילתה, ששוחררה או סורבה, מייצרת רשומת החלטה סטטוטורית: הדיספוזיציה, הציטוט, כל ארבע תוצאות הבדיקה, ההחלטה, כנתונים מובנים שניתן להגיש ולהריץ מחדש. היא מציינת רישום NIST AI RMF וניטור רציף של FedRAMP ו-StateRAMP כתקנים שהיא בנויה לקראתם. אני זהיר עם המשפט הזה. בנויה לקראתם הוא כיוון, לא הסמכה, ולא אטען ש-CivicCite מוסמך מול אף אחד מהם. אבל מבקר אינו רוצה הבטחה שהמודל חכם. מבקר רוצה רשומה, לכל אינטראקציה, שמראה בדיוק מדוע תשובה הורשתה להתקיים, בצורה ששורדת מישהו שמנסה לשבור אותה. יכולת השחזור היא מה שהופכת החלטה לראיה, וראיה היא מה שרגולטור יכול לפעול על פיה.
ואם הייתם מעדיפים לצפות בזה מאשר לקרוא אותי מתאר, הנה כל הדמו רץ מקצה לקצה.
השאלה שנשארתי איתה
אני חוזר למשהו שהפתיע אותי בתגובה שלי עצמי. בפעם הראשונה שראיתי את CivicCite מסרב לשאלה ומנתב אותה למחלקה, חלק ממני קרא לזה כשל של המערכת.
זה לא היה כשל. זה עשה את הדבר האחד שבוטים בטוחים אינם יכולים לעשות, שהוא לדעת את קצה מה שהוא יכול להוכיח ולעצור שם. ביליתי כל כך הרבה זמן באופטימיזציה לתשובה טובה שבהנחה בשקט הנחתי שתשובה טובה היא המטרה. זה לא. בממשל, המטרה היא תשובה שניתן להגן עליה, והמרחק בין שני הביטויים האלה הוא כל הסיבה לקיום המוצר הזה. תשובה שניתן להגן עליה נראית לפעמים כמו ציטוט משוחרר. באותה מידה לעיתים קרובות היא נראית כמו שאלה שנותבה ורשומה שהוגשה.
אז השאלה שהייתי משאיר עם כל מי שבונה בינה מלאכותית לממשלה, או קונה אותה, אינה "כמה מדויק המודל שלכם." מודלים טובים יותר ימשיכו להשתפר בכתיבת תשובות רהוטות ושגויות-בהקשר, כי רהיטות מעולם לא הייתה החלק החסר. השאלה שאני שואל לפני שמשהו יוצא מהשער צרה וקשה יותר. האם אתם יכולים להוכיח, ממש עכשיו, שהתשובה המדויקת הזאת מתחקה לחוק שקיים ושהוא כעת בתוקף, והאם ההוכחה הזאת תשרוד בית משפט שרצה שהיא תיכשל? אם התשובה היא לא, לא משנה כמה טוב המודל. המערכת צריכה להישאר בשתיקה. אפשר לצפות בה מחליטה, כך או כך, כאן: veriprajna.com/he/demos/government-municipal-ai.
אמון אינו שייך למודל שצריך להאמין לו. הוא שייך לקוד שניתן לבקר.


