הזיכרון של פלטפורמת הסוכנים מאפשר ליצור באופן דינמי זיכרונות לטווח ארוך על סמך שיחות בין המשתמש לבין הסוכן. הזיכרונות האלה הם מידע מותאם אישית שנשמר בכמה סשנים, ומאפשר לסוכן להסתגל ולתת תשובות מותאמות אישית בהתאם להקשר ולהמשכיות.
תכונות
התכונה 'מאגר זיכרון' עוזרת לכם לנהל את הזיכרונות, כדי שתוכלו להתאים אישית את האינטראקציה של הסוכן עם המשתמשים ולנהל את חלון ההקשר. לכל היקף, Memory Bank שומר אוסף מבודד של זיכרונות. כל זיכרון הוא פיסת מידע עצמאית ושלמה, שאפשר להשתמש בה כדי להרחיב את ההקשר שזמין לסוכן. לדוגמה:
{
"name": "projects/.../locations/.../reasoningEngines/.../memories/...",
"scope": {
"agent_name": "My agent",
"user": "my user ID"
},
"fact": "I use Memory Bank to manage my memories."
}
מאגר הזיכרון כולל את התכונות הבאות:
תהליך יצירת זיכרון: יצירה, שיפור וניהול של זיכרונות באמצעות מודל שפה גדול (LLM).
חילוץ מהזיכרון: חילוץ רק של המידע הכי משמעותי מנתוני המקור כדי לשמור אותו כזיכרונות.
איחוד זיכרונות: איחוד מידע חדש שחולץ עם זיכרונות קיימים, כדי שהזיכרונות יתפתחו ככל שמידע חדש ייקלט. אפשר גם לאחד זיכרונות שחולצו מראש(כמו מידע שהסוכן או מומחה אנושי שמשתתף בתהליך חילוץ המידע רואים כמשמעותי) עם זיכרונות קיימים.
יצירה אסינכרונית: יצירת זיכרונות ברקע, כך שהסוכן לא צריך לחכות עד שתהליך יצירת הזיכרון יושלם.
הטמעת אירועים רציפה: הזרמה וניהול של אירועים בשיחות באמצעות הטמעת אירועים, שמפעילה באופן אוטומטי תהליך יצירת זיכרון על סמך כללי אצווה שאתם מגדירים.
שליפה שניתנת להתאמה אישית: אתם יכולים להגדיר איזה מידע ייחשב משמעותי ב-Memory Bank על ידי ציון נושאים ספציפיים ומתן דוגמאות בשיטת few-shot.
הבנה מולטי-מודאלית: עיבוד מידע מולטי-מודאלי כדי ליצור תובנות טקסטואליות ולשמור אותן.
אחסון ושליפה מנוהלים: נהנים מחנות זיכרון נגישה, מתמשכת ומנוהלת באופן מלא.
בידוד נתונים בין זהויות: איחוד הזיכרון ואחזור הנתונים מבודדים לזהות ספציפית.
אחסון קבוע ונגיש: אחסון של זיכרונות שאפשר לגשת אליהם מכמה סביבות, כולל Agent Runtime, הסביבה המקומית שלכם או אפשרויות פריסה אחרות.
חיפוש לפי דמיון: אחזור זיכרונות באמצעות חיפוש לפי דמיון שממוקד בזהות ספציפית.
תפוגה אוטומטית: הגדרת אורך חיים (TTL) לזיכרונות כדי להבטיח שמחיקת מידע לא עדכני תתבצע באופן אוטומטי. מגדירים את המכונה של Memory Bank כך שערך TTL יוחל באופן אוטומטי על זיכרונות שנוספו או נוצרו.
עדכוני זיכרון: יצירה ותחזוקה אוטומטיות של עדכוני זיכרון, שמאפשרים לבדוק איך הזיכרונות משתנים כשמידע חדש מוזן.
הרשאות מגבילות: אפשר להשתמש בתנאים של IAM כדי להגביל את חשבונות המשתמשים שיכולים לקרוא או לכתוב זיכרונות בהיקפים ספציפיים.
שילוב סוכן: אפשר לקשר את Memory Bank לסוכן, כדי שהוא יוכל לתזמן שיחות ליצירה ולאחזור של זיכרונות.
שילוב של ערכת כלים לפיתוח סוכנים (ADK): אפשר לתזמר קריאות מסוכן מבוסס-ADK באמצעות כלים מובנים של ADK ו-
VertexAiMemoryBankServiceכדי לקרוא מ-Memory Bank ולכתוב בו.מסגרות אחרות: עוטפים את הקוד של Memory Bank בכלים וקריאות חוזרות (callbacks) כדי לתזמן את יצירת הזיכרון ואחזור הנתונים.
תרחישים לדוגמה
אתם יכולים להשתמש ב-Memory Bank כדי להפוך אינטראקציות של סוכנים בלי שמירת מצב לאינטראקציות עם שמירת מצב והקשר, שבהן הסוכן זוכר, לומד ומסתגל לאורך זמן. השימוש ב-Memory Bank מתאים במיוחד לאפליקציות שנדרש בהן:
התאמה אישית לטווח ארוך: יצירת חוויות שמותאמות למשתמשים ספציפיים. התכונה Memory Bank מגדירה את הזיכרונות בהתאם לזהות ספציפית, וכך הסוכן יכול לזכור את ההעדפות, ההיסטוריה והפרטים החשובים של המשתמש בכמה סשנים.
- דוגמה: נציג שירות לקוחות שזוכר מידע חשוב מכרטיסי תמיכה קודמים של משתמש והעדפות מוצר, בלי לשאול שוב.
שליפת ידע מבוססת-LLM: משתמשים באפשרות הזו כשצריך לזהות ולשמור באופן אוטומטי את המידע הכי חשוב משיחות או מתוכן מולטימודאלי, בלי התערבות ידנית.
- דוגמה: סוכן מחקר שקורא סדרה של מאמרים טכניים ויוצר זיכרון מאוחד של הממצאים, המתודולוגיות והמסקנות העיקריים.
הקשר דינמי ומתפתח: כדאי להשתמש ב-Memory Bank כשצריך מקור מידע שלא סטטי. מאגר הזיכרונות נועד לשלב באופן רציף מידע חדש מהסוכן, ולעדכן את הזיכרונות המאוחסנים כשיש נתונים חדשים. כך אפשר לוודא שההקשר שהסוכן מסתמך עליו תמיד עדכני ומדויק. לעומת זאת, ל-RAG יש מאגר ידע חיצוני וסטטי, אבל Memory Bank יכול להתפתח על סמך ההקשר שמספק הסוכן.
דוגמה לשימוש

אתם יכולים להשתמש ב-Memory Bank עם סשנים של Agent Platform כדי ליצור זיכרונות מסשנים מאוחסנים בתהליך הבא:
(סשנים)
CreateSession: בתחילת כל שיחה, יוצרים סשן חדש. היסטוריית השיחות שבה נעשה שימוש על ידי הסוכן מוגבלת לסשן הזה. סשן מכיל את הרצף הכרונולוגי של ההודעות והפעולות (SessionEvents) באינטראקציה בין משתמש לבין הסוכן שלכם. לכל הסשנים חייב להיות מזהה משתמש. הזיכרונות שחולצו (ראוGenerateMemories) בסשן הזה ממופים למשתמש הזה.(Sessions)
AppendEvent: כשהמשתמש מקיים אינטראקציה עם הסוכן, אירועים (כמו הודעות משתמש, תגובות של הסוכן, פעולות של כלי) מועלים אל Sessions. האירועים שומרים את היסטוריית השיחות ויוצרים תיעוד של השיחה שאפשר להשתמש בו כדי ליצור זכרונות.(סשנים)
ListEvents: כשהמשתמש מקיים אינטראקציה עם הסוכן, הסוכן מאחזר את היסטוריית השיחות.(Memory Bank) ליצור או ליצור זיכרונות:
GenerateMemories: במרווח זמן מוגדר (למשל בסוף כל סשן או בסוף כל תור), הסוכן יכול להפעיל יצירה של זיכרונות באמצעות היסטוריית השיחות. עובדות על המשתמש נשלפות באופן אוטומטי מהיסטוריית השיחות, כדי שיהיו זמינות לשיחות הנוכחיות או לשיחות עתידיות.
CreateMemory: הסוכן יכול לכתוב זיכרונות ישירות ב-Memory Bank. לדוגמה, הסוכן יכול להחליט מתי לכתוב זיכרון ואיזה מידע לשמור (זיכרון ככלי). כדאי להשתמש ב-CreateMemoryכשרוצים שהסוכן ישלוט יותר בעובדות שהוא מחלץ.
(Memory Bank)
RetrieveMemories: כשהמשתמש מקיים אינטראקציה עם הסוכן, הסוכן יכול לאחזר זיכרונות שנשמרו לגבי המשתמש. אפשר לאחזר את כל הזיכרונות (אחזור פשוט) או רק את הזיכרונות שהכי רלוונטיים לשיחה הנוכחית (אחזור באמצעות חיפוש דמיון). אחר כך תוכלו להוסיף את הזיכרונות שנשלפו להנחיה.
מדריכים למתחילים
כדי להתחיל להשתמש ב-Memory Bank, תוכלו להיעזר במדריכים הבאים למתחילים:
מדריך למתחילים לשימוש ב-API בארכיטקטורת REST: במדריך למתחילים לשימוש ב-API בארכיטקטורת REST מוסבר איך לבצע קריאות ל-API ישירות ל-Sessions ול-Memory Bank.
מדריך למתחילים לשימוש בערכה לפיתוח סוכנים (ADK): אם רוצים שהסוכן שלכם ב-ADK יתזמן את השיחות עם Sessions ו-Memory Bank, צריך לפעול לפי המדריך למתחילים לשימוש בערכה לפיתוח סוכנים (ADK).
סיכוני אבטחה של החדרת פרומפטים
בנוסף לאחריות האבטחה שמפורטת במאמר בנושא אחריות משותפת בפלטפורמת הסוכנים, כדאי לקחת בחשבון את הסיכון להחדרת הנחיות והרעלת זיכרון שעלולים להשפיע על הסוכן שלכם כשמשתמשים בזיכרונות לטווח ארוך. הרעלת זיכרון מתרחשת כשמידע שגוי מאוחסן בזיכרון. לאחר מכן, יכול להיות שהסוכן יפעל על סמך המידע השקרי או הזדוני הזה בשיחות עתידיות.
כדי לצמצם את הסיכון להרעלת זיכרון, אפשר לבצע את הפעולות הבאות:
הגנה מוגברת על המודל: אפשר להשתמש ב-הגנה מוגברת על המודל כדי לבדוק את הפרומפטים שנשלחים ל-Memory Bank או מהסוכן שלכם.
בדיקות יריבות: בדיקה יזומה של אפליקציית ה-LLM שלכם כדי לזהות נקודות חולשה שמאפשרות הזרקת הנחיות, באמצעות סימול של מתקפות. התהליך הזה נקרא בדרך כלל 'צוות אדום'.
הרצה בארגז חול: אם לסוכן יש יכולת להריץ מערכות חיצוניות או קריטיות או ליצור איתן אינטראקציה, הפעולות האלה צריכות להתבצע בסביבת ארגז חול עם בקרת גישה מחמירה ובדיקה אנושית.
מידע נוסף זמין במאמר הגישה של Google לסוכני AI מאובטחים.
המאמרים הבאים
מדריך למתחילים לשימוש ב-Memory Bank API
כדי לנהל זיכרונות לטווח ארוך, אפשר להתחיל להשתמש ב-Memory Bank API.
מדריך למתחילים בנושא ערכה לפיתוח סוכנים (ADK)
איך מתחילים לעבוד עם הערכה לפיתוח סוכנים (ADK).