הפודקאסט של מיכאל

פרק 43: קלוד קוד למתקדמים


Listen Later

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

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

בעצם סייען קוד זה understatement. קלוד קוד שחי בטרמינל זה אומר 2 דברים. אחד - שהוא יכול להריץ כל דבר אחר שחי בטרמינל, למשל imagemagick וffmpeg, או תוכנה שהרגע הורדת (והוא אפילו יריץ help– כדי ללמוד את הפקודות). והשני - שאפשר להדביק לו פלט מתוכנות אחרות (למשל cat sales.csv | claude) וגם להשתמש בפלט שלו לתוכנות אחרות (למשל docker ps | claude -p "תעשה רשימה של כל הקונטיינרים הדפוקים" | docker kill).

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

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

גם ה-setup המקומי חשוב. מצאתי שvscode (חינמי) עם 20% מהמסך לקבצים ותיקיות, 40% לקוד ו-40% לקלוד היא פריסה טובה. אפשר להוסיף עוד טרמינל למטה, ועכשיו אתה בקוקפיט של F35 בדרך להפציץ את מאנדיי. שיחה מימין, קבצים משמאל ופונקציות שאתה יכול לצחצח בקטנה או להשלים ידנית באמצע.

ההמלצה השניה היא לשחרר את הבלמים, אבל במידה. קלוד קוד מגיע מרוסן מאוד (כמו עולה חדש, מבקש אישור לכל פעולה ראשונה) או משוחרר כמו דוד רפי אחרי ערק וחצי, במצב yolo או dangerously-skip-permissions. מצאתי שלאפשר לו הכל, למעט פעולות force– או hard–, שינוי הרשאות או sudo זו שיטה מנצחת. מגדירים את זה בקובץ settings.json, ברמת הפרוייקט, ברמת המשתמש או ברמת המשתמש בפרוייקט.

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

אחד מהקבצים האלה, ה-CLAUDE.md הוא אולי הכי פחות מובן. לכאורה, זה readme, מורה נבוכים, אבל למי? רוב האנשים כותבים שם רומן ויקיפדיה בהמשכים. כל הארכיטקטורה, כל החוקים, כל ההעדפות, ואז תוהים למה קלוד שותה להם טוקנים, או שוכח דברים. ב-CLAUDE.md צריך מעט מאוד - שורה על מה אתה בונה, שורה על ה-stack הטכנולוגי, חמישה חוקים שאתה רוצה להחיל תמיד, למשל, טסטים להכל, שישאל המון שאלות, שיסביר לפני כל שינוי וזהו. השאר? skills. קודם כל זה מרשים, להגיד, אה בטח יש לי skill לזה, אבל בעיקר כי skills לא נדחפים בכל הרצה. הם נטענים רק כשקלוד חושב לזמן אותם, או כשאתה בוחר לזמן אותם עם סלאש.

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

לתבניות או תמונות שיושבות בתיקיית assets. אבל מה שהופך skill לשימושי היא תיקיית scripts - קוד שסוכנים יכולים להריץ, בצורה עקבית, מקומית עם פלט ידוע.

אז נניח ויצרת חבילה כזו, קראת לה api-route ותיארת: תוספת נתיב חדש ל-CRUD חדש בשרת. ה-skill הזה הופך ל-ToDo של כל המטלות שנוגעות לנתיב חדש. לוודא שהטבלה קיימת בדאטהבייס, שהסכמה שלו נבדקת בזמן ריצה, שהוא רושם כל נגיעה ב-access log, שהוא פולט בסוף עץ של כל הנתיבים וגם מעדכן קובץ OpenAPI ציבורי. הרווחנו אחידות ובעיקר העברנו את הידע למי שצריך. לקלוד אבל גם לג'וניר הבא בתור. הסקילים האלה צריכים להיות חלק מהפרויקט, אבל גם חלק מהארגון. במקום לכתוב הררי מסמכים ב-confluence, שאף אחד לא קורא, אני ממליץ לכל מחלקה, גם ל-gtm וגם ל-finance, לכתוב skillים קצרים שמתוחזקים בגיט. אגב יש המון סקילים בקהילה, כמו שיש המון נוזקות, היזהרו!

אבל Skills יש לכולם. לקלוד יש hooks - קוד דיטרמניסטי שירוץ תמיד, בלי לתפוס קונטקסט ומיד לפני או אחרי פעולה. בפתיחה של קלוד חדש, למשל, נורה אירוע, SessionStart - שאפשר לנצל כדי לשתות נגיד, את כל ה-Issues הפתוחים. בכתיבה של Prompt נורה אירוע, UserPromptSubmit - שאפשר לנצל כדי לוודא שמידע פרטי או מפתחות, לא דולפים החוצה למודל. אפשר גם לתפוס את התשובה ולהעבירה אותה formatter לפני שהיא נכתבת, לתת לך alert חמוד כשקלוד זקוק לאישור, לכתוב ל-audit log לפני כל שימוש ב-MCP Tool, להעתיק את כל הקונטקסט לקובץ לפני PreCompact. קלוד נותן גישה לעשרות אירועים כאלה ומאפשר, לקבל את פרטי האירוע ב-JSON, לענות לו בסקריפט ובקודי שגיאה, שעוצרים או ממשיכים את התהליך.

הוקים נותנים שליטה דטרמיניסטית במערכת LLM שהיא פרוביליסטית, אבל לא כל ה-hookים הם קוד. אפשר לשלוח אותם, יחד עם עוד context למודל שיחליט הוא מה לעשות, ואפילו להרים sub-agent שלם שיעשה פעולות ויחליט בעצמו. כן, hook שמריץ סוכן AI שבודק אם הסוכן הראשי פישל. סוג של inception.

sub-agent, הוא עותק, בעצם, של ה-agentic loop. מעין ״מיני קלוד״ שעובד על משימה מבודדת ומחזיר תשובה. למה זה טוב? קודם כל זה (לרוב) מהיר יותר. מאפשר לסוכנים לעבוד במקביל. אחד עושה backend, השני עושה front, השלישי מעדכן דוקומנטציה. הסיבה השניה - אפס context pollution. כשאתה מזמן סוכן שיבנה טסטים וידווח בחזרה, הוא עושה רק את זה. אין לו מושג מה היה לפני ומה קורה אחרי שהוא מת, והקונטקסט של הסוכן הראשי? נשאר נקי. אין לי ממש המלצה כי לאחרונה קלוד עושה את זה לבד. הוא יודע מתי אפשר למקבל משימה גדולה וישחרר סוכנים כמו רוטווילרים.

אחת המשימות האלה, plan, היא בעצמה sub-agent, מוגבל בכלים (לא צריך גישה לכתיבת קבצים למשל) עם מטרה - לחקור ולתכנן משימה ארוכה. plan או plan/ הוא אחלה למשימות שצריכות קצת יותר מחשבה. אפשר ללחוץ ctrl+g כדי לראות או לערוך את התוכנית המלאה, וגם לנקות את ה-context לפני שהוא מתחיל לקודד. אם אתם מוצאים עצמכם מתקנים הרבה אחרי plan, אז או שתכננתם גדול מדי, או שהכלי קטן עליכם. בפרק 42 הצעתי לעבור ל-spec-kit - מערכת תכנון רב שלבית, שהיא הרבה יותר מקיפה וממוסמכת..

ולא רק שניים או שלושה subagents. למי שרוצה לנצל כל דקת מסך שלו, קלוד מאפשרת לנהל גדודי סוכנים, או צבא של ג'וניורים, בשתי דרכים שונות.

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

הדרך השניה לעבודה מקבילית - teams. פיצ'ר נסיוני שפשוט מפצל סשנים טוב יותר. יש עדיין סשן אחד שפועל כראש צוות, אבל בניגוד ל-subagents שמתקשרים רק עם הראש צוות, ב-team הצוות מדבר גם עם עצמו. זה מהיר יותר, אבל כמו יום כיף צוותי גם קשקשני ובזבזני יותר. נתת לכל איש צוות תקציב לעבוד ולחקור, קח בחשבון שהוא יתפוס תחת ויפעיל סוכנים משלו. אפשר להכניס בירוקרטיה, לדרוש מכל חבר צוות plan, ולהתחיל לעבוד רק כשהראש צוות מרוצה מהתוכנית. גם אתה בתמונה, תוכל להצביע על כל חבר צוות ולפנות אליו ישירות - הוא instance של claude, ואתה, חביבי, מהנדל של מהנדלים.

זה פיצ'ר כל כך ניסיוני שהוא נעול מאחורי דגל EXPERIMENT. לדעתי הוא מפחיד. גם את ה-CFO שלך, ואולי גם את אנתרופיק.

נחזור לקונטקסט. אין דבר מעצבן יותר מלראות את bar השיחה מתמלא ואת claude עושה compaction. כמו עוזר טוב הוא יוצר סיכום של השיחה ומנקה היסטוריה, אבל אם תמתינו ל-90% יהיה פחות מקום לסכם את הכל כמו שצריך. אפשר לפתור את זה - או לשנות את הסף ל-80% או להפעיל compact/ בעצמך עם הוראות למשל: תתמקד ב-payload האחרון שהסכמנו עליו, ותשכח את זה שצעקתי עליך. אני מניח שאתם יודעים אבל compact לא שווה ל-clean. תנקו לגמרי כשאתם עוברים בין משימות לא קשורות, אחרת זה סתם מבלבל ומבזבז טוקנים.

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

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

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

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

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

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

...more
View all episodesView all episodes
Download on the App Store

הפודקאסט של מיכאלBy מיכאל לוגסי

  • 5
  • 5
  • 5
  • 5
  • 5

5

2 ratings


More shows like הפודקאסט של מיכאל

View all
גיקונומי by ראם שרמן ודורון ניר

גיקונומי

93 Listeners

עושים היסטוריה עם רן לוי Osim Historia With Ran Levi by רשת עושים היסטוריה

עושים היסטוריה עם רן לוי Osim Historia With Ran Levi

158 Listeners

חיות כיס Hayot Kiss by כאן | Kan

חיות כיס Hayot Kiss

147 Listeners

השבוע - פודקאסט הארץ by הארץ

השבוע - פודקאסט הארץ

184 Listeners

מנועי הכסף by כלכליסט

מנועי הכסף

37 Listeners

התשובה עם דורון פישלר Hatshuva With Doron Fishler by רשת עושים היסטוריה

התשובה עם דורון פישלר Hatshuva With Doron Fishler

191 Listeners

בזמן שעבדתם by mako מאקו

בזמן שעבדתם

104 Listeners

לשחרר את הדב by בית הפודיום

לשחרר את הדב

40 Listeners

אחד ביום by N12

אחד ביום

317 Listeners

הכותרת by שרון כידון | Be.po

הכותרת

117 Listeners

חוץ לארץ by הארץ

חוץ לארץ

82 Listeners

הפודקאסט של נדב פרי by All•in & Nadav Perry

הפודקאסט של נדב פרי

53 Listeners

וויקלי סינק by בית הפודיום

וויקלי סינק

20 Listeners

מיכה סטוקס מגיש: שוק ההון. בורסה. וול סטריט. השקעות. מסחר by מיכה סטוקס MICHA.STOCKS

מיכה סטוקס מגיש: שוק ההון. בורסה. וול סטריט. השקעות. מסחר

4 Listeners

הקרנף - עם יואב רבינוביץ׳ by בית הפודיום

הקרנף - עם יואב רבינוביץ׳

23 Listeners