כשמדברים על היתרונות הייחודיים של יצירת סוכני בינה מלאכותית, דנים בעיקר בשני דברים: היכולת לקרוא לכלים לביצוע משימות והיכולת להשתפר עם הזמן. הזיכרון הוא בסיס ליצירת סוכן שמשתפר בעצמו ויכול ליצור חוויות טובות יותר עבור המשתמשים שלנו.
במַשָּׁך השיעור הזה, נבחן מהו זיכרון עבור סוכני בינה מלאכותית ואיך נוכל לנהל ולמנף אותו לטובת היישומים שלנו.
בשיעור זה נסקור:
• הבנת זיכרון סוכני בינה מלאכותית: מהו זיכרון ולמה הוא חיוני לסוכנים.
• מימוש ואחסון זיכרון: שיטות מעשיות להוספת יכולות זיכרון לסוכני הבינה המלאכותית שלכם, תוך התמקדות בזיכרון קצר טווח וארוך טווח.
• הפיכת סוכני הבינה למשתפרים בעצמם: כיצד הזיכרון מאפשר לסוכנים ללמוד מאינטראקציות עבר ולשפר את עצמם עם הזמן.
בשיעור זה יש שני מדריכי פנקס מקיפים:
• 13-agent-memory.ipynb: מיישם זיכרון באמצעות Mem0 וחיפוש Azure AI עם Microsoft Agent Framework
• 13-agent-memory-cognee.ipynb: מיישם זיכרון מובנה באמצעות Cognee, בונה אוטומטית גרף ידע הנתמך על ידי אמבדינגס, מציג את הגרף ומאפשר שליפה אינטיליגנטית
לאחר סיום שיעור זה, תדעו כיצד:
• להבחין בין סוגים שונים של זיכרון סוכן בינה מלאכותית, כולל זיכרון עבודה, קצר טווח וארוך טווח, וכן צורות מתמחות כמו זיכרון אישיות וזיכרון אפיזודי.
• לממש ולנהל זיכרון קצר טווח וארוך טווח לסוכני בינה מלאכותית באמצעות Microsoft Agent Framework, תוך ניצול כלים כמו Mem0, Cognee, זיכרון Whiteboard ושילוב עם Azure AI Search.
• להבין את העקרונות מאחורי סוכני בינה מלאכותית שמשתפרים בעצמם ואיך מערכות ניהול זיכרון איתנות תורמות ללמידה והתאמה מתמשכת.
בליבה, זיכרון לסוכני בינה מלאכותית מתייחס למנגנונים שמאפשרים להם לשמור ולשלוף מידע. מידע זה יכול להיות פרטים ספציפיים בנושא שיחה, העדפות משתמש, פעולות עבר, או אפילו תבניות נלמדות.
בלי זיכרון, יישומי בינה מלאכותית הם לעיתים ללא מצב (stateless), כלומר כל אינטראקציה מתחילה מהתחלה. זה מוביל לחוויית משתמש חוזרת ומעצבנת שבה הסוכן “שוכח” הקשר או העדפות קודמות.
האינטיליגנציה של סוכן קשורה עמוקות ביכולתו לשלוף ולנצל מידע עבר. הזיכרון מאפשר לסוכנים להיות:
• הרהרניים: לומדים מפעולות ותוצאות קודמות.
• אינטראקטיביים: שומרים על הקשר במהלך שיחה מתמשכת.
• פרואקטיביים ותגובותיים: מצפים לצרכים או מגיבים בהתאם לנתונים היסטוריים.
• אוטונומיים: פועלים באופן עצמאי יותר בהתבסס על ידע מאוחסן.
המטרה במימוש הזיכרון היא להפוך את הסוכנים ליותר אמינים ובעלי יכולת.
חשבו על זה כחצי דף של פתקים ששומר הסוכן בזמן משימה או תהליך חשיבה בודד ומתמשך. הוא מחזיק מידע מיידי הדרוש לחישוב הצעד הבא.
לסוכני בינה מלאכותית, זיכרון עבודה לרוב מקליט את המידע הרלוונטי ביותר משיחה, גם אם היסטוריית הצ’אט מלאה או מקוצרת. הוא מתמקד בשליפת מרכיבים מרכזיים כמו דרישות, הצעות, החלטות ופעולות.
דוגמה לזיכרון עבודה
בסוכן הזמנת טיולים, זיכרון עבודה עלול לתפוס את הבקשה הנוכחית של המשתמש, למשל “אני רוצה להזמין טיול לפריז”. דרישה ספציפית זו מוחזקת בקונטקסט המיידי של הסוכן כדי להנחות את האינטראקציה הנוכחית.
סוג זה של זיכרון שומר מידע לאורך שיחה או סשן בודד. זהו ההקשר של הצ’אט הנוכחי, שמאפשר לסוכן להפנות חזרה לסיבובים קודמים בדיאלוג.
דוגמה לזיכרון קצר טווח
אם משתמש שואל, “כמה עולה טיסה לפריז?” ואז ממשיך ב”ומה לגבי מקום לינה שם?”, הזיכרון הקצר טווח מבטיח שהסוכן מבין ש”שם” מתייחס ל”פריז” באותה שיחה.
זה מידע שנשמר לאורך שיחות או סשנים מרובים. הוא מאפשר לסוכנים לזכור העדפות משתמש, אינטראקציות היסטוריות או ידע כללי על פני תקופות ארוכות. זה חשוב להתאמה אישית.
דוגמה לזיכרון ארוך טווח
זיכרון ארוך טווח עלול לשמור ש”בן נהנה מסקי ופעילויות חוץ, אוהב קפה עם נוף להר ורוצה להימנע ממסלולי סקי מתקדמים בגלל פציעה בעבר”. מידע זה, שנלמד מאינטראקציות קודמות, משפיע על המלצות במהלך תכנוני טיולים עתידיים, מה שהופך אותם לאישיים במיוחד.
סוג זיכרון מיוחד זה עוזר לסוכן לפתח “אישיות” או “פרסונה” עקבית. הוא מאפשר לסוכן לזכור פרטים על עצמו או על תפקידו המיועד, מה שהופך את האינטראקציות לזורמות וממוקדות יותר.
דוגמה לזיכרון אישיות
אם סוכן התיירות מתוכנן להיות “מומחה תכנון סקי”, זיכרון האישיות עשוי לחזק את התפקיד הזה, ולהשפיע על תגובותיו להתאים לטון וידע של מומחה.
זיכרון זה שומר את רצף הצעדים שהסוכן נוקט במהלך משימה מורכבת, כולל הצלחות וכישלונות. זה כאילו לזכור “אפיזודות” ספציפיות או חוויות עבר כדי ללמוד מהן.
דוגמה לזיכרון אפיזודי
אם הסוכן ניסה להזמין טיסה מסוימת אך נכשל בגלל זמינות, הזיכרון האפיזודי יכול לרשום את הכישלון הזה, ולתת לסוכן לנסות טיסות חלופיות או ליידע את המשתמש על הבעיה בצורה מושכלת בניסיון הבא.
זה כולל חילוץ וזכירת ישויות ספציפיות (כמו אנשים, מקומות או דברים) ואירועים משיחות. זה מאפשר לסוכן לבנות הבנה מובנית של מרכיבים מרכזיים שהוזכרו.
דוגמה לזיכרון ישויות
משיחה על טיול עבר, הסוכן עלול לחלץ “פריז”, “מגדל אייפל” ו”ארוחת ערב במסעדת לה שא נואר” כישויות. באינטראקציה עתידית, הסוכן יכול לזכור את “לה שא נואר” ולהציע לבצע הזמנה חדשה שם.
בעוד ש-RAG הוא טכניקה רחבה יותר, “Structured RAG” מודגשת כטכנולוגיית זיכרון עוצמתית. היא מחלצת מידע צפוף ומובנה ממקורות שונים (שיחות, אימיילים, תמונות) ומשתמשת בו לשיפור הדיוק, השליפה והמהירות בתגובות. בניגוד ל-RAG קלאסי המתבסס רק על דמיון סמנטי, Structured RAG עובדת עם המבנה הטבעי של המידע.
דוגמה ל-Structured RAG
במקום רק להתאים מילות מפתח, Structured RAG יכולה לפרסר פרטי טיסה (יעד, תאריך, שעה, חברת תעופה) מאימייל ולאחסן אותם בצורה מובנית. זה מאפשר שאילתות מדויקות כמו “איזו טיסה הזמנתי לפריז ביום שלישי?”
מימוש זיכרון לסוכני בינה מלאכותית כולל תהליך שיטתי של ניהול זיכרון, הכולל יצירה, אחסון, שליפה, אינטגרציה, עדכון ואפילו “שכחה” (או מחיקה) של מידע. השליפה היא שלב קריטי במיוחד.
דרך לאחסן ולנהל זיכרון סוכן היא שימוש בכלים מיוחדים כמו Mem0. Mem0 פועלת כשכבת זיכרון מתמשכת, שמאפשרת לסוכנים לשלוף אינטראקציות רלוונטיות, לאחסן העדפות משתמשים והקשרים עובדתיים, וללמוד מהצלחות וכישלונות לאורך זמן. הרעיון הוא שסוכנים ללא מצב יהפכו לסוכנים עם מצב.
המערכת עובדת דרך צינור דו-שלבי לזיכרון: חילוץ ועדכון. תחילה, הודעות שנוספות לנושא הסוכן נשלחות לשירות Mem0, שמפעיל מודל שפה גדול (LLM) לסיכום היסטוריית שיחה וחילוץ זיכרונות חדשים. לאחר מכן, שלב עדכון שמונע על ידי LLM קובע אם להוסיף, לשנות או למחוק זיכרונות אלה, תוך אחסונם במאגר נתונים היברידי שיכול לכלול מסדי נתונים וקטוריים, גרפים ומפתח-ערך. המערכת תומכת גם בסוגי זיכרון שונים ויכולה לשלב זיכרון גרפי לניהול מערכות יחסים בין ישויות.
גישה עוצמתית נוספת היא שימוש ב-Cognee, זיכרון סמנטי בקוד פתוח לסוכני בינה מלאכותית שהופך נתונים מובנים ולא מובנים לגרפי ידע הניתנים לשאילתות, הנתמכים על ידי אמבדינגס. Cognee מספק ארכיטקטורת דו-חנות שמשלבת חיפוש דמיון וקטורי עם יחסי גרף, המאפשרת לסוכנים להבין לא רק מה מידע דומה, אלא איך מושגים קשורים זה לזה.
המערכת מצטיינת בשליפה היברידית שמערבבת דמיון וקטורי, מבנה גרפי, והסקה של LLM - מחיפוש גושי מידע גולמיים ועד מענה על שאלות בהכרה של גרף. המערכת מתחזקת זיכרון חי שמתפתח וצומח תוך כדי נשאר זמין לשאילתות כגרף מחובר אחד, ותומכת גם בקונטקסט סשן קצר טווח וגם בזיכרון מתמשך ארוך טווח.
מדריך הפנקס של Cognee (13-agent-memory-cognee.ipynb) מדגים בניית שכבת זיכרון מאוחדת זו, עם דוגמאות מעשיות של טעינת מקורות נתונים מגוונים, הצגת גרף הידע, ושאילת שאלות עם אסטרטגיות חיפוש שונות המותאמות לצרכי סוכן ספציפי.
מעבר לכלים מיוחדים כמו mem0, ניתן לנצל שירותי חיפוש חזקים כמו Azure AI Search כגב אחורי לאחסון ושליפת זיכרונות, במיוחד עבור Structured RAG.
זה מאפשר להטמיע את תגובות הסוכן עם הנתונים שלכם, ולהבטיח תשובות רלוונטיות ומדויקות יותר. Azure AI Search יכול לשמש לאחסון זיכרונות טיולים של משתמשים, קטלוגי מוצרים, או כל ידע ממוקד תחום אחר.
Azure AI Search תומך ביכולות כמו Structured RAG, שמצטיינת בחילוץ ושליפת מידע צפוף ומובנה ממאגרי נתונים גדולים כמו היסטוריית שיחות, אימיילים או אפילו תמונות. זה מספק “דיוק ושליפה על-אנושיים” בהשוואה לשיטות טקסט רגילות של חיתוך ואמבדינג.
תבנית נפוצה לסוכנים שמשתפרים בעצמם כוללת הכנסת “סוכן ידע”. סוכן נפרד זה מתבונן בשיחה העיקרית בין המשתמש לסוכן הראשי. תפקידו הוא:
לזהות מידע בעל ערך: לקבוע אם יש חלק בשיחה שראוי לשמירה כידע כללי או כהעדפת משתמש ספציפית.
לחלץ ולסכם: לזקק את הלמידה או ההעדפה החשובה מהשיחה.
לאחסן בבסיס ידע: לשמר מידע זה, לעיתים במסד נתונים וקטורי, כדי לאפשר שליפה מאוחרת.
להעשיר שאילתות עתידיות: כאשר המשתמש מתחיל שאילתה חדשה, סוכן הידע שולף מידע רלוונטי ומצרף אותו לפרומפט של המשתמש, מספק הקשר חיוני לסוכן הראשי (בהתאם לעקרון RAG).
• ניהול השהייה (Latency): כדי למנוע האטת אינטראקציות משתמש, ניתן להשתמש במודל זול ומהיר בתחילה כדי לבדוק במהירות אם מידע שווה לשמירה או לשליפה, ורק במקרה הצורך להפעיל תהליך חילוץ/שליפה מורכב יותר.
• תחזוקת בסיס ידע: עבור בסיס ידע שגדל, מידע פחות בשימוש ניתן להעביר לאחסון “קר” כדי לנהל עלויות.
הצטרפו ל-Microsoft Foundry Discord לפגוש לומדים אחרים, להשתתף בשעות קבלה ולקבל מענה לשאלות שלכם על סוכני בינה מלאכותית.
כתב ויתור: מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש להביא בחשבון כי תרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. המסמך המקורי בשפת המקור שלו ייחשב כמקור הסמכותי. למידע קריטי מומלץ להיעזר בתרגום מקצועי על ידי אדם. אנו לא נושאים באחריות לכל אי-הבנות או פרשנויות שגויות הנובעות משימוש בתרגום זה.