לא נדרש חשבון — זה העוזר של קו עצמו, והוא עונה מהתוכן שקו מפרסם.
מה קורה לשאלה אחת
ארבע עשרה נקודות בדיקה רצות בין שאלה לתשובה — מבקשה חתומה ועד תשובה מדודה ומסוננת בשער גילוי. שש מהן הן המשמעותיות ביותר.
הזהות נפתרת — לא מסופקת
איזה ארגון, איזו שפה ומי שואל מגיעים מהסשן החתום ומהטוקן שלו, לעולם לא משדה בהודעה עצמה. ליכולת שצריכה זהות אין שדה קלט בשבילה — אין נתיב קוד שבו מזהה מגיע מהקורא ומקבל אמון.
המודל מקבל ארגז כלים שנבנה לתור הזה
ארגז כלים מורכב מטבלת היכולות שלכם לתור הזה בלבד, תחת תקציב טוקנים קבוע. יכולת שהלקוח עדיין לא עמד בדרישותיה לא מוסתרת — היא כן מוצגת, וההפעלה שלה פותחת הזדהות וממשיכה מאותה קריאה בדיוק, במקום להחזיר נתון שאסור לה.
שכבה אחת עושה את כל העבודה
היכולת בודקת זכאות, קוראת למערכת שלכם דרך מחבר, וממפה את התשובה למבנה מוקלד. שום דבר מעל השכבה הזו — העוזר, תרשים, חוק או הפורטל — לא מגיע למערכת שלכם ישירות. אם ערך זהות כלשהו מגיע כארגומנט, זו לא נחשבת קלט שגוי — המהדר כבר הסיר שדות כאלה בכל עומק קינון, כך שהופעתם נרשמת כניסיון הזרקה חשוד, לא מתקבלת בשקט.
תבנית כותבת את המספרים, שער בודק את השאר
סכומים, תאריכים, מזהים וסטטוסים מגיעים למסך דרך תבנית תצוגה שמוזנת מאותו פלט מוקלד. שער נפרד חוסם כל משפט שלא נשען על מה שהיכולת החזירה בפועל — המודל לעולם לא כותב מספר בעצמו.
שער אחד מחליט מה מותר לכם לראות
לפני שמשהו יוצא, כל שדה יוצא עובר גבול גילוי אחד — מותקן על ידי הטיפוס עצמו, לא על ידי מפתח שזוכר להוסיף בדיקה — שמצנזר או חוסם לפי מחלקת הרגישות של הנתון ולפי מי שואל. שדה שלא סווג נפתר למחמיר ביותר, לעולם לא לקל ביותר.
כל קריאה, כל שער, כל עלות — שורה
כל הפעלת יכולת, כל שער שנסגר וכל עלות מודל נכתבים כרשומה שאפשר לספור — גלויה בסטודיו, לא קבורה בקובץ לוג. לסירוב יש שם; לדבר בעל שם אפשר לספור, להתריע עליו ולתקן אותו.
ארבעה־עשר בדיקות רצות בין בקשה חתומה לתשובה על המסך. אחת־עשרה מהן יכולות לעצור את התשובה לגמרי — זה כל המסלול, לא רק קטעי השיא.
1
הודעה נכנסתווידג׳ט, טלגרם או וואטסאפ — חתומה ומזוהת ערוץ
2
ארגון ושפהנקבעים מהטוקן, לעולם לא מהלקוח
3
סינון הזרקת פקודותטקסט בצורת הוראה בתוך ההודעה מנוטרל
4
שערי מצוקה ומצבמצוקה, מידע אישי או צד שלישי — כל אחד פותח מסלול משלו
5
ניתוב לפי הנחיהשורה בטבלה קובעת עדיפות — לעולם לא תנאי בקוד
6
מרחב הכלים לתוררק היכולות שמותרות לאדם הזה, עכשיו
לולאת הכלים — חוזרת עד שהתשובה מבוססת
7
המודל בוחר כליהוא בוחר מה לשאול — לעולם לא את התשובה עצמה
8
שכבת היכולותבדיקת ארגומנטים, זהות, זכאות, קריאה למערכת שלכם, מיפוי מוקלד
9
ידע וחוקיםחיפוש היברידי ודירוג־מחדש, או מנוע חוקים מקומפל להחלטה
10
תבנית תצוגהכל מספר, תאריך, מזהה וסטטוס עוברים דרך תבנית — לעולם לא דרך המודל
11
שערי הפלטביסוס, סף ביטחון, מספר שהומצא, מזהה בלי מקור — כל אחד חוסם
12
שער הגילוירדקציה לפי מחלקת רגישות — נקודת מעבר אחת שכל פלט חוצה
13
על המסךמועבר בזמן אמת, עם תווית מקור ושעה
14
יומן ביקורתכל קריאה ליכולת, כל שער שנסגר, כל עלות — נרשמים
מסלול התשובהנקודת אכיפהנרשם· כל שער שנכשל נסגר: אין מידע — אין תשובה.
יכולת אחת, שלושה פנים — רק אחד מהם שלכם
יכולת — «מה היתרה שלי», «קבעו לי תור», «פתחו פנייה» — נשמרת כשלוש שכבות נפרדות. ההפרדה הזו היא כל ההבדל בין מוצר אחד לבין שכתוב לכל ארגון שמתקין אותו.
סמנטיקה — מה שהמודל קורא
תקציר, מתי להשתמש, מתי לא, הבהרות ומילים נרדפות בכל שפה. זהה בכל ארגון.
חוזה — הקלט והפלט
סכמה מוקלדת. כל פרומפט, חוק, תרשים שיחה ומסך בפורטל נכתבים מולה ומול שום דבר אחר. זהה בכל ארגון.
ביצוע — הקישור למערכות שלכם
איזה מחבר, איזו פעולה, איך נבנית הבקשה ואיך ממופה התשובה. זו השכבה היחידה ששייכת לכם.
מחליפים ספק גבייה — ורק הביצוע משתנה. הפרומפטים, החוקים, תרשימי השיחה והבדיקות נשארים בדיוק כפי שהם.
איך מודל שפה נוגע במערכת אמיתית
מודל שפה, לבדו, יודע רק לכתוב טקסט — הוא לא יודע מה היתרה של אף אחד. כדי לפעול הוא צריך כלים: רשימת פעולות שהוא רשאי לבקש, כל אחת עם שם, תיאור וטופס קלט מוקלד. התקן הפתוח למסירה הזו הוא MCP, ה-Model Context Protocol. הפער שהוא לא סוגר: שרת כלים רגיל הוא קוד — הכלים שלו נכתבים בקובץ, נבנים ונפרסים. כלי חדש הוא גרסה חדשה.
שרת כלים רגיל
רשימת כלים קבועה, כתובה בקוד
אותם כלים לכל משתמש
כלי חדש הוא גרסה חדשה
אין מושג אמיתי של "איזה ארגון"
המודל מקבל את התשובה הגולמית
שכבת היכולות של קו
נבנה מחדש בכל תור מטבלת היכולות שלכם
רמת הזדהות וזכאות נבדקות בכל קריאה
כלי חדש הוא שורה שמתפרסמת, חיה מיד
כל קישור מוגבל לארגון, נאכף על ידי מסד הנתונים עצמו
התשובה ממופה, עוברת בתבנית ובשער — לפני שמישהו קורא אותה
קו בונה את ארגז הכלים. המודל תמיד רק בוחר מתוכו.
הלקוחמה מותר לו לראות
→
קובונה את ארגז הכלים
→
המודלבוחר רק מתוכו
שתי דרכים שבהן קו מחליט, משמעת אחת
שאלה צריכה או משהו שנמצא, או משהו שמוחלט. שתיהן עוברות דרך אותה משמעת של כישלון סגור.
מציאת תשובה: חיפוש היברידי, ואז הוכחה
מילון ייעודי לארגון מרחיב את אוצר המילים שלכם בין שפות עוד לפני שמשהו נבדק. חיפוש מילולי וחיפוש לפי משמעות רצים במקביל, מתמזגים לדירוג אחד בלי משקלים שמכוונים ידנית לכל שאלה; ובמקום שתפעילו זאת, מודל דירוג מחדש ייעודי מסדר מחדש — אף פעם לא מוסיף או מוריד — את התוצאה מול השאלה עצמה. ציון הביטחון נושא את הסיבה שלו: כיסוי נמוך מדי, שום דבר לא רלוונטי, או שום דבר לא פורסם בשפה הזו — ומתחת לסף קו אומר זאת ומציע נציג, במקום לנחש בנימוס. כל משפט שכן יוצא נבדק מול הקטעים שממנו הוא נשען, וכל ספרה בו חייבת להופיע בהם, תו בתו.
החלטת תשובה: מנוע חוקים מקומפל
חוק עונה על שאלה מוגדרת אחת בנקודת החלטה מוצהרת אחת — אף פעם לא טריגר. הוא נשמר כטבלה מוקלדת שהצוות שלכם עורך ישירות, לא כקוד, מקומפל לרוץ בזיכרון כשהעובדה הזולה נבדקת ראשונה. חוק מחזיר החלטה; הוא לעולם לא שולח שום דבר בעצמו.
לכל סירוב יש שם
זכאות חסרה, זהות שלא אומתה, מספר שהמודל ניסה לכתוב בעצמו, משפט שלא נשען על מה שאוחזר — כל אחד מהם שער נפרד ובעל שם, לא «משהו השתבש» אחד כללי. תנאי שאי אפשר להעריך לעולם לא מתקיים, ושום דבר בפלטפורמה לא נכשל פתוח.
מציאת תשובה: חיפוש היברידי, ואז הוכחה
החלטת תשובה: מנוע חוקים מקומפל
לכל סירוב יש שם
Kav.Knowledge · Kav.Rules
לא «חיפוש». שישה שלבים.
חיפוש וקטורי לבדו מפספס ניסוח מדויק; חיפוש מילולי לבדו מפספס משמעות. תשובה מבוססת דורשת את שניהם, ממוזגים, מדורגים מחדש ונבדקים — לא חיפוש בודד במאגר בודד.
01
הרחבת מונחים
מילון פנים־ארגוני מתרגם קיצורים, מונחים מקומיים ומילים נרדפות בין שפות זו לזו, כך ששאלה בניסוח אחד עדיין מוצאת קטע שנוסח אחרת.
02
חיפוש היברידי
שני חיפושים רצים במקביל: התאמת מילים מדויקת וחיפוש וקטורי מבוסס־משמעות. כל אחד תופס מה שהשני מפספס.
03
מיזוג דירוגים
Reciprocal Rank Fusion ממזג את שתי רשימות התוצאות לדירוג אחד, בלי לכוונן משקלים ידנית לכל סוג שאלה.
04
דירוג מחדש
מודל דירוג ייעודי קורא את השאלה מול כל קטע שאוחזר ומסדר אותם מחדש לפי רלוונטיות אמיתית, לא רק לפי ציון החיפוש.
05
סף ביטחון
אם אחרי כל זה הביטחון עדיין נמוך — קו לא עונה. הוא אומר שלא נמצא מקור אמין, ומציע העברה לנציג במקום ניחוש.
06
בדיקת ביסוס
התשובה שנוסחה נבדקת מול הקטעים שאכן אוחזרו. משפט שהמקור לא תומך בו — לא יוצא.
ושום דבר לא מגיע ללקוח בלי בדיקה: לכל מאמר ידע יש בעלים, גרסה ותאריך אימות אחרון — והוא עובר לסטטוס «דורש בדיקה» ברגע שהמקור שלו משתנה.
שבע שכבות, ולמה כל אחת קיימת
שום דבר כאן הוא לא מדיניות שמישהו צריך לזכור. כל שכבה נאכפת במנגנון — רובן על ידי בדיקת ארכיטקטורה שמפילה את הבנייה ברגע שהיא נכפפת.
בידוד במסד הנתונים — לכל טבלה השייכת לארגון יש עמודת שוכר, מסנן באפליקציה ומדיניות אבטחת שורות של Postgres. המסנן הוא נוחות; המדיניות היא האכיפה, והשירותים מתחברים כתפקיד שלא יכול לעקוף אותה.
חמש רמות הזדהות — אנונימי, מזוהה-ערוץ, מזוהה, הוכחת זכאות, חזק. כל יכולת מצהירה על הרצפה שלה; קישור יכול להעלות אותה, אף פעם לא להוריד.
שבע מחלקות רגישות — מציבורי ועד קטגוריה מיוחדת, בסדר קפדני, וכל אחת קובעת שמירה, חשיפה למודל, שמירת תמלול וייצוא בטבלה מקומפלת אחת. שדה שלא סווג נפתר למחמיר ביותר, לא לקל ביותר.
גבול גילוי אחד — מותקן לפי טיפוס על ידי הסכמה עצמה, כך ששדה שיתווסף בשנה הבאה מכוסה כברירת מחדל. פטור נכתב כפרוזה גלויה, לא כדילוג שקט.
הרשאות לפי פעולה — נקודתיות וממוקדות. טוקנים נושאים תפקידים והיקפים בלבד; מסך שאין לכם הרשאה אליו נסגר ומציין בדיוק מה היה נדרש.
כספת מפתחות לכל ארגון — כל סוד נחתם תחת מפתח משלו, עטוף במפתח־על שנשמר מחוץ למסד הנתונים, נגיש רק דרך ממשק שיודע לפתוח בלבד, לא לחשוף. משמורת המפתחות וכתיבת היכולות הן תפקידים נפרדים.
יומן ביקורת שאף אחד לא יכול לערוך — כל צפייה של איש צוות במידע אישי, וכל צפייה שנדחתה, היא רשומה עם מבצע ומטרה. היומן מסרב לעדכונים ולמחיקות, נאכף שוב במסד הנתונים עצמו.
מעל כל השבע: צוות ולקוחות הם שתי אוכלוסיות נפרדות, עם לקוחות, מדיניות ומאגרים נפרדים. מסך צוות לא יכול לאמת לקוח, ולקוח לא יכול להגיע למסך צוות.
נאכף במנגנון, לא בזיכרון
מעל שבע השכבות עומדים ארבעה כללים שגוברים על כל השאר בקוד הזה — אלה שכל החלטה אחרת כאן חוזרת אליהם.
שום דבר מעל שכבת היכולות לא נוגע במערכות שלכם ישירות.
זו כל ההתקנה של הווידג׳ט לאתר — מדביקים פעם אחת, לפני תג הסגירה של הדף, ולא נוגעים בה שוב.
התג לעולם לא משתנה — איזו גרסה רצה, באיזו שפה, באילו צבעים, באיזו פינה של המסך — הכול נקבע בצד השרת לפי מפתח הווידג׳ט, לא לפי משהו בדף שלכם.
אתם לא נוגעים שוב ב־HTML שלכם — שינוי מיתוג, מודול חדש, שפה חדשה — מתפרסמים מהסטודיו, מיידית. בלי פריסה מחדש ובלי פנייה למי שמחזיק את האתר.
מבודד מהאתר שלכם — הווידג׳ט רץ בתוך שורש Shadow סגור, כך שה־CSS של האתר שלכם לא שובר אותו והוא לא שובר את האתר — נבדק מול דף בדיקה עוין בכוונה, עם reset גלובלי ו־z-index בן תשע ספרות.