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

המוצר

פתרונות

אינטגרציות

מפתחים

שפה

המוצר

ההרגלים שלכם עוברים איתכם לפרויקט הבא

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

שתי תנועות, זיכרון אחד

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

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

מה סשן חדש שומע ראשון

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

בתחילת הסשן
> 🧭 ai-memory: your usual choices (cross-project profile)
> Your usual choices from other projects. Use them as defaults when this
> project's rules and the user say nothing; say which default you applied.
- [javascript] Use pnpm, not npm. (profile/tools/pnpm.md)
- Keep integration tests in tests/suite. (profile/testing/layout.md)

קודם הכללים, הזיכרון כברירת מחדל

  1. ההוראות שלכם בשיחה
  2. קובץ הכללים של הריפוזיטורי: AGENTS.md, CLAUDE.md או הקובץ של ה-harness עצמו
  3. הזיכרון של הפרויקט: הדפים, הכללים וההחלטות שלו
  4. הפרופיל: מה שאתם עושים בדרך כלל בין פרויקטים

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

איך הוא לומד, בלי LLM

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

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

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

  • דפים מוכנים וה-stack

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

  • שני פרויקטים, או הצהרה כללית אחת

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

  • ראיות בכל רשומה

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

פרויקט חדש מתחיל מקדמה

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

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

בתוך הריפוזיטורי החדש
# רואים את הבלוק ואת הקובץ שאליו הוא ייכתב
ai-memory profile apply --dry-run
# כותבים אותו
ai-memory profile apply
# מוציאים אותו שוב
ai-memory profile apply --remove

אתם נשארים בשליטה

הרשומות הן דפי ויקי רגילים: markdown ב-git, עם גרסה לכל שינוי.

  • שוכחים, וזה נשאר נשכח

    ai-memory profile forget מסיר רשומה, והסבב לא יצור אותה מחדש מאותן ראיות. היא חוזרת רק אם תגידו אותה שוב.

  • העריכות שלכם מנצחות

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

  • עבודה ללקוחות ו-NDA נשארת בחוץ

    הסימון של פרויקט יכול להגדיר contribute = false כדי שלא יילמד ממנו דבר, ו-consume = false כדי שלא יקבל את התקציר.

  • סקירה ובנייה מחדש

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

.ai-memory.toml בריפוזיטורי של לקוח
# הפרויקט הזה לא מלמד את הפרופיל ולא מקבל אותו
[profile]
contribute = false
consume = false

אדם אחד, פרופיל אחד. צוות, בהסכמה.

בשרת למפעיל יחיד הפרופיל פעיל ומשותף לכל ה-workspaces. בשרת מרובה משתמשים הוא כבוי עד שמפעילים אותו.

  • פרטי לכל מפעיל

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

  • פרופיל צוות דורש שני קולות

    share = "global" או "workspace" יוצר פרופיל שכולם מקבלים. הרגל מצטרף אליו רק לפי ראיות מלפחות שני מפעילים, והתקציר נפתח בכותרת ברירות מחדל של הצוות, כדי שהסוכן ידע שהן משותפות.

  • עבודה ופרטי בנפרד

    share = "workspace" שומר פרופיל אחד לכל workspace, לשני לקוחות או לעבודה ולבית.

קונפיגורציית השרת
# שרת משותף: פרופיל פרטי אחד לכל מפעיל
[profile]
enabled = true
share = "auto"
min_projects = 2

קוראים את מדריך הפרופיל המלא

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

האם הפרופיל עוקף את הכללים של הפרויקט?

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

האם הוא צריך LLM?

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

האם הוא יכול ללמוד משהו מהקוד של לקוח?

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

מה קורה בשרת משותף?

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

אפשר לכבות אותו?

כן. enabled = false או share = "off" בקונפיגורציית השרת מסירים אותו לגמרי. inject_on_session_start = false משאיר את התקציר מחוץ לתחילת הסשן, והפרופיל ממשיך לענות על שאילתות.

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

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