מבחן ביצועים (benchmark) שנערך לאחרונה מראה שעיצוב זיכרון דו-שכבתי — scratchpad מבוסס RAM בתוספת כספת (vault) SQLite-vec מקומית — מספק זמני שאילתה חציוניים של פחות מ-100 מילי-שניות, תוך ביטול החיוב של 135$ לחודש הקשור למאגר וקטורי בענן פופולרי. מפתחים הבונים סוכני AI אוטונומיים יכולים להריץ הגדרה מקומית (on-premise) לחלוטין, שבמבחן הביצועים הייתה מהירה יותר ולא גררה עלויות חודשיות.
מדוע גישות זיכרון קיימות אינן מספקות
סוכני AI זקוקים לעיתים קרובות לשחזר אלפי אינטראקציות עבר, עובדות או תוצאות של קריאות לכלים (tool-calls) בתוך חלון תגובה צר. רוב הצוותים דוחפים כל embedding למסד נתונים וקטורי מנוהל ומסתמכים על חיפוש וקטורי מרחוק עבור כל שליפה. המודל הזה ניתן להרחבה (scales), אך הוא מאלץ כל שאילתה לעבור דרך הרשת, מה שמנפח את זמן ההלוך-חזור (round-trip time) ואת ההוצאה החודשית. במבחן הביצועים, השיהוי (latency) החציוני של השירות בענן עמד על 127 מילי-שניות והחשבונית עלתה על 135$ לחודש; בתקופת הבדיקה נרשמה גם תקלה (outage).
פיצול הזיכרון לשתי שכבות
הארכיטקטורה הדו-שכבתית מפרידה בין "זיכרון עבודה" לבין "אחסון לטווח ארוך":
L1 Scratchpad (RAM)
- חי בזיכרון התהליך (process memory) בלבד.
- מחזיק את הקשר (context) של המשימה הנוכחית ואת קריאות הכלים האחרונות ביותר.
- מאחסן מחרוזות גולמיות (raw strings); לא נוצרים embeddings.
- מחזיר תוצאות תוך פחות מ-3 מילי-שניות, בדומה למטמון CPU.
L2 Vault (SQLite-vec)
- שומר את כל שאר ה-embeddings במסד נתונים SQLite מקומי המורחב ביכולות חיפוש וקטורי.
- מטפל בכל סט 14,726 הזיכרונות ששימשו במבחן הביצועים.
- מחזיר התאמות תוך כ-94 מילי-שניות, מתחת ליעד של 100 מילי-שניות הנדרש עבור סוכנים רבים הפועלים בזמן אמת.
- אינו עולה דבר מעבר לאחסון של המכונה המארחת.
SQLite-vec הוא תוסף קוד פתוח המוסיף חיפוש שכנים קרובים מקורבים (approximate nearest-neighbor search) לקובץ יחסי (relational file) סטנדרטי. מכיוון שמסד הנתונים נמצא באותה מכונה שבה פועל הסוכן, אין צורך ב"קפיצה" ברשת (network hop), והמנוע מנצל טכניקות אינדוקס קיימות של SQLite כדי לשמור על שליפות מהירות.
מספרים שחשוב לשים לב אליהם
| מערכת | שיהוי (latency) חציוני | עלות חודשית | אמינות מדווחת |
|---|---|---|---|
| מאגר וקטורי בענן (Pinecone) | 127 ms | ~$135 | נצפו תקלות (outages) |
| כספת SQLite-vec מקומית | 94 ms | $0 | 100% uptime |
הפרש העלויות הוא 0$ לעומת כ-135$ לחודש.
שמירה על כספת מסודרת
שפיכה (dump) גולמית של כל ה-embeddings עלולה לפגוע ברלוונטיות. מחבר מבחן הביצועים הציג מערכת דעיכה (decay system) שמעניקה ציון לזיכרונות על פי טריות ותדירות:
- פריטים חדשים או כאלו שניגשים אליהם בתדירות גבוהה מקבלים משקל גבוה יותר.
- פריטים שלא נגעו בהם זמן מה מאבדים משקל בהדרגה.
- הדעיכה המשוקללת מפחיתה את "רעש השליפה" (retrieval noise) — התאמות לא רלוונטיות — ב-34%.
על ידי גיזום (pruning) רשומות בעלות ציון נמוך או הורדת הדרגה שלהן באינדקס, הסוכן נמנע מנתונים מיושנים תוך שמירה על הכספת רזה מספיק לביצועים עקביים.
שורה תחתונה
עבור סוכני AI שצריכים לנהל אלפי זיכרונות תחת לוח זמנים צפוף, scratchpad שמתעדף RAM בשילוב עם כספת SQLite-vec מקומית מציע חלופה פרגמטית למאגרים וקטוריים מבוססי ענן בלבד. הגישה מקצרת את זמני התגובה, מבטלת עמלות ענן חוזרות ומספקת שירות ללא הפרעות, וכל זאת תוך שמירה על היכולת לגזום נתונים לא רלוונטיים. לכן, אימוץ המודל הדו-שכבתי יכול להפוך את הסוכנים למהירים יותר, זולים ואמינים יותר.
