Agent Platform Memory Bank

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

תכונות

בעזרת Memory Bank אתם יכולים לנהל את הזיכרונות, להתאים אישית את האינטראקציה של הנציג עם המשתמשים ולנהל את חלון ההקשר. לכל היקף, 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."
}

‫Memory Bank כולל את התכונות הבאות:

  • תהליך יצירת זיכרון: יצירה, שיפור וניהול של זיכרונות באמצעות מודל שפה גדול (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 כשאתם צריכים מקור מידע לא סטטי. ‫Memory Bank נועד לשלב באופן רציף מידע חדש מהנציג, ולשפר ולעדכן את הזיכרונות השמורים ככל שנתונים חדשים הופכים לזמינים. כך אפשר לוודא שההקשר שה-Agent מסתמך עליו תמיד עדכני ומדויק. בניגוד ל-RAG, שכולל מאגר ידע חיצוני סטטי, Memory Bank יכול להתפתח על סמך ההקשר שהסוכן מספק.

דוגמה לשימוש

סקירה כללית על Memory Bank ב-Agent Platform

כדי ליצור זיכרונות מסשנים ששמורים ב-Memory Bank, אתם יכולים להשתמש בסשנים של Agent Platform בתהליך הבא:

  1. (סשנים) CreateSession: בתחילת כל שיחה, יוצרים סשן חדש. היסטוריית השיחות שבה משתמש הנציג מוגבלת לסשן הזה. סשן מכיל את הרצף הכרונולוגי של ההודעות והפעולות (SessionEvents) באינטראקציה בין המשתמש לנציג. לכל הסשנים חייב להיות מזהה משתמש. הזיכרונות שחולצו (ראו GenerateMemories) מהסשן הזה ממופים למשתמש הזה.

  2. ‫(סשנים) AppendEvent: כשהמשתמש יוצר אינטראקציה עם הנציג, אירועים (כמו הודעות של המשתמש, תשובות של הנציג, פעולות של כלים) מועלים לסשנים. האירועים שומרים את היסטוריית השיחות ויוצרים תיעוד של השיחה, שבעזרתו אפשר ליצור זיכרונות.

  3. ‫(סשנים) ListEvents: כשהמשתמש יוצר אינטראקציה עם הנציג, הנציג מאחזר את היסטוריית השיחות.

  4. (Memory Bank) יצירת זיכרונות:

    • ‫GenerateMemories: במרווחי זמן מוגדרים (למשל, בסוף כל סשן או בסוף כל תור), הנציג יכול להפעיל יצירת זיכרונות באמצעות היסטוריית השיחות. עובדות על המשתמש נשלפות באופן אוטומטי מהיסטוריית השיחות, כדי שיהיו זמינות לסשנים הנוכחיים או העתידיים.

    • ‫CreateMemory: הסוכן יכול לכתוב זיכרונות ישירות ל-Memory Bank. לדוגמה, הסוכן יכול להחליט מתי צריך לכתוב זיכרון ואיזה מידע צריך לשמור (זיכרון ככלי). כדאי להשתמש ב-CreateMemory כשרוצים שלנציג תהיה יותר שליטה על העובדות שנשלפות.

  5. ‫(Memory Bank) RetrieveMemories: כשהמשתמש יוצר אינטראקציה עם הנציג, הנציג יכול לאחזר זיכרונות שנשמרו לגבי המשתמש הזה. אפשר לאחזר את כל הזיכרונות (אחזור פשוט) או רק את הזיכרונות שהכי רלוונטיים לשיחה הנוכחית (אחזור באמצעות חיפוש דמיון). אחר כך אתם יכולים להוסיף את הזיכרונות שאוחזרו להנחיה שלכם.

מדריכים למתחילים

כדי להתחיל להשתמש ב-Memory Bank, אתם יכולים להיעזר במדריכים הבאים למתחילים:

ניהול Memory Bank

בקטע הזה מתוארים שיקולים שקשורים למשילות מידע (data governance) כשמשתמשים ב-Memory Bank, כמו תחומי אחריות בנושא אבטחה ומיקום אחסון הנתונים.

סיכוני אבטחה שקשורים להחדרת פרומפטים

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

כדי לצמצם את הסיכון להרעלת זיכרון, אתם יכולים:

  • ‫Model Armor: משתמשים ב-Model Armor כדי לבדוק את ההנחיות שנשלחות ל-Memory Bank או מהנציג.

  • בדיקות אדברסריות: בדיקה יזומה של האפליקציה שמבוססת על מודל ה-LLM כדי לזהות נקודות חולשה להחדרת פרומפטים באמצעות הדמיה של התקפות. התהליך הזה נקרא בדרך כלל "צוות אדום".

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

מידע נוסף זמין במאמר הגישה של Google לסוכני AI מאובטחים.

מיקום אחסון הנתונים

כדי לעמוד בדרישות של מסגרות רגולטוריות כמו General Data Protection Regulation (התקנות הכלליות להגנה על מידע, GDPR) ודרישות אזוריות בנושא ריבונות הנתונים, אתם צריכים לוודא שהזיכרונות שנוצרים ונשמרים ב-Memory Bank עומדים בגבולות מחמירים של מיקום אחסון הנתונים והפרדת הנתונים.

למרות ש-Memory Bank מספק בידוד נתונים מבוסס-היקף בין זהויות בתוך מכונה, צריך להחיל מדיניות של בקרת גישה מבוססת-תפקידים (RBAC) וניהול זהויות והרשאות גישה (IAM) כדי לאכוף גבולות אזוריים ולמנוע זיהום זיכרון חוצה גבולות בין מכונות אזוריות נפרדות.

פריסת מכונות אזוריות ומיקום אחסון הנתונים

כשיוצרים מכונה של Memory Bank, בוחרים מיקום אזורי או מיקום במספר אזורים (למשל eu לאיחוד האירופי או us לארצות הברית) כדי לוודא שהנתונים במנוחה נשארים בגבולות הגיאוגרפיים הספציפיים האלה.

מיקום העיבוד של למידת המכונה (ML) תלוי בזמינות האזורית של המודל הבסיסי. אם נקודת קצה אזורית לא זמינה למודל או למיקום שבחרתם (לדוגמה, מודלים של Gemini 3 או אזורים בודדים באסיה), נקודות קצה גלובליות של Gemini משמשות לעיבוד נתוני למידת מכונה. למידע נוסף, ראו מיקום אחסון הנתונים ונקודות קצה גלובליות ובמספר אזורים.

מניעת זיהום חוצה-גבולות של הזיכרון

זיהום חוצה-גבולות מתרחש כש-Agent Runtime,‏ Agent Identity, חשבון שירות או אפליקציה שפועלים בסמכות שיפוט אחת (לדוגמה, ארה"ב) כותבים או מאחזרים זיכרונות ממכונה של Memory Bank שנמצאת בסמכות שיפוט אחרת (לדוגמה, האיחוד האירופי).

כדי למנוע זיהום חוצה-גבולות ולשמור על עמידה בתקנות, אתם יכולים להגדיר את אמצעי הבקרה הבאים של IAM:

  • חשבונות שירות או זהויות של נציגים אזוריים ייעודיים: יוצרים זהויות של נציגים או חשבונות שירות נפרדים לכל אזור שיפוט (למשל, agent-us@PROJECT_ID.iam.gserviceaccount.com לעומסי עבודה בארה"ב ו-agent-eu@PROJECT_ID.iam.gserviceaccount.com לעומסי עבודה באיחוד האירופי). חשוב לוודא שזהויות של סוכנים וחשבונות שירות אזוריים מקבלים תפקידי IAM רק במכונות של Memory Bank שנמצאות באותו אזור שיפוט גיאוגרפי, כדי למנוע מסביבות זמן ריצה אזוריות לגשת למכונות חוצות גבולות.

    • תפקידים ייעודיים עם הרשאות מינימליות: מקצים לחשבונות המשתמשים רק את התפקידים הספציפיים ב-Memory Bank שנדרשים לעומס העבודה שלהם (למשל, roles/aiplatform.memoryViewer לאחזור לקריאה בלבד או roles/aiplatform.memoryEditor לגישה לכתיבה וליצירה) שמקושרים למשאב האזורי המתאים. במאמר תפקידי IAM ייעודיים ל-Memory Bank מפורטים התפקידים הזמינים.
  • כללי מדיניות של הארגון: אכיפת הגבלות על מיקום ברמת הארגון, התיקייה או הפרויקט באמצעות gcp.resourceLocations אילוץ מדיניות הארגון. כך אפשר להגביל את היצירה והשימוש במשאבים של Memory Bank לאזורים מאושרים שתואמים לדרישות, ולמנוע שימוש לא מורשה בנקודות קצה גלובליות.

איך מטמיעים כללי מדיניות של גישה מותנית באמצעות תנאי IAM ב-Agent Platform Memory Bank

המאמרים הבאים

התחלה מהירה

מתחילים להשתמש ב-Memory Bank API כדי לנהל זיכרונות לטווח ארוך.

התחלה מהירה

איך מתחילים לעבוד עם הערכה לפיתוח סוכנים (ADK).

מדריך

איך מגדירים את Memory Bank.