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

סקירת פרויקט עמוקה · קוד + הדגמה חיה
פותחים את הדף החי ו-ZaiMem נותן טוקן פרטי עוד לפני ששואל מי אתם. הבחירה הקטנה הזו אומרת הרבה על המוצר: זיכרון כתשתית, לא עוד חלון צ׳אט. מאחוריה שירות Next.js 16 עם 33 כלי MCP בשמונה חבילות, מודל נתונים של Prisma, embeddings דטרמיניסטיים בני 384 ממדים, צינורות למסמכים ולפגישות ומאגר GitHub פרטי אופציונלי כגיבוי קריא. הרעיון מחזיק. הסקירה בודקת אם המימוש מחזיק גם.
מה מצליח כאן
- ZaiMem מאחד בעיות המשכיות בממשק פרוטוקול אחד. סוכן יכול לזכור, לאחזר, לחזק הקשר, לדחוס, להמשיך שיחות, להצטרף לפרויקטים, לקלוט מסמכים ופגישות ולמסור עבודה. בקוד יש מודולים נפרדים לכל תחום.
- Live demo · Source repository
איך זה בנוי
לוח הווב ולקוחות MCP נפגשים בשכבת יישום משותפת. נתיבי Next.js מאמתים `zm_…` וקוראים למודולי תחום. Prisma משתמשת ב-SQLite מקומי וב-Postgres מנוהל. שינויים יכולים לשלוח snapshot מושהה בארבע שניות למאגר פרטי. הגבולות ברורים.
איך עובד השליפה
מילים ו-char-4-grams עוברים FNV-1a ל-384 ממדים ומנורמלים. הדירוג משלב cosine, מילות מפתח, עדכניות, חשיבות, גישה, pin ופרויקט. 0.94 נחשב כפילות. אין API חיצוני, אך השיטה קולטת דמיון מילולי טוב ממשמעות עמוקה בין ניסוחים ושפות.
בחירות אבטחה ששווה לשמור
אסימונים נוצרים מ-24 בתים אקראיים ונשמרים כ-SHA-256. רשומות ישנות מהגרות. GitHub PAT מוצפן AES-256-GCM. מחיקה כוללת preview ואישור. יש סריקת quarantine ו-sync לפי blob SHA.
const score =
cosine(query, memory) * semanticWeight
+ keywordBoost(memory)
+ recencyBoost(memory)
+ importanceBoost(memory)
+ (memory.pinned ? pinBoost : 0);פסאודו-קוד הסברי המבוסס על שלבי הדירוג שנבדקו, לא ציטוט מילולי מהמקור.
מלכודת הפריסה
המאגר אומר במפורש: SQLite ב-Vercel יושב ב-`/tmp` זמני, ולכן cold start עלול לקבל מאגר ריק. bootstrap יוצר טבלאות ולא שומר נתונים. שימוש אמיתי דורש Postgres או Docker מתמשך. GitHub מסייע בשחזור, לא מחליף מסד עסקאות עקבי.
איפה סקירת הקוד מוצאת חולשות
היקף המוצר מקדים בדיקות ממוקדות. CI מריץ lint ו-build אך לא suite נפרד. 33 כלים מגדילים מקרי הרשאה. אסימון ב-query עלול לדלוף ללוגים ולהיסטוריה; header בטוח יותר. CORS פתוח נשען על סודיות האסימון. ל-embedding המקומי דרוש benchmark פומבי.
איך הוא נראה ונקרא
דף הייצור ממושמע: שחור, טיפוגרפיה לבנה, סגול אחד, פעולה ראשית אחת ורצועת תאימות. מערכת מורכבת מוסברת דרך לולאות. הלוח רחב יותר ולכן progressive disclosure חשוב. חבילות כלים הן פתרון טוב.
איך להעריך אותו באמת
בנו corpus עם כפילויות, ניסוחים, תרגומים, העדפות ישנות, הוראות עוינות, פרויקטים דומים ומסמך שנמחק. מדדו precision@k, דליפה, merge שגוי, זמן מחיקה ושחזור. חזרו ב-SQLite, Postgres ואחרי cold start.
פסק דין
ZaiMem חזק כמחסנית המשכיות MCP שקופה ללא API embedding. אחזור דטרמיניסטי, provenance, מסירות וגיבוי קריא מתוכננים היטב. לנתונים חשובים דרושים Postgres או Docker מתמשך ובדיקות retrieval ו-isolation.
קישורים וקרדיט
הדגמה חיה: ZaiMem. מקור: GitHub.
יתרונות
- Broad MCP-native continuity surface
- שליפה מקומית דטרמיניסטית עם מקור
- Encrypted GitHub backup path
פשרות
- SQLite זמני אינו בטוח באחסון serverless
- No checked-in retrieval benchmark
- סט כלים רחב מגדיל סיכון הרשאות
מתאים ל: צוותי פיתוח שיכולים להריץ Postgres או מארח Docker קבוע ורוצים זיכרון סוכנים שניתן לבדוק.
שאלות נפוצות
מהו ZaiMem?
ZaiMem הוא שכבת זיכרון MCP בקוד פתוח לסוכני AI, עם אחזור מקומי, מסירות פרויקט, מסמכים, פגישות וגיבויי GitHub.
האם SQLite ב-Vercel מתאים לנתוני ZaiMem קבועים?
לא. האחסון ארעי; עדיף Docker מתמשך או Postgres מנוהל.
האם ZaiMem דורש embedding API?
לא. המנוע ממיר מילים ורביעיות תווים מקומית לווקטורים בני 384 ממדים.
Reviewed source at commit e15c1f9 · Live demo