הוספת זיכרון לסוכן
בניית סוכן AI דורשת יותר מסתם מודל. הוא זקוק לדרך לזכור מי אתם.
בסדרה שלי על בניית ה-AWS Briefing Agent, אני בוחן כיצד לעבור מאינטראקציות חסרות מצב (stateless) לחוויות מותאמות אישית.
הבעיה עם microVMs סטנדרטיים היא שהם חסרי מצב (stateless). כאשר סשן מסתיים, הסביבה נהרסת. זה מונע דליפת נתונים, אך המשמעות היא גם שהסוכן שוכח הכל. ללא זיכרון, המשתמש נאלץ לחזור על ההעדפות שלו בכל פעם שהוא מתחבר.
פתרתי זאת באמצעות AgentCore Memory ו-Strands Agents.
כך עובדת הארכיטקטורה:
- זיכרון לטווח קצר: שומר אינטראקציות גולמיות למשך 90 יום כדי לשמור על הקשר (context) במהלך צ'אט.
- זיכרון לטווח ארוך: משתמש בשתי אסטרטגיות ספציפיות כדי להפוך שיחות לידע מתמשך.
- אסטרטגיה סמנטית: מחלצת נתונים עובדתיים, כגון אילו שירותי AWS משתמש בהם המשתמש בסביבת production.
- אסטרטגיית העדפות משתמש: מזהה סגנונות ותחומי עניין, כמו העדפה לכלים מסוג serverless.
כדי לשמור על בטיחות הנתונים, המערכת משתמשת ב-namespaces. באמצעות שימוש במשתנה {actorId}, אני מבטיח שנתונים של משתמש אחד לעולם לא יזלגו לסשן של משתמש אחר.
שילבתי גם את AWS Cognito לצורך אימות (authentication) מאובטח. הסוכן מאמת (validates) טוקנים מסוג JWT כדי לוודא את הזהות. לאחר האימות, המערכת מחלצת את ה-'sub' claim הייחודי מהטוקן. מזהה זה הופך ל-actor_id, שבו הסוכן משתמש כדי לשלוף את רשומות הזיכרון הנכונות.
האינטגרציה חלקה. באמצעות שימוש ב-AgentCoreMemorySessionManager, הסוכן מבצע באופן אוטומטי:
- טעינת היסטוריית השיחות מהזיכרון לטווח קצר.
- חיפוש בזיכרון לטווח ארוך אחר עובדות והעדפות רלוונטיות.
- הזרקת ההקשר הזה למצב הסוכן (agent state) לפני המענה.
התוצאה היא סוכן שמרגיש אישי. הוא מכיר את רמת המומחיות שלך ואת תחומי העניין הספציפיים שלך ב-AWS מבלי שתצטרך לחזור על עצמך.
מקור: https://dev.to/aws-heroes/adding-memory-to-the-agent-181k
קהילת למידה אופציונלית: https://t.me/GyaanSetuAi