זיכרון בסוכני AI
בלי זיכרון, סוכן שוכח הכל בכל שיחה. עם זיכרון נכון, הוא זוכר העדפות, למד מאינטראקציות קודמות, ומרגיש אישי. כך בונים אותו.
למה סוכן צריך זיכרון
מודל שפה הוא חסר מצב (stateless) — הוא לא זוכר כלום בין קריאות. כל מה ש"זוכר" נמצא בחלון ההקשר של אותה קריאה. זה בעיה: בוט תמיכה שלא זוכר מה אמרת לפני 3 הודעות, או עוזר אישי ששוכח את שמך בכל פעם — לא שימושיים.
זיכרון בסוכן הוא המנגנון שמאפשר לו לשמור ולשלוף מידע לאורך זמן — בתוך שיחה ובין שיחות — כדי לתת חוויה רציפה ואישית.
"זיכרון" של סוכן אינו קסם — הוא ניהול חכם של מה נכנס להקשר: מה לשמור, איך, ומה לשלוף בכל רגע. זה ענף של Context Engineering.
סוגי זיכרון
נהוג להבחין בין כמה סוגים, בהשראת זיכרון אנושי:
- Working / קצר-טווח: ההקשר הנוכחי — היסטוריית השיחה הפעילה. חי בחלון ההקשר.
- Episodic / אפיזודי: "מה קרה" באינטראקציות קודמות — שיחות עבר, פעולות שבוצעו.
- Semantic / סמנטי: עובדות והעדפות יציבות על המשתמש/העולם ("הלקוח מעדיף אימייל", "החברה בתחום הפיננסים").
- Procedural / פרוצדורלי: "איך לעשות" — נהלים ודפוסים שהסוכן למד.
בפועל מממשים בעיקר שניים: קצר-טווח (ההקשר) וארוך-טווח (מאגר חיצוני שנשלף לפי צורך).
זיכרון קצר-טווח — ניהול השיחה
זהו ההקשר הפעיל. האתגר: שיחה ארוכה תופחת ומתנגשת בגבול חלון ההקשר (וב-context rot). אסטרטגיות:
- חלון מתגלגל: שמור רק את N ההודעות האחרונות בשלמותן.
- סיכום מתגלגל: סכם את ההודעות הישנות לפסקה, ושמור מלאות רק את האחרונות. שומר הקשר בלי לנפח.
- חילוץ עובדות: בזמן השיחה, חלץ עובדות חשובות ("שם: דנה", "בעיה: חיוב כפול") ושמור בנפרד — הן עוברות גם לזיכרון ארוך-טווח.
זיכרון ארוך-טווח — מאגר חיצוני
מידע שצריך להישמר בין שיחות (העדפות, היסטוריה, עובדות) נשמר מחוץ להקשר — לרוב ב-Vector DB או DB רגיל — ונשלף רק כשרלוונטי. זה בדיוק כמו RAG, אבל על זיכרון המשתמש:
- כתיבה: אחרי אינטראקציה, שמור עובדות/סיכום כembeddings במאגר, עם מזהה משתמש.
- שליפה: בתחילת שיחה חדשה, שלוף את הזיכרונות הרלוונטיים ביותר לשאלה הנוכחית והכנס להקשר.
- עדכון: אם עובדה השתנתה ("עברתי לחברה אחרת") — עדכן/החלף, אל תערום סתירות.
הכלל: אל תשלוף את כל הזיכרון לכל קריאה — רק את הרלוונטי. אחרת ההקשר מתנפח וההתנהגות נפגעת.
זיכרון קצר-טווח = ניהול השיחה בהקשר (חלון/סיכום). זיכרון ארוך-טווח = מאגר חיצוני שנשלף סלקטיבית כמו RAG. שניהם עוסקים במה נכנס להקשר.
טעויות נפוצות
- לשלוף הכל. הזרמת כל היסטוריית המשתמש להקשר מנפחת אותו ופוגעת באיכות. שלוף רלוונטי בלבד.
- זיכרון סותר. לשמור עובדות ישנות וחדשות בלי לעדכן → הסוכן מתבלבל. נהל עדכונים.
- לשמור רעש. לא כל הודעה שווה זיכרון. חלץ את המשמעותי בלבד.
- פרטיות. זיכרון על משתמשים = מידע אישי. אבטח, הצפן, ואפשר מחיקה (GDPR/חוק הגנת הפרטיות).
- בלי הפרדת משתמשים. זיכרון של משתמש אחד שדולף לאחר — כשל חמור. סנן תמיד לפי מזהה.
הצעד הבא
זיכרון הוא חלק מבניית סוכנים ומניהול הקשר. העמק בשניהם.