ניהול זיכרון ב-AI: חשיפה הדרגתית, סקילים וסוכני-משנה

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

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

הזיכרון יושב בסביבה, לא במודל

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

הדוגמה הקלאסית היא קובץ הסוכן הראשי, AGENTS.md או CLAUDE.md, שהסוכן טוען בתחילת כל סשן. נמאס לכם להזכיר לו שאתם עובדים עם Postgres ולא עם MySQL? אל תחזרו על זה. תכתבו את זה בזיכרון, תשמרו על הדיסק, ותנו לזה להיטען בתחילת הסשן.

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

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

חשיפה הדרגתית (Progressive Disclosure)

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

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

מצביעי קונטקסט (Context Pointers)

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

אז בקובץ הסוכן שמים מצביע לקונטקסט: “יש תיקיית RAG עם תיעוד על X. המודלים נמצאים בתיקייה הזאת. כשאתה בונה UI, תקרא את מדריך העיצוב כאן.” אותו רעיון עם סוכן מסד נתונים שחייב תמיד לקרוא את הסכמה, אבל יכול לקרוא את הפרוצדורות ופונקציות ה-SQL כשהוא מחליט שהן רלוונטיות.

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

סקילים: הגרסה הארוזה

סקיל הוא הגרסה הפורמלית והרב-פעמית של כל מה שתיארנו:

  • הוא תמיד יושב בתיקיית skills/, בתת-תיקייה בשם הסקיל, עם קובץ SKILL.md כמקור.
  • אפשר לצרף לידו קבצים נוספים: סקריפטים, תבניות, כל דבר שהסוכן יכול להריץ.
  • רק השם והתיאור יושבים בקונטקסט. כל השאר נטען בחשיפה הדרגתית, כשהסוכן מחליט שהוא צריך את זה.

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

איפה שמים את מדריך הפריסה (Deploy Runbook)? בסקיל. כשמגיע הזמן לפרוס, הסוכן קורא אותו. עד אז הוא לא עולה אף טוקן.

סוכני-משנה: להוציא את הרעש החוצה

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

שתי הבהרות של אריאל:

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

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

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

🔥 Roast Corner

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

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

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

🤖 AI for Humans

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

  1. מדדו אותו. אם הוא אלפי טוקנים ואתם עושים משימות ממוקדות, הוא גדול מדי.
  2. השאירו רק מה שרלוונטי לכל סשן: הסטאק, הכללים המרכזיים, ואיפה כל דבר נמצא.
  3. הפכו את כל השאר למצביעים. “מדריך עיצוב: docs/style.md. לקרוא לפני עבודת UI.”
  4. הפכו תהליכים חוזרים לסקילים. פריסה, שחרור גרסה, קליטת עובד. שם ותיאור של שורה אחת בקונטקסט, הפרטים לפי דרישה.
  5. שלחו עבודות רועשות לסוכני-משנה. חיפושים, סריקת תיבת דואר, חפירה בלוגים. בקשו את חמשת הדברים שאתם צריכים, לא את ה-500 שהוא קרא.
  6. במשימות גדולות, חשפו בהדרגה. רכיב אחד בכל פעם, קובץ מסירה לכל חלק, ואז סשן חדש שקורא רק את הקבצים האלה.

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

צור קשר עכשיו ליעוץ ופתרונות בנושא AI ואוטומציות הצטרפו עכשיו לקהילת הAI החרדית וקורסיום אונליין

💬 תגובות