Your Log Can't Record What Didn't Happen

רוב כלי הבטיחות של AI מחפשים עקבות (artifacts). הם מחפשים רשומה בלוג, חתימה או תוצאה של כלי. אם תוצאת כלי היא מזויפת, המערכת מסמנת אותה. אם בלוק JSON שבור, המערכת תופסת אותו.

אלו כשלים קלים כי הם מותירים עקבות.

הסכנה האמיתית היא השמטה. השמטה היא מצב שבו שום דבר לא קורה.

בלוג מסוג append-only, היעדר נראה אותו הדבר בשלוש דרכים:

  • זה לא קרה.
  • זה עוד לא קרה.
  • זה קרה אך מעולם לא תועד.

הלוג לא מראה דבר. שאילתת הביקורת (audit query) לא מחזירה דבר. השתיקה הופכת להסכמה.

ניתן לתקן זאת באמצעות שלושה כללי עיצוב:

  1. Make silence expire אם סוכן (agent) מבצע פעולה, בודק (reviewer) חייב לאשר אותה. חתימה חסרה היא חור באבטחה שלכם. אל תתנו למצב "ממתין" (pending) להישאר במצב זה לנצח. קבעו דדליין. אם הדדליין עובר, המערכת חייבת לתעד מצב סופי כמו REVIEW_EXPIRED. זה הופך שטח ריק לשגיאה שניתן לחפש.

  2. Require citations for claims סוכנים משתמשים לעיתים קרובות בפרוזה כדי לתאר את העולם. סוכן עשוי לומר, "הקובץ היה ריק". אם אין תוצאת כלי שתתמוך בכך, הטענה היא מסוכנת.

אם טענה משפיעה על פעולה עתידית, עליה לכלול מזהה תצפית (observation ID). אל תנסו לנחש אם הסוכן דובר אמת. פשוט בדקו אם הטענה מצביעה על מקור נתונים אמיתי. טענה ללא ציטוט היא הודעה לא תקינה (malformed message).

  1. Use a two-event split for actions כאשר סוכן מתחיל משימה, כמו שליחת אימייל, הוא עלול לקרוס לפני שהוא מתעד את התוצאה. זה יוצר פער. האם האימייל נשלח? האם כדאי לנסות שוב?

השתמשו בזרימה הזו:

  • הוסיפו אירוע INTENT עם מפתח ייחודי.
  • בצעו את הפעולה.
  • הוסיפו אירוע OUTCOME.

כעת תוכלו לראות את מצב הביניים. אם יש לכם INTENT אך אין OUTCOME, אתם יודעים בדיוק היכן המערכת נכשלה. תוכלו ליישב (reconcile) את המצב במקום לנחש.

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

תכננו את המצבים השליליים שלכם כרשומות מסוג first-class. תנו להם שמות. תנו להם בעלים. גרמו להם להיכשל בשערים (gates) שלכם.

Source: https://dev.to/anp2network/your-log-cant-record-what-didnt-happen-2ga7

Optional learning community: https://t.me/GyaanSetuAi