AICODEAgentic Programming · 67723 · 2026-7

Week 2 · video 4 of 8 · transcript

Context and Memory

תרגום שנעשה בעזרת בינה מלאכותית.AI translation, not reviewed by a person.

0:00

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

0:23

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

0:43

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

1:03

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

1:23

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

1:38

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

1:58

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

2:19

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

2:42

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

3:00

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

3:17

הראשון הוא קובץ ההוראות. זה קובץ שנקרא CLAUDE.md, ואפשר לעבור עליו ולערוך אותו. הוא מסביר איך לעבוד במאגר הזה: הפקודות שבונות ובודקות אותו, המוסכמות שהקוד מקיים, איך הפרויקט בנוי, והכללים שאחרת הייתם מסבירים מחדש בתחילת כל סשן. אפשר להחזיק הוראות אישיות בתיקיית הבית שלכם, הוראות פרויקט משותפות במאגר, והערות פרויקט מקומיות בקובץ שאתם משאירים מחוץ ל-Git. Claude Code טוען יחד את הקבצים הרלוונטיים. כלי CLI סוכניים אחרים קוראים קובץ דומה בשם AGENTS.md. Claude Code קורא גם אותו, כשאין בפרויקט CLAUDE.md. כשיש בפרויקט את שניהם, שורת ייבוא אחת מכניסה אותו. נראה איך בעוד רגע.

4:05

השני הוא הזיכרון האוטומטי: הערות ש-Claude Code יכול לשמור תוך כדי העבודה, כמו תיקונים, העדפות, ועובדות על הפרויקט שקשה להסיק מהקוד. ההערות נמצאות תחת תיקיית הבית שלכם, בתיקייה נפרדת לכל פרויקט, עם קובץ אינדקס שנקרא MEMORY.md. מאתיים השורות הראשונות של האינדקס הזה נטענות בהפעלה, ויש גם תקרה לגודל שלו. הסוכן קורא את ההערות המפורטות כשצריך. כשאתם רואים בטרמינל "saved two memories", הוא כתב שם הערות. כשהוא מופעל, הזיכרון האוטומטי נטען לצד קבצי ההוראות שלכם. אפשר לבחון, לערוך או למחוק את שני סוגי הקבצים.

4:43

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

4:57

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

5:15

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

5:27

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

5:36

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

5:49

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

5:57

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

6:24

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

6:41

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

6:59

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

7:15

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

7:31

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

7:54

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

8:13

הדחיסה מסכמת שיחה ישנה יותר כדי שהרתמה תוכל להחליף כמות גדולה של היסטוריה בתיאור קצר יותר. חומר עדכני עשוי להישמר גם בנפרד. Claude Code עושה את זה אוטומטית כשהחלון מתקרב לגבול שלו, והפקודה סלאש compact עושה את זה לפי דרישה. אפשר להגיד לה מה לשמור, למשל סלאש compact: "focus on the auth bug".

8:35

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

8:56

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

9:16

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

9:41

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

10:09

יש עלות שנייה, והיא נוגעת לאיכות. מחקרים מראים שמודלים לא משתמשים בחלון ארוך באופן אחיד. מחקר ידוע בשם Lost in the Middle מיקם עובדה רלוונטית אחת במקומות שונים בהקשר ארוך. השליפה הייתה הטובה ביותר כשהעובדה הופיעה קרוב להתחלה או לסוף, וגרועה בבירור כשהיא הופיעה באמצע. מחקר עדכני יותר משנת 2025, שכיסה שמונה עשר מודלים, מצא שהביצועים נעשים פחות ופחות אמינים ככל שהקלט מתארך, אפילו במשימות פשוטות. כשיש יותר טקסט בחלון, יותר דברים מתחרים על תשומת הלב של המודל.

10:44

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

10:56

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

11:02

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

11:13

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

11:24

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

11:48

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

11:58

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

12:11

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

12:43

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

13:10

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

13:29

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

13:44

כדי לחזור לסשן האחרון שלכם בתיקייה הזאת, תפעילו את claude עם --continue, או פשוט -c. זה טוען את ההיסטוריה השמורה של הסשן הזה. אם התחלתם סשן נוסף מאז הניקוי, תשתמשו ברשימת ה-resume כדי לבחור את המוקדם יותר.

14:00

אם אתם רוצים סשן ישן יותר, --resume נותן לכם רשימה של הסשנים הקודמים לבחירה. ואם אתם כבר בתוך סשן, סלאש resume מעביר אתכם לסשן אחר בלי לצאת.

14:13

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

14:25

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

14:38

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

14:48

שני סוגי זיכרון עוברים בין סשנים. יש את קובץ ההוראות, CLAUDE.md, שאתם כותבים, ויש את הזיכרון האוטומטי, ש-Claude Code כותב לעצמו.

14:58

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

15:05 of video · 1,966 words · 49 slides← Back to the video