ai-agents-for-beginners

זיכרון לסוכני בינה מלאכותית

Agent Memory

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

בשיעור הזה נתבונן מהו זיכרון עבור סוכני בינה מלאכותית ואיך ניתן לנהל אותו ולהשתמש בו לטובת היישומים שלנו.

הקדמה

השיעור יכסה:

הבנת זיכרון לסוכני בינה מלאכותית: מהו זיכרון ומדוע הוא חשוב לסוכנים.

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

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

יישומים זמינים

בשיעור זה כלולים שני סדנאות מחברות נרחבות:

13-agent-memory.ipynb: מיישם זיכרון באמצעות Mem0 ו-Azure AI Search עם Microsoft Agent Framework

13-agent-memory-cognee.ipynb: מיישם זיכרון מובנה באמצעות Cognee, בונה אוטומטית גרף ידע מגובה בהטמעות, מציג את הגרף ומבצע שליפה חכמה

מטרות הלמידה

לאחר סיום השיעור, תדעו כיצד:

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

ליישם ולנהל זיכרון לטווח קצר ולטווח ארוך לסוכני בינה מלאכותית באמצעות Microsoft Agent Framework, תוך שימוש בכלים כמו Mem0, Cognee, זיכרון Whiteboard ואינטגרציה עם Azure AI Search.

להבין את העקרונות שמאחורי סוכני בינה מלאכותית שמשפרים את עצמם ואיך מערכות ניהול זיכרון חזקות תורמות ללמידה והתאמה מתמשכת.

הבנת זיכרון לסוכני בינה מלאכותית

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

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

מדוע זיכרון חשוב?

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

הרהוריים: לומדים מפעולות ותוצאות קודמות.

אינטראקטיביים: שומרים על הקשר במהלך שיחה מתמשכת.

פרואקטיביים ותגובתיים: צפייה בצרכים או תגובה הולמת בהתבסס על נתונים היסטוריים.

אוטונומיים: פועלים בצורה עצמאית יותר באמצעות סיוע בידע מאוחסן.

המטרה של יישום הזיכרון היא להפוך את הסוכנים ליותר אמינים ובעלי יכולת.

סוגי זיכרון

זיכרון עבודה

חשבו על זה כדף שרטוט שאותו הסוכן משתמש בזמן משימה או תהליך מחשבה בודד ומתמשך. הוא שומר מידע מיידי שדרוש כדי לחשב את השלב הבא.

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

דוגמה לזיכרון עבודה

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

זיכרון לטווח קצר

סוג זיכרון זה שומר מידע לאורך שיחה או סשן יחיד. זהו ההקשר של השיחה הנוכחית, ומאפשר לסוכן להתייחס לתורות קודמות בדיאלוג.

בדוגמות של ערכת הפיתוח של Microsoft Agent Framework בפייתון, זה מתייחס ל-AgentSession, שנוצר עם agent.create_session(). הסשן הוא זיכרון לטווח קצר המובנה במסגרת: הוא מחזיק את הקשר השיחה זמין כל עוד אותו סשן בשימוש, אך הקשר לא שורד כשנסיים את הסשן או כשהאפליקציה מופעלת מחדש. השתמשו בזיכרון לטווח ארוך לעובדות והעדפות שצריכות להישמר בין סשנים, בדרך כלל דרך בסיס נתונים, אינדקס וקטורי או אחסון מתמשך אחר.

דוגמה לזיכרון לטווח קצר

אם משתמש שואל, “כמה עולה טיסה לפריז?” ואחר כך ממשיך ב-“ומה לגבי לינה שם?”, זיכרון לטווח קצר מבטיח שהסוכן יודע ש”שם” מתייחס ל”פריז” באותה שיחה.

זיכרון לטווח ארוך

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

דוגמה לזיכרון לטווח ארוך

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

זיכרון פרסונה

סוג זיכרון מיוחד זה עוזר לסוכן לפתח “אישיות” או “פרסונה” עקבית. הוא מאפשר לסוכן לזכור פרטים על עצמו או תפקידו המיועד, מה שהופך את האינטראקציות לזורמות וממוקדות יותר.

דוגמה לזיכרון פרסונה
אם סוכן הטיולים מתוכנת להיות “מתכנן סקי מומחה”, זיכרון הפרסונה עלול לחזק תפקיד זה, ולהשפיע על תגובותיו להתאים לטון ולידע של מומחה.

זיכרון תהליך/אפיזודי

זיכרון זה שומר רצף שלבים שסוכן מבצע במשימה מורכבת, כולל הצלחות וכישלונות. זה כמו לזכור “פרקים” ספציפיים או חוויות עבר כדי ללמוד מהם.

דוגמה לזיכרון אפיזודי

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

זיכרון ישויות

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

דוגמה לזיכרון ישויות

משיחה על טיול עבר, הסוכן עשוי לחלץ את “פריז”, “מגדל אייפל” ו”ארוחת ערב במסעדת לה שאט נואר” כישויות. באינטראקציה עתידית, הסוכן יוכל להזכיר את “לה שאט נואר” ולהציע לבצע הזמנה חדשה שם.

RAG מובנה (Retrieval Augmented Generation)

בעוד RAG היא טכניקה רחבה, “RAG מובנה” מודגשת כטכנולוגיית זיכרון חזקה. היא מחלץ מידע צפוף ומובנה ממקורות מגוונים (שיחות, מיילים, תמונות) ומשתמשת בו לשפר דיוק, שליפה ומהירות בתגובות. בניגוד ל-RAG קלאסי שנשען רק על דמיון סמנטי, RAG מובנה עובד עם המבנה הטבוע של המידע.

דוגמה ל-RAG מובנה

במקום רק להתאים מילות מפתח, RAG מובנה יכול לפרסר פרטי טיסה (יעד, תאריך, שעה, חברת תעופה) מתוך מייל ולאחסן אותם באופן מובנה. זה מאפשר שאילתות מדויקות כמו “איזו טיסה הזמנתי לפריז ביום שלישי?”

יישום ואחסון זיכרון

יישום זיכרון לסוכני בינה מלאכותית כרוך בתהליך שיטתי של ניהול זיכרון, הכולל יצירה, אחסון, שליפה, אינטגרציה, עדכון ואפילו “שכחה” (או מחיקה) של מידע. השליפה היא נקודה קריטית במיוחד.

כלים מיוחדים לזיכרון

Mem0

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

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

Cognee

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

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

מדריך המחברת של Cognee (13-agent-memory-cognee.ipynb) מדגים בנייה של שכבת זיכרון מאוחדת זו, עם דוגמאות מעשיות לטעינת מקורות מידע שונים, ויזואליזציה של גרף הידע, ושאילתות עם אסטרטגיות חיפוש מותאמות לצרכים ספציפיים של סוכנים.

אחסון זיכרון עם RAG

מעבר לכלים ממוקדים כמו Mem0, ניתן לנצל שירותי חיפוש חזקים כמו Azure AI Search כגב אחסון ושליפת זיכרונות, במיוחד עבור RAG מובנה.

זה מאפשר לכם לספק תגובות סוכן המבוססות על המידע שלכם, ומבטיח תשובות רלוונטיות ומדויקות יותר. Azure AI Search יכול לשמש לאחסון זיכרונות טיולים ספציפיים למשתמש, קטלוגי מוצרים או כל ידע תחומי אחר.

Azure AI Search תומך ביכולות כמו RAG מובנה, המתמחה בחילוץ ושליפה של מידע צפוף ומובנה ממאגרי נתונים גדולים כמו היסטוריית שיחות, מיילים ואפילו תמונות. זה מספק “דיוק ושליפה ברמה על-אנושית” בהשוואה לשיטות קלאסיות של חלוקת טקסט והטמעות.

הפיכת סוכני בינה מלאכותית למשפרי עצמם

תבנית נפוצה לסוכנים שמשפרים את עצמם כוללת יצירת “סוכן ידע”. סוכן נפרד זה מתבונן בשיחה הראשית בין המשתמש לסוכן הראשי. תפקידו הוא:

  1. לאתר מידע חשוב: לקבוע אם חלק מהשיחה ראוי לשמירה כידע כללי או כהעדפת משתמש ספציפית.

  2. לחלץ ולסכם: לזקק את הלמידה או ההעדפה העיקרית מהשיחה.

  3. לאחסן בבסיס ידע: לשמר את המידע החלץ, לעיתים במסד נתונים וקטורי, כדי שניתן יהיה לשלוף אותו מאוחר יותר.

  4. להעשיר שאילתות עתידיות: כשמשתמש מפעיל שאילתה חדשה, סוכן הידע שולף מידע רלוונטי מהמאגר ומוסיף אותו לפרומפט של המשתמש, ומספק הקשר חשוב לסוכן הראשי (בדומה ל-RAG).

אופטימיזציות לזיכרון

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

תחזוקת בסיס הידע: עבור בסיס ידע שגדל, מידע שלא נעשה בו שימוש תדיר יכול להיות מוזז ל”אחסון קר” כדי לנהל עלויות.

שאלות נוספות לגבי זיכרון סוכן?

הצטרפו ל-Microsoft Foundry Discord לפגוש לומדים אחרים, להשתתף בשעות קבלת קהל ולקבל מענה על שאלותיכם בנוגע לסוכני בינה מלאכותית.


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