דילוג לתוכן
תפריט

המוצר

פתרונות

אינטגרציות

מפתחים

שפה

המוצר

עוד דברים שאפשר לעשות

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

סוכן אחד מבקש משהו מהסוכן של פרויקט אחר

שני repositories שמדברים דרך API, לכל אחד סוכן משלו וזיכרון משלו. הסוכן של ה-frontend מכיר את הפרוטוקול. במקום לקרוא את כל ה-repository של ה-API, הוא כותב בקשה מלאה ומניח אותה ב-inbox של הפרויקט ההוא.

תרשים: סוכן בפרויקט A שולח בקשה חתומה דרך שרת הזיכרון אל ה-inbox של פרויקט B, שם סוכן תופס אותה פעם אחת וקורא מפרט API. חומה בין הפרויקטים מסמנת שאין הקשר משותף, וההודעה שהתקבלה מטופלת כקלט לא מהימן.
רק המעטפה חוצה. פרויקט A אף פעם לא קורא את הקבצים של פרויקט B, ופרויקט B אף פעם לא קורא את אלה של פרויקט A.

איך זה נראה

  1. ב-repository של ה-frontend

    > תבקש מהסוכן ב-default/api להוסיף endpoint /v1/export שמזרים NDJSON, לשמור על ה-auth middleware הקיים, ותשלח את זה דרך ai-memory.

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

  2. מאוחר יותר, ב-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>

מדריך ההודעות

  • ממוענת לפרויקט

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

  • שום דבר לא נכנס להקשר מעצמו

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

  • נכשל במצב סגור

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

  • ניתן לביטול, נרשם ביומן

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

מפרידים בין לקוחות, mono-repos ועבודה אישית

הזיכרון מתויק לפי workspace ופרויקט. checkout עם git remote מתויק לפי ה-remote הזה, כך שאותו repository שעבר clone פעמיים חולק זיכרון אחד, ותיקייה בלי remote משתמשת בשם שלה. קובץ קטן משנה את השאר.

תרשים: שלוש תיקיות, בכל אחת קובץ סימון .ai-memory.toml, מתמפות ל-workspaces נפרדים בתוך שרת זיכרון אחד. workspace אחד מחזיק mono-repo שהתיקיות שלו חולקות פרויקט. בצד נמצאים דף כללים מוצמד, פתק שפג ביום שישי ודף עם משוב.
שרת אחד, מדפים נפרדים. קובץ הסימון קובע על איזה מדף תיקייה נוחתת.
  • workspace אחד לכל לקוח

    מניחים .ai-memory.toml ב-~/work/client-a/, וכל repository שמתחתיו מתויק תחת ה-workspace הזה. שום דבר מלקוח A לא צץ בזמן שעובדים בשביל לקוח B.

  • Mono-repo כפרויקט אחד

    קובץ סימון שמגדיר project מצמיד אליו את כל תתי-התיקיות, כך שהחבילות חולקות זיכרון אחד. בלי project, כל חבילה שומרת על זיכרון משלה.

  • Git worktrees

    worktrees מקושרים מתמפים ל-repository הראשי, כך ש-branch שעשו לו checkout במקום אחר שומר על אותו זיכרון.

  • שני סוכנים בפרויקט אחד

    המצביע לפרויקט הנוכחי מבודד לכל קורא, ולכן Claude Code ו-Codex יכולים לרוץ זה לצד זה באותה תיקייה בלי להתבלבל.

  • מחשב אחד, שני מעסיקים

    רושמים כל שרת עם ai-memory server add ונותנים לו שם בקובץ הסימון עם server = "team-b". ה-hooks מהעץ הזה הולכים לשם ולשום מקום אחר, ושם שלא נפתר לא שולח כלום.

  • identity מוצמד

    identity = "acme/platform" מתייק checkout תחת המפתח הזה בכל מקום שהוא נמצא, גם בלי remote.

.ai-memory.toml ב-~/work/client-a/
# כל repository מתחת לתיקייה הזאת מתויק תחת ה-workspace client-a
workspace = "client-a"

מדריך קובץ הסימון

כללים שמגיעים לכל סשן

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

  • אומרים פעם אחת

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

  • התדריך מכניס אותם

    עם inject_on_session_start = true בקובץ הסימון של הפרויקט, דפים מוצמדים, כללים ומשבצות נוספים לתחילת ההקשר של כל סשן חדש.

  • ה-lint מציע קידום

    כשכלל נראה יציב מספיק, memory_lint מציע להעתיק אותו ל-CLAUDE.md או ל-AGENTS.md. ai-memory אף פעם לא עורך את הקבצים האלה בעצמו.

  • רשומות ההחלטות נשארות שלכם

    ai-memory אף פעם לא כותב לתוך ה-repository שלכם. שומרים תיקיית ADR, ורושמים אותה תחת [capture] ignore_paths כדי שהוויקי לא יחזיק עותק מיושן שלה.

.ai-memory.toml
# מוסיפים דפים מוצמדים, כללים ומשבצות לתחילת כל סשן
[briefing]
inject_on_session_start = true

פתקים שפגים, ומשוב שמסדר מחדש

  • תזכור את זה עד יום שישי

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

  • הדף הזה היה שגוי

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

  • מעבירים סשן

    סשן שנלכד בפרויקט הלא נכון, אחרי cd לתיקיית scratch, אפשר לחבר מחדש עם ai-memory move-session. התצפיות והדף שלו עוברים איתו.

  • מתאוששים מצמצום הקשר

    כש-Claude Code או Codex מצמצמים את ההקשר שלהם, hook כותב קודם דף סשן טרי, כך שמה שנחתך אפשר לשלוף בחזרה.

קוראים בדפדפן, לוקחים לכל מקום

  • ממשק web לקריאה בלבד

    מפעילים את השרת עם --enable-web, והדפים של כל הפרויקטים נגישים לדפדוף, מקובצים למושגים, החלטות, מלכודות וסשנים, עם JSON API תחת /api/v1.

  • פורמט פתוח

    כל פרויקט הוא bundle של Open Knowledge Format. ai-memory export-okf אורז אותו לכל כלי שקורא OKF, ולכל השאר הקבצים הם markdown פשוט.

  • Skills לסוכן שלכם

    ai-memory install-mcp מתקין גם קטע ניתוב קצר ו-Agent Skills מנוהלים, כך שהסוכן יודע איזה כלי עונה על "דיברנו כבר על זה?" ואיזה שולח הודעות.

המטלות שה-launcher לוקח על עצמו

ai-memory run מפעיל את הסוכן דרך שרת הזיכרון. הוא גם שומר את הקובץ הבינארי מעודכן, סוגר סשנים, ומזהיר לפני שהוא מנטרל משהו.

תרשים: טרמינל שמריץ ai-memory run במרכז. סביבו: sandbox שה-launcher מציע לפני שהוא מנטרל את הגנות הבטיחות, הורדה עם checksum לשדרוג העצמי, דף סשן שנסגר כשהסוכן יוצא, והתחברות בדפדפן לממשק ה-web.
פקודה אחת באמצע. כל השאר קורה סביבה בלי כלי שני.
  • שדרוג בפקודה אחת

    ai-memory upgrade מוריד את הגרסה המתאימה, בודק את ה-checksum, מחליף את הקובץ הבינארי ומרענן את ה-hooks. התקנות Docker, Homebrew, AUR ו-RPM שומרות על המסלול שלהן.

  • אזהרה לפני שההגנות יורדות

    ai-memory run --yolo אומר מה הוא עומד לנטרל, וב-Linux וב-macOS עם ai-jail זמין, מציע להריץ מחדש את הסשן בתוך ה-sandbox עם checklist של מה שהסשן המגודר יכול לראות. --jail נכנס ישר פנימה עם ברירות מחדל סבירות.

    ai-jail ב-GitHub
  • סביבה בשביל ה-harness

    --env KEY=VALUE ו---env-file מגיעים גם לסוכן שמופעל וגם לחיפוש הסשן העצמי של ai-memory, כך ש-CLAUDE_CONFIG_DIR לכל חשבון לא צריך script wrapper.

  • סשנים נסגרים ביציאה

    סוכנים בלי hook של סיום סשן (Command Code, Kiro CLI, Antigravity CLI) מקבלים את הסיכום וההעברה שלהם כש-launcher יוצא. finalize-session --reopen מכסה שיחה שהמשיכה אחרי זה.

  • התחברות לממשק ה-web

    בוויקי המובנה יש דפי login והחלפת סיסמה למשתמשי סיסמה, ודף שרק ל-root יש גישה אליו לאישור או דחייה של הצעות auto-improvement ממתינות על פני כל הפרויקטים.

  • Stopwords בשפה שלכם

    [search.fts] stopwords מפרט את מילות הפונקציה של השפה שלכם, כך שדירוג טקסט מלא בוויקי בפורטוגזית לא מוטה על ידי de ו-que.

שאלות ותשובות

סוכן בפרויקט אחד יכול לקרוא את הזיכרון של פרויקט אחר?

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

הודעה שהתקבלה מטופלת כהוראות?

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

מה קורה אם שני סשנים בודקים את אותו inbox?

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

חייבים להגדיר workspaces?

לא. בלי קובץ סימון הכול מתויק תחת workspace בשם default, עם ה-git remote בתור הפרויקט, או שם התיקייה כשאין remote. מוסיפים .ai-memory.toml רק כשרוצים הפרדה בין לקוחות, mono-repo כפרויקט אחד, הפרדה בין זיכרון עבודה לזיכרון אישי, או שרת שני.

תנו לסוכנים שלכם זיכרון, כבר היום.

חינם ובקוד פתוח, ברישיון MIT. בלי חשבון ובלי מפתח API.