זיכרון לכלים שלך
ערכת ה־SDK האופציונלית ל־TypeScript משתמשת בקריאות MCP עם תחום מוגדר לשמירה, חיפוש והעברת זיכרון. כתיבות מותנות מזהות עריכות מקבילות. בנה אותה מהמאגר; היא אינה מפורסמת ב־npm.
המוצר
העברות וחיפוש הם השימוש היום-יומי. אלה שאר הדברים שזיכרון שחי בשרת אחד יכול לעשות בשבילכם, מהעברת עבודה בין פרויקטים ועד הפרדה בין הזיכרון של לקוח אחד לזה של לקוח אחר.
שני repositories שמדברים דרך API, לכל אחד סוכן משלו וזיכרון משלו. הסוכן של ה-frontend מכיר את הפרוטוקול. במקום לקרוא את כל ה-repository של ה-API, הוא כותב בקשה מלאה ומניח אותה ב-inbox של הפרויקט ההוא.
פרויקט A
שליחה
ה-inbox, נתפס פעם אחת
פרויקט B
משיכה
מפרט API
קלט לא מהימן
אין הקשר משותף
ב-repository של ה-frontend
> תבקש מהסוכן ב-default/api להוסיף endpoint /v1/export שמזרים NDJSON, לשמור על ה-auth middleware הקיים, ותשלח את זה דרך ai-memory.
הסוכן קורא ל-memory_message_send עם גוף הודעה שעומד בפני עצמו. הבקשה חייבת להסתדר לבד, כי מי שקורא אותה לא רואה את הפרויקט הזה.
מאוחר יותר, ב-repository של ה-API
📬 ai-memory: הודעה 1 מפרויקט אחר ממתינה ב-inbox של הפרויקט הזה.
> תבדוק את ה-inbox שלי ב-ai-memory.
הסוכן קורא ל-memory_message_pop, מקבל את הבקשה יחד עם מי ששלח אותה, ועובד לפיה. משיכה שנייה לא מחזירה כלום.
# שולחים מהפרויקט הנוכחי
ai-memory message send --to-workspace default --to-project api \
--subject "export endpoint" "Add a /v1/export endpoint that streams NDJSON…"
# בפרויקט השני: מציגים בלי לצרוך, או תופסים את הוותיקה ביותר
ai-memory message list
ai-memory message pop
# מתחרטים לפני שההודעה נתפסה
ai-memory message cancel --id <message-id>
הודעה מיועדת לסביבת עבודה ולפרויקט, ואפשר לכוון אותה לסוכן רשום מסוים. רק הסוכן הזה יכול לאסוף הודעה ממוקדת. בדפדפן ניתן לשלוח ולערוך הודעות ממתינות עם גישה לשני הפרויקטים.
ההודעה בתחילת הסשן נושאת רק ספירה. טקסט ההודעה מגיע לסוכן רק במשיכה מכוונת, מגודר ומסומן כלא מהימן, כשהשולח מוצג מחוץ לגדר. פרויקט יכול לבחור לקבל את אותה הודעה, עם המספר בלבד, גם בפרומפטים.
פרויקט היעד חייב להיות קיים, ולכן שגיאת הקלדה נדחית במקום לנחות ב-inbox שאף אחד לא קורא. כל inbox מחזיק לכל היותר 256 הודעות ממתינות.
השולח יכול לבטל הודעה עד שהיא נתפסת. סודות מוסרים בשליחה, גודל הגוף מוגבל, ובשרת משותף כל הודעה רושמת מי שלח אותה.
הזיכרון מתויק לפי workspace ופרויקט. checkout עם git remote מתויק לפי ה-remote הזה, כך שאותו repository שעבר clone פעמיים חולק זיכרון אחד, ותיקייה בלי remote משתמשת בשם שלה. קובץ קטן משנה את השאר.
client-a
client-b
personal
ה-workspaces
.ai-memory.toml
ה-mono-repo
כללים
פג ביום שישי
משוב
מניחים .ai-memory.toml ב-~/work/client-a/, וה-repositories שמתחתיו משתמשים באותו workspace. כך נקבע היכן הזיכרון נשמר ומחופש כברירת מחדל. זה אינו כלל בקרת גישה: חיפושים יזומים בין פרויקטים ופרופילים משותפים דורשים התייחסות נפרדת.
קובץ סימון שמגדיר project מצמיד אליו את כל תתי-התיקיות, כך שהחבילות חולקות זיכרון אחד. בלי project, כל חבילה שומרת על זיכרון משלה.
worktrees מקושרים מתמפים ל-repository הראשי, כך ש-branch שעשו לו checkout במקום אחר שומר על אותו זיכרון.
ניתוב לפי זהות מפריד בין קוראים. סשנים מקבילים של אותו אדם עדיין דורשים ארגומנטים מפורשים של workspace/project או לקוח שמעביר את מזהה סשן ההוק; הגדרות MCP סטטיות לא תמיד מבדילות ביניהם.
רושמים כל שרת עם ai-memory server add ונותנים לו שם בקובץ הסימון עם server = "team-b". ה-hooks מהעץ הזה הולכים לשם ולשום מקום אחר, ושם שלא נפתר לא שולח כלום.
identity = "acme/platform" מתייק checkout תחת המפתח הזה בכל מקום שהוא נמצא, גם בלי remote.
# כל repository מתחת לתיקייה הזאת מתויק תחת ה-workspace client-a
workspace = "client-a"
אומרים לסוכן לזכור משהו לתמיד, וזה הופך לדף בוויקי. כללים מתויקים בנפרד מעובדות, ותדריך הסשן יכול להציב אותם מול הסוכן עוד לפני הפרומפט הראשון.
"תזכור: לפני שנוגעים בקוד התשלומים, קוראים את הערות ה-PCI." הסוכן כותב דף קבוע. מבקשים שזה יהיה כלל גלובלי, והוא חל על כל הפרויקטים שלכם.
עם inject_on_session_start = true בקובץ הסמן של הפרויקט, התדריך מתחיל בדפים מוצמדים, כללים ו־slots. דפים שלא נכנסים לתקציב מוצגים לקריאה דרך memory_read_page. כדי למסור תדריך מוגבל גם לסוכני משנה של Claude Code, הגדירו בנפרד inject_on_subagent_start = true.
כשכלל נראה יציב מספיק, memory_lint מציע להעתיק אותו ל-CLAUDE.md או ל-AGENTS.md. ai-memory אף פעם לא עורך את הקבצים האלה בעצמו.
השרת אינו קורא או כותב קבצים במאגר שלך. סוכנים ופקודות הגדרה מקומיות יכולים לעשות זאת. שמור רשומות ADR במאגר; [capture] ignore_paths מצמצם לכידה שלהן דרך כלים, אך אינו מסנן פרומפטים או מבטיח החרגה.
# מוסיפים דפים מוצמדים, כללים ומשבצות לתחילת כל סשן
[briefing]
inject_on_session_start = true
דף עם expires_at יוצא מהחיפוש הרגיל אחרי התאריך הזה. אפשר לכלול דפים שפג תוקפם בשאילתה עד שסריקת השימור מוחקת אותם, גם אם הם נעוצים.
memory_feedback מתעד מועיל, לא מועיל, מיושן או שגוי. המשוב משפיע על שימור דפי סשן מתאימים; מיושן ושגוי גם מסמנים דפים לבדיקת lint. הוא אינו משנה את דירוג החיפוש ואינו מוחק דף ישירות.
סשן שנלכד בפרויקט הלא נכון, אחרי cd לתיקיית scratch, אפשר לחבר מחדש עם ai-memory move-session. התצפיות והדף שלו עוברים איתו.
אחרי דחיסת הקשר, Claude Code, Codex ו-Factory Droid מקבלים עוגן קצר עם הפרומפט הראשון והאחרון של הסשן, במקום חבילת הפתיחה הרגילה. כל סוכן נושא גם כלל לקרוא מחדש את הפרומפטים של עצמו ולהעדיף אותם על פני התקציר. reload context עדיין מביא תקציר מוגבל ביוזמתכם.
לוח הבקרה המובנה מציג פרויקטים, תקינות לכידה, פעילות סוכנים ושימוש לכל תגובה. לשונית הידע כוללת מתארים, קישורים נכנסים, ראיות לפי גרסה וחיפוש; המדריכים נמצאים ב־/web/docs.
כל דף מקשר לגרסאות שלו, עם diff בין כל שתיים, וכל סשן פותח ציר זמן של התצפיות שלו לפי סדר הלכידה. root רואה דף בריאות עם מוני ה-hooks והתיקון לכל מה שנכשל.
כל פרויקט הוא bundle של Open Knowledge Format. ai-memory export-okf אורז אותו לכל כלי שקורא OKF, ולכל השאר הקבצים הם markdown פשוט.
ai-memory install-mcp מתקין גם קטע ניתוב קצר ו-Agent Skills מנוהלים, כך שהסוכן יודע איזה כלי עונה על "דיברנו כבר על זה?" ואיזה שולח הודעות.
ai-memory run מפעיל את הסוכן דרך שרת הזיכרון. במעבר בין harnesses, הוא יכול להעביר גם קובץ זמני פרטי של ההיסטוריה הגלויה מהסוכן הקודם במחשב הזה. הנתיב והתוכן נשארים נייטיב; הקובץ נמחק כשהתהליך הבן מסתיים. ללא תמליל מקומי שמיש, נשארים היומן הנייד וה-handoff.
ai-memory run
הצעת ארגז חול
שדרוג עצמי
סגירה ביציאה
כניסה לאתר
ai-memory upgrade מוריד את הגרסה המתאימה, בודק את ה-checksum, מחליף את הקובץ הבינארי ומרענן את ה-hooks. התקנות Docker, Homebrew, AUR ו-RPM שומרות על המסלול שלהן.
ai-memory run --yolo אומר מה הוא עומד לנטרל, וב-Linux וב-macOS עם ai-jail זמין, מציע להריץ מחדש את הסשן בתוך ה-sandbox עם checklist של מה שהסשן המגודר יכול לראות. --jail נכנס ישר פנימה עם ברירות מחדל סבירות.
--env KEY=VALUE ו---env-file מגיעים גם לסוכן שמופעל וגם לחיפוש הסשן העצמי של ai-memory, כך ש-CLAUDE_CONFIG_DIR לכל חשבון לא צריך script wrapper.
סוכנים בלי hook של סיום סשן (Command Code, Kiro CLI, Antigravity CLI) מקבלים את הסיכום וההעברה שלהם כש-launcher יוצא. finalize-session --reopen מכסה שיחה שהמשיכה אחרי זה.
בוויקי המובנה יש דפי login והחלפת סיסמה למשתמשי סיסמה, ודף שרק ל-root יש גישה אליו לאישור או דחייה של הצעות auto-improvement ממתינות על פני כל הפרויקטים.
[search.fts] stopwords מפרט את מילות הפונקציה של השפה שלכם, כך שדירוג טקסט מלא בוויקי בפורטוגזית לא מוטה על ידי de ו-que.
כן, באמצעות שאילתות מפורשות בין פרויקטים, כשלקורא יש גישה. שאילתות רגילות משתמשות בפרויקט הנוכחי. הודעות מעבירות בקשה עצמאית ל-inbox של פרויקט אחר; הן לא מעניקות לנמען גישה לקבצים של השולח.
לא. הודעה שנמשכה מגודרת כקלט לא מהימן מפרויקט אחר ונושאת הערה שאומרת את זה. הסוכן בוחן אותה איתכם כבקשת משימה, והשולח מוצג מחוץ לגדר כדי שתוכלו לשפוט קודם אם לסמוך עליו.
המשיכה הראשונה תופסת את ההודעה והשנייה לא מקבלת כלום. הודעה נתפסת פעם אחת בדיוק, אותו כלל שחל על העברות.
לא. בלי קובץ סימון הכול מתויק תחת workspace בשם default, עם ה-git remote בתור הפרויקט, או שם התיקייה כשאין remote. מוסיפים .ai-memory.toml רק כשרוצים הפרדה בין לקוחות, mono-repo כפרויקט אחד, הפרדה בין זיכרון עבודה לזיכרון אישי, או שרת שני.
ערכת ה־SDK האופציונלית ל־TypeScript משתמשת בקריאות MCP עם תחום מוגדר לשמירה, חיפוש והעברת זיכרון. כתיבות מותנות מזהות עריכות מקבילות. בנה אותה מהמאגר; היא אינה מפורסמת ב־npm.
הרכיב האופציונלי ai-memory-wikisync מסנכרן משפחות נבחרות של דפים משותפים עם Markdown במאגר. הוא מדווח על התנגשויות, משתמש בכתיבות מותנות ודורש הפעלה מפורשת למחיקות. הוא אינו משכפל שרתים או היסטוריית סשנים פרטית.
ה-ai-memory-importer האופציונלי קורא קובץ מקומי אחד שמצביעים עליו: markdown, PDF עם שכבת טקסט, DOCX, PPTX, XLSX, CSV, VTT או SRT. הוא כותב דף אחד עם ייחוס למקור, רץ כ-dry run כברירת מחדל, רושם את ה-digest של הקובץ ולעולם לא מחליף דף שאינו שלו. בלי OCR, בלי תמונות, בלי אודיו. הוא גם מייבא מסד נתונים של claude-mem מתוך תצלום לקריאה בלבד, עם מיפוי מפורש של פרויקטים והרצה יבשה תחילה.
חינמי וקוד פתוח ברישיון MIT. יכולות הזיכרון הבסיסיות לא דורשות מפתח API למודל; סוכן הקוד עשוי לדרוש חשבון משלו.