*ניהול זיכרון בקלוד קוד: למה זה קריטי + טיפים לעבודה נכונה* 🥸
נכון לרגע זה, קלוד קוד יוצר 3 סוגי ״זיכרון״ או memory. זה נעשה באופן אוטומטי וזה מאוד יעיל. הבעיה? זה מצטבר להמון קבצי md מה שמבלבל את קלוד וגורם לבזבוז זמן, טוקנים וגם סתם קצת מקום במחשב.
אז הנה הסבר קצרצר על שלושת הסוגים, ההבדלים, איך עובדים איתם וכמה קל לנקות אותם:
1. Memory: האינדקס הראשי של הזיכרונות. 200 שורות ראשונות נטענות לקונטקסט עם תחילת הsession. כל אינדקס/פוינטר מוביל לקובץ בנושא מסוים שקלוד שמר על דעת עצמו או שאמרתם לו לשמור ו״לזכור״.
2. קבצי הmd אליהם מפנה הקובץ זיכרון הראשי. נקראים רק כאשר קלוד מחליט לפי האינדקס או אתם מבקשים. דברים כמו debugging-guidelines לדוגמה.
3. קבצי זיכרון של sessions: קבצי md קצרים שקלוד יוצר כרונולוגית *לכל סשן* כמו logs. מכילים סיכומים של מה נעשה בסשן, מסקנות וכו׳. הכמה אחרונים מתווספים לקונטקסט בתחילת הסשן לשמור על רצף.
כבר מריחים איך זה מוצר בלאגן? :)
כל השלושה נשמרים לוקאלית אצלכם על המחשב. זה נוח, זה מאפשר עבודה חלקה ורציפה. אבל לאורך זמן, נגיד חודש, מתחילים דברים מצחיקים. למשל אצלי הוא שמר הוראות איך לעבוד עם איזה סקיל ב4 קבצי זיכרון שונים ונכנס ללופים.
מה עושים? מנקים.
1. אחת ל-, בקשו מקלוד לעבור על שלושת הסוגים, למפות ולהציע תוכנית של סידור ומיזוג.
2. memory/ יתן לכם דרך לראות את שני הסוגים הראשונים בCLI אם יותר נוח לכם או לא זוכרים מה יש שם.
אצלי זה קריטי - תוסיפו לזה שבמקביל יש לי גם קבצים לפיצ׳ר או לתוכנית עליה עובדת בכל שלב נתון וקיבלתם מתכון להמון רעש.
אז תכירו איך קלוד קוד ״זוכר״ ותעבדו איתו נכון ותקבלו עבודה חלקה ומהירה הרבה יותר ותהיו שמחים כמו הכלב החמוד הזה 😎
ב3 ימים האחרונים כתבתי 2 פוסטים קצרים בלינקדאין:
1. על איך אני מנהלת memory בקלוד קוד
2. על סקיל שיצרתי שמסכם ומעביר קונטקסט מדויק לסשן הבא
ציפיתי לכמה לייקים ובמקום זה קיבלתי מבול משוגע של לייקים, שיתופים ואיזה 400 בקשות חברות, רובן מאנשי פיתוח. וזה ממש הפתיע אותי מסיבה אחת: שניהם טיפים שימושיים ומשתמשת בהם כל יום בפיתוח, כן, אבל הייתי בטוחה שכולם סוג של עובדים בצורה דומה??????
וזאת תזכורת בצורת *כאפה* שאני (ואולי חלק מכם) חיה בתוך בועה של המוח שלי שכוללת תכנות, החדשות האחרונות בעולם הAI והציוצים האחרונים של גיירמו ובוריס החמודים 😳😅
הם: וואי יש לך בתוכנה ממש מגדל של סוכנים שרצים על מודלים שונים ו orchestrator שמחליט את מי להריץ ואם התשובות של כל אחד היו טובות לפי התפקיד של כל אחד ולפי המתדולוגיה ואם להעביר או להחזיר ואז בסוף הכל זה מגיע ליוזר וחוסך לו ים זמן וגם מציע לו אקטיבית המון פעולות על בסיס העבודה שלו? זה בטח מה זה כיף לבנות דבר כזה!
הכיף (יש לי פיילוט עוד כמה ימים, אני עייפה. אבל זה כן כיף 😅):
*הסקיל הכי שימושי שבניתי לקלוד קוד + איך לבנות בעצמכם*
יש לי סקיל בשם Handover, שמפעילה בסוף כל סשן, שעוזר לי לתפור את הסשנים אחד לשני - הוא עובר על מה שעשיתי בסשן הפתוח, מכניס לזיכרון הרלוונטי מה שחשוב/למדנו, עושה קומיט למה שצריך, ומכין פלט מוכן לסשן הבא עם מה נסגר, מה באמצע, לקחים ספציפיים (לא גלובליים), שאלות פתוחות אלי, אילוצים שגיליתי וכו׳.
זה לא סתם מסמך סיכום - הוא מזקק את ה-5% שרלוונטים להמשך. בלי מסמך handover כזה, בתחילת הסשן הבא הagent יצטרך לקרוא מחדש המון מסמכים לא רלוונטים ולשאול אותי שוב שאלות, ובעיקר לאבד מידע חשוב. זה גם מכריח את ה-agent לעבור בעצמו על דברים שעשה בסשן ולפעמים הוא (ואני) מגלה דברים לא גמורים או בעיות. על הדרך הוא גם עושה קומיט, מעדכן את הזיכרונות הרלוונטים, וגם מכין לי מסמך handover לסשן הבא שהסוכן הבא קורא ומבין בפחות מ5 שניות.
הנה הפרומפט אם רוצים לבקש מקלוד קוד גם לבנות כזה:
I want you to set up a /handover slash command (or skill, or saved prompt, whichever fits how I use Claude) that I'll run at the end of every working session. When triggered, it should: 1. Survey what actually happened this session: run git status, git log since the session started, check for uncommitted changes, look at any tasks I marked done vs. in-flight. 2. Identify what's load-bearing for the next session: decisions made, constraints discovered, things half-finished, footguns I hit. Ignore pure execution noise. 3. If I keep persistent memory or notes files, update only the entries that future-me will need. Don't log the daily activity. 4. If there are uncommitted changes worth committing, ask before doing it. 5. Print a structured handover note at the end with four sections: - What shipped this session (commits, deploys) - What's still in flight (with enough context for a cold reader) - Watch-outs (gotchas, surprising state, broken assumptions) - Open questions for me The whole point is to filter aggressively. Most of a session is forgettable execution; the 5% worth carrying forward is what I want to preserve. The handover should be short enough that the next session reads it in under 30 seconds. Before you create anything, ask me where to install the file, what trigger word I want, and whether I have an existing memory/notes setup you should integrate with.
*הסקיל הכי שימושי שבניתי לקלוד קוד + איך לבנות בעצמכם*
יש לי סקיל בשם Handover, שמפעילה בסוף כל סשן, שעוזר לי לתפור את הסשנים אחד לשני - הוא עובר על מה שעשיתי בסשן הפתוח, מכניס לזיכרון הרלוונטי מה שחשוב/למדנו, עושה קומיט למה שצריך, ומכין פלט מוכן לסשן הבא עם מה נסגר, מה באמצע, לקחים ספציפיים (לא גלובליים), שאלות פתוחות אלי, אילוצים שגיליתי וכו׳.
זה לא סתם מסמך סיכום - הוא מזקק את ה-5% שרלוונטים להמשך. בלי מסמך handover כזה, בתחילת הסשן הבא הagent יצטרך לקרוא מחדש המון מסמכים לא רלוונטים ולשאול אותי שוב שאלות, ובעיקר לאבד מידע חשוב. זה גם מכריח את ה-agent לעבור בעצמו על דברים שעשה בסשן ולפעמים הוא (ואני) מגלה דברים לא גמורים או בעיות. על הדרך הוא גם עושה קומיט, מעדכן את הזיכרונות הרלוונטים, וגם מכין לי מסמך handover לסשן הבא שהסוכן הבא קורא ומבין בפחות מ5 שניות.
הנה הפרומפט אם רוצים לבקש מקלוד קוד גם לבנות כזה:
I want you to set up a /handover slash command (or skill, or saved prompt, whichever fits how I use Claude) that I'll run at the end of every working session. When triggered, it should: 1. Survey what actually happened this session: run git status, git log since the session started, check for uncommitted changes, look at any tasks I marked done vs. in-flight. 2. Identify what's load-bearing for the next session: decisions made, constraints discovered, things half-finished, footguns I hit. Ignore pure execution noise. 3. If I keep persistent memory or notes files, update only the entries that future-me will need. Don't log the daily activity. 4. If there are uncommitted changes worth committing, ask before doing it. 5. Print a structured handover note at the end with four sections: - What shipped this session (commits, deploys) - What's still in flight (with enough context for a cold reader) - Watch-outs (gotchas, surprising state, broken assumptions) - Open questions for me The whole point is to filter aggressively. Most of a session is forgettable execution; the 5% worth carrying forward is what I want to preserve. The handover should be short enough that the next session reads it in under 30 seconds. Before you create anything, ask me where to install the file, what trigger word I want, and whether I have an existing memory/notes setup you should integrate with.