📌 נקיון חג להרגלים ישנים (סיכום וובינר)
"את זה אני מספר לך אחרי חצי שנה שאנחנו כותבים Rule-ים" מספר חבר על הקלוד קוד אצלו שהתחיל לעבוד עצמאית ולפתור נכון את כל הבאגים בעולם.
ואני מאמין לקטע של החצי שנה כתיבה ושיפור קובץ CLAUDE.md. אבל השאלה האם זה היה הדבר היחיד שהשפיע?
מודלים חדשים מגיעים עם יכולות חדשות, הם רואים דברים שמודלים קודמים לא ראו. גרסאות חדשות של ה Harness מגיעות עם יכולות חדשות ומודלים שרצים בתוכן יראו דברים שבגרסאות ישנות הם לא ראו. אותם כללים שכתבתם ב CLADUE.md שהיו ממש נכונים לפני חצי שנה אולי כבר לא חשובים היום, יותר מזה, אולי הם מזיקים.
אלה מספר טכניקות שראינו בוובינר היום כדי לנקות תוספים ישנים, לחסוך טוקנים ואולי לשפר את התוצאות.
1. קונטקסט ריק - הפקודה
2. פקודת
3. סוכני קידוד אוהבים לכתוב בדיקות הרבה יותר ממה שצריך. בלנגלטס יש לי כבר אלף בדיקות ואני לא בטוח כמה הן יעילות. שלחו את סוכן הקידוד למשימה לצמצם את מספר הבדיקות בפרויקט או כתבו בעצמכם מספר קטן של בדיקות חשובות במקום עשרות הבדיקות שהוא כותב. כל בדיקה שאנחנו משאירים במערכת היא בזבוז של טוקנים עבור כל משימה כי הסוכן רגיל להריץ את כל הבדיקות, לחקור כשלונות ולתקן (גם כשלתיקון אין ערך עבורנו).
4. סקילים לא מתעדכנים אוטומטית. אם התקנתם סקיל לפני חצי שנה שמסביר לסוכן איך לעבוד עם איזה כלי אבל עכשיו הכלי קיבל עדכון והסקיל לא אז הסוכן עלול לנסות את השיטה הישנה שכתובה בסקיל, להכשל ואז לבדוק מחדש ולמצוא את הדרך הנכונה. אם לא הסתכלתם בתמליל השיחה אפילו לא תדעו מזה.
5. שרתי MCP לא רק תופסים מקום בקונטקסט הם גם מכתיבים התנהגות. מספיק שיש לי את שרת ה MCP של כלי הפיתוח של כרום והסוכן ישתמש בו כדי לוודא בדפדפן כל שינוי, גם כשלא ממש צריך. נסו למחוק שרתי MCP ולהחליף אותם בכלי שורת פקודה שמותקנים על המכונה והוראה ספציפית להשתמש בכלים, בדוגמה של הדפדפן ראינו איך כשמתקינים agent-browser במקום devtools mcp הסוכן עובר להפעיל דפדפן רק לפי דרישה.
6. קובץ CLAUDE.md שהשקעתם חצי שנה של עבודה בכתיבה שלו יכול להיות חוב טכני. בוריס צ'רני, היוצר של קלוד קוד, המליץ למחוק את הקובץ פעם בחצי שנה בגלל התקדמות של המודל. אפילו אם אתם חושבים שהקובץ כולל פרטים חשובים על שיטת העבודה האהובה עליכם אולי אחרי שתמחקו אותו תגלו שהסוכן ממילא מצליח לזהות את שיטת העבודה על בסיס הקוד הקיים.
והכי חשוב תסתכלו על תמליל השיחה, חפשו שם איזה כלים הסוכן הפעיל ונסו להבין מה דחף את הסוכן להתנהגות שנבחרה, מה ההתנהגות שאתם רוצים שהסוכן יבחר ואיך אפשר לדחוף את הסוכן לכיוון ההתנהגות שאתם רוצים.
"את זה אני מספר לך אחרי חצי שנה שאנחנו כותבים Rule-ים" מספר חבר על הקלוד קוד אצלו שהתחיל לעבוד עצמאית ולפתור נכון את כל הבאגים בעולם.
ואני מאמין לקטע של החצי שנה כתיבה ושיפור קובץ CLAUDE.md. אבל השאלה האם זה היה הדבר היחיד שהשפיע?
מודלים חדשים מגיעים עם יכולות חדשות, הם רואים דברים שמודלים קודמים לא ראו. גרסאות חדשות של ה Harness מגיעות עם יכולות חדשות ומודלים שרצים בתוכן יראו דברים שבגרסאות ישנות הם לא ראו. אותם כללים שכתבתם ב CLADUE.md שהיו ממש נכונים לפני חצי שנה אולי כבר לא חשובים היום, יותר מזה, אולי הם מזיקים.
אלה מספר טכניקות שראינו בוובינר היום כדי לנקות תוספים ישנים, לחסוך טוקנים ואולי לשפר את התוצאות.
1. קונטקסט ריק - הפקודה
/context בקלוד קוד מראה את כל התוספים שתופסים מקום בקונטקסט. כשמפעילים את קלוד קוד במצב בטוח עם claude --safe-mode קלוד קוד לא טוען תוספים כלל ומתעלם מקובץ CLAUDE.md. נסו להפעיל את קלוד קוד במצב בטוח לאותה משימה שקודם הפעלתם במצב הרגיל ושימו לב לטוקנים. האם קיבלתם תוצאה דומה במחיר יותר נמוך? אם כן אולי שווה לנקות.2. פקודת
/plugins בקלוד קוד מראה את כל הפלאגינים שמותקנים. לכו לטאב Installed ותוכלו לראות איזה תוספים לא היו בשימוש בזמן האחרון. אלה מועמדים טובים להסרה.3. סוכני קידוד אוהבים לכתוב בדיקות הרבה יותר ממה שצריך. בלנגלטס יש לי כבר אלף בדיקות ואני לא בטוח כמה הן יעילות. שלחו את סוכן הקידוד למשימה לצמצם את מספר הבדיקות בפרויקט או כתבו בעצמכם מספר קטן של בדיקות חשובות במקום עשרות הבדיקות שהוא כותב. כל בדיקה שאנחנו משאירים במערכת היא בזבוז של טוקנים עבור כל משימה כי הסוכן רגיל להריץ את כל הבדיקות, לחקור כשלונות ולתקן (גם כשלתיקון אין ערך עבורנו).
4. סקילים לא מתעדכנים אוטומטית. אם התקנתם סקיל לפני חצי שנה שמסביר לסוכן איך לעבוד עם איזה כלי אבל עכשיו הכלי קיבל עדכון והסקיל לא אז הסוכן עלול לנסות את השיטה הישנה שכתובה בסקיל, להכשל ואז לבדוק מחדש ולמצוא את הדרך הנכונה. אם לא הסתכלתם בתמליל השיחה אפילו לא תדעו מזה.
5. שרתי MCP לא רק תופסים מקום בקונטקסט הם גם מכתיבים התנהגות. מספיק שיש לי את שרת ה MCP של כלי הפיתוח של כרום והסוכן ישתמש בו כדי לוודא בדפדפן כל שינוי, גם כשלא ממש צריך. נסו למחוק שרתי MCP ולהחליף אותם בכלי שורת פקודה שמותקנים על המכונה והוראה ספציפית להשתמש בכלים, בדוגמה של הדפדפן ראינו איך כשמתקינים agent-browser במקום devtools mcp הסוכן עובר להפעיל דפדפן רק לפי דרישה.
6. קובץ CLAUDE.md שהשקעתם חצי שנה של עבודה בכתיבה שלו יכול להיות חוב טכני. בוריס צ'רני, היוצר של קלוד קוד, המליץ למחוק את הקובץ פעם בחצי שנה בגלל התקדמות של המודל. אפילו אם אתם חושבים שהקובץ כולל פרטים חשובים על שיטת העבודה האהובה עליכם אולי אחרי שתמחקו אותו תגלו שהסוכן ממילא מצליח לזהות את שיטת העבודה על בסיס הקוד הקיים.
והכי חשוב תסתכלו על תמליל השיחה, חפשו שם איזה כלים הסוכן הפעיל ונסו להבין מה דחף את הסוכן להתנהגות שנבחרה, מה ההתנהגות שאתם רוצים שהסוכן יבחר ואיך אפשר לדחוף את הסוכן לכיוון ההתנהגות שאתם רוצים.
👍3
📌 היציאה של שופיפיי מריאקט נייטיב והאם זה צריך להשפיע עלינו?
שופיפיי הודיעו על מיגרציה של אפליקציות המובייל שלהם מריאקט נייטיב לאפליקציות נייטיב רגילות, סוויפט וקוטלין
https://shopify.engineering/back-to-native
וזה מעניין כי לשופיפיי היה כח פיתוח כמעט בלתי מוגבל, זו חברה של שלושת אלפים מפתחים. הבחירה לא באה מאילוץ אלא מהבנת ההזדמנות והיא מלמדת אותנו הרבה על העקרונות של פיתוח תוכנה ומה AI שינה.
הבעיה שריאקט נייטיב פתר לשופיפיי ולחברות רבות אחרות היא לא כל כך בעיית כח אדם אלא בעיית אחידות. אם אפליקציית אייפון דורשת 5 מפתחים ואפליקציית אנדרואיד 5 אז אפשר היה לדמיין שאפליקציית React Native תדרוש 5 מפתחים ותחסוך חצי מכח האדם. זה לא עבד ככה כי היית צריך 5 מפתחים לצוות "תשתיות משותפות" או "פלאגינים", כלומר האנשים שדואגים שריאקט נייטיב על שתי הפלטפורמות באמת תרוץ מהר ותתאים לחווית המשתמש שאתה רוצה לייצר.
עם React Native אפליקציית האייפון ואפליקציית האנדרואיד מפותחות על ידי אותו צוות ולכן שומרות על אחידות בחוויה ובפיצ'רים.
היום עם AI זה שוב יהיה צוות אחד שבונה את האפליקציות, צווות מובייל - ולטענת שופיפיי לא תהיה להם בעיה לבנות לשתי הפלטפורמות. הרבה יותר קל עם AI למפתחים להכנס לקוד בשפה שאנחנו לא מכירים, לתקן, לשנות לתחזק ולהוסיף. זה כן אומר שאנשים בצוות יצטרכו להכיר טוב יותר את שתי הפלטפורמות, מפתחים כבר לא יוכלו להגיד "אני איש אייפון" או "אני איש אנדרואיד" ואולי יחזיקו במספר מכשירים. מבחינת אחידות הדרישה תהיה שכל פיצ'ר הם מבקשים מה AI לבנות לשתי הפלטפורמות ומקווים שה AI עם סט הוראות נכון יצליח לגשר על הפערים.
החסרון בפרידה מריאקט נייטיב נשאר הצורך לעבור דרך אפל וגוגל בכל עדכון אבל אולי ברמת הבשלות של Shopify זאת לא בעיה משמעותית עבורם.
מה שבטוח שפרידה זו מסמנת משהו לגבי הכיוון הכללי של התעשייה ועתיד פריימוורקים שתפקידן לייצר חווית מפתח טובה יותר על חשבון חווית המשתמש. האם זה גם תהליך שבסופו נפרד מריאקט בדפדפנים? עדיין מוקדם לדעת.
שופיפיי הודיעו על מיגרציה של אפליקציות המובייל שלהם מריאקט נייטיב לאפליקציות נייטיב רגילות, סוויפט וקוטלין
https://shopify.engineering/back-to-native
וזה מעניין כי לשופיפיי היה כח פיתוח כמעט בלתי מוגבל, זו חברה של שלושת אלפים מפתחים. הבחירה לא באה מאילוץ אלא מהבנת ההזדמנות והיא מלמדת אותנו הרבה על העקרונות של פיתוח תוכנה ומה AI שינה.
הבעיה שריאקט נייטיב פתר לשופיפיי ולחברות רבות אחרות היא לא כל כך בעיית כח אדם אלא בעיית אחידות. אם אפליקציית אייפון דורשת 5 מפתחים ואפליקציית אנדרואיד 5 אז אפשר היה לדמיין שאפליקציית React Native תדרוש 5 מפתחים ותחסוך חצי מכח האדם. זה לא עבד ככה כי היית צריך 5 מפתחים לצוות "תשתיות משותפות" או "פלאגינים", כלומר האנשים שדואגים שריאקט נייטיב על שתי הפלטפורמות באמת תרוץ מהר ותתאים לחווית המשתמש שאתה רוצה לייצר.
עם React Native אפליקציית האייפון ואפליקציית האנדרואיד מפותחות על ידי אותו צוות ולכן שומרות על אחידות בחוויה ובפיצ'רים.
היום עם AI זה שוב יהיה צוות אחד שבונה את האפליקציות, צווות מובייל - ולטענת שופיפיי לא תהיה להם בעיה לבנות לשתי הפלטפורמות. הרבה יותר קל עם AI למפתחים להכנס לקוד בשפה שאנחנו לא מכירים, לתקן, לשנות לתחזק ולהוסיף. זה כן אומר שאנשים בצוות יצטרכו להכיר טוב יותר את שתי הפלטפורמות, מפתחים כבר לא יוכלו להגיד "אני איש אייפון" או "אני איש אנדרואיד" ואולי יחזיקו במספר מכשירים. מבחינת אחידות הדרישה תהיה שכל פיצ'ר הם מבקשים מה AI לבנות לשתי הפלטפורמות ומקווים שה AI עם סט הוראות נכון יצליח לגשר על הפערים.
החסרון בפרידה מריאקט נייטיב נשאר הצורך לעבור דרך אפל וגוגל בכל עדכון אבל אולי ברמת הבשלות של Shopify זאת לא בעיה משמעותית עבורם.
מה שבטוח שפרידה זו מסמנת משהו לגבי הכיוון הכללי של התעשייה ועתיד פריימוורקים שתפקידן לייצר חווית מפתח טובה יותר על חשבון חווית המשתמש. האם זה גם תהליך שבסופו נפרד מריאקט בדפדפנים? עדיין מוקדם לדעת.
Shopify
Native is now the future of mobile at Shopify (2026) - Shopify
Coding agents changed what it costs to build mobile apps twice. Here’s why Shopify is moving from React Native back to Swift and Kotlin.
📌 מ"טוב" ל"מעולה"
התחלתי אפליקציית קונספט חדשה עם אסטרה 6. בינתיים התוצאה מדהימה (אשתף בקרוב) אבל יותר חשוב התהליך - המערכת נבנית בקצב מהיר בלי שקראתי שורת קוד אחת, הכל בממשק השיחה.
אני מבין למה אנשים מנסים את זה ויוצאים עם הרגשה שקוד הולך להיות זכרון היסטורי ובני אדם לא יצטרכו לדבר יותר בשפה הזו. אני מדבר עם ה AI והוא כותב לי
ובאמת הנושא תוקן והפיצ'ר החדש עובד.
אך יש עדיין שני פערים מורגשים בתהליך:
1. המערכת עובדת טוב אבל לא מעולה. המעבר למעולה קשה. כל חלק במערכת שאני רוצה שיעבוד מעולה, כלומר טוב יותר מהסטנדרטי, דורש תשומת לב והנחיות מדויקות. אני עדיין מצליח לעשות את זה רק דרך ממשק שיחה אבל כנראה בגלל שהמערכת עדיין קטנה. מנסיון עם מערכות גדולות יש נקודה שבה ה"מעולה" דורש כניסה לקוד וכתיבת הנחיות מדויקות שמתיחסות למצב הקיים.
2. כל תיקון מצליח אבל בתוך המערכת כבר מתחילים פערים. אם יש כמה מקומות שקשורים לאותו נושא ואני מתקן אחד מהם הסוכן לא ישים לב לבד שצריך גם את האחרים. הוא יסדר את זה כשאפנה את תשומת לבו ואם זכרתי לציין מההתחלה בהוראות את כל המקומות שמושפעים מהשינוי כמובן שכולם יהיו בסדר אבל זה עדיין שם עליי יותר אחריות ממה שרציתי.
קשה לדעת איך יראה העתיד אבל אם לשפוט לפי המגבלות של ההווה אפשר לזהות את ההזדמנויות והמיומנויות שמפתחי תוכנה יצטרכו לשפר. הראשונה היא המעבר מ"טוב" ל"מעולה". היכולת לזהות את הפער בין איך שהמערכת עובדת היום למה שאפשרי ולהביא את הסוכן בעזרת פרומפט מדויק לסגור את הפער הזה. במערכת קונספט קטנה זה עובד לי בלי לקרוא קוד, תהיה נקודה שכבר אצטרך להתיחס לשמות קלאסים ופונקציות בפרומפטים. כנראה שעם הזמן הנקודה הזאת תתרחק. להערכתי פה יישארו מעט מאוד מפתחים.
מיומנות שניה היא היכולת לגרום לסוכן לעבוד טוב יותר. להבין מה לכתוב בקבצי ההוראות, איזה סקילים להתקין, איך לחסוך טוקנים, איך להפעיל מספר סוכנים במקביל ולסנכרן ביניהם, איך להקים תשתית סוכנים שמשתפים ידע במלים אחרות איך להקים ולשפר את מפעל התוכנה שמייצר את כל העבודה המהירה. אלה האזורים שימשכו הרבה אנשים חדשים ופותחים הזדמנויות למי שרוצה להכנס לתעשייה.
התוכנה של העתיד תורכב משילוב, חלק גדול ממנה ייכתב במפעל תוכנה על ידי סוכנים שיכתבו קוד סטנדרטי וצפוי. צפוי במובן הטוב - כמו שאנחנו יודעים לייצר היום רכיבים בתעשייה באינסוף תחומים אחרים.
החלק השני שלה יהיה ה"יוצא דופן", קוד כל כך טוב שדורש תשומת לב לפרטים ומספק חווית משתמש מותאמת אישית למוצר ולקהל היעד. זה מה שמכונה היום "taste" בתעשייה והוא מתיחס ליכולת של מפתחים לבחור מימוש שבדיוק מתאים לבעיה ולאופי המערכת. סוכנים יכולים להיאבק בבעיה שעות ואז פרומפט אחד מדויק דוחף אותם לכיוון פתרון טוב בהרבה.
התחלתי אפליקציית קונספט חדשה עם אסטרה 6. בינתיים התוצאה מדהימה (אשתף בקרוב) אבל יותר חשוב התהליך - המערכת נבנית בקצב מהיר בלי שקראתי שורת קוד אחת, הכל בממשק השיחה.
אני מבין למה אנשים מנסים את זה ויוצאים עם הרגשה שקוד הולך להיות זכרון היסטורי ובני אדם לא יצטרכו לדבר יותר בשפה הזו. אני מדבר עם ה AI והוא כותב לי
I fixed both issues. The service is running, and all 183 tests pass.
ובאמת הנושא תוקן והפיצ'ר החדש עובד.
אך יש עדיין שני פערים מורגשים בתהליך:
1. המערכת עובדת טוב אבל לא מעולה. המעבר למעולה קשה. כל חלק במערכת שאני רוצה שיעבוד מעולה, כלומר טוב יותר מהסטנדרטי, דורש תשומת לב והנחיות מדויקות. אני עדיין מצליח לעשות את זה רק דרך ממשק שיחה אבל כנראה בגלל שהמערכת עדיין קטנה. מנסיון עם מערכות גדולות יש נקודה שבה ה"מעולה" דורש כניסה לקוד וכתיבת הנחיות מדויקות שמתיחסות למצב הקיים.
2. כל תיקון מצליח אבל בתוך המערכת כבר מתחילים פערים. אם יש כמה מקומות שקשורים לאותו נושא ואני מתקן אחד מהם הסוכן לא ישים לב לבד שצריך גם את האחרים. הוא יסדר את זה כשאפנה את תשומת לבו ואם זכרתי לציין מההתחלה בהוראות את כל המקומות שמושפעים מהשינוי כמובן שכולם יהיו בסדר אבל זה עדיין שם עליי יותר אחריות ממה שרציתי.
קשה לדעת איך יראה העתיד אבל אם לשפוט לפי המגבלות של ההווה אפשר לזהות את ההזדמנויות והמיומנויות שמפתחי תוכנה יצטרכו לשפר. הראשונה היא המעבר מ"טוב" ל"מעולה". היכולת לזהות את הפער בין איך שהמערכת עובדת היום למה שאפשרי ולהביא את הסוכן בעזרת פרומפט מדויק לסגור את הפער הזה. במערכת קונספט קטנה זה עובד לי בלי לקרוא קוד, תהיה נקודה שכבר אצטרך להתיחס לשמות קלאסים ופונקציות בפרומפטים. כנראה שעם הזמן הנקודה הזאת תתרחק. להערכתי פה יישארו מעט מאוד מפתחים.
מיומנות שניה היא היכולת לגרום לסוכן לעבוד טוב יותר. להבין מה לכתוב בקבצי ההוראות, איזה סקילים להתקין, איך לחסוך טוקנים, איך להפעיל מספר סוכנים במקביל ולסנכרן ביניהם, איך להקים תשתית סוכנים שמשתפים ידע במלים אחרות איך להקים ולשפר את מפעל התוכנה שמייצר את כל העבודה המהירה. אלה האזורים שימשכו הרבה אנשים חדשים ופותחים הזדמנויות למי שרוצה להכנס לתעשייה.
התוכנה של העתיד תורכב משילוב, חלק גדול ממנה ייכתב במפעל תוכנה על ידי סוכנים שיכתבו קוד סטנדרטי וצפוי. צפוי במובן הטוב - כמו שאנחנו יודעים לייצר היום רכיבים בתעשייה באינסוף תחומים אחרים.
החלק השני שלה יהיה ה"יוצא דופן", קוד כל כך טוב שדורש תשומת לב לפרטים ומספק חווית משתמש מותאמת אישית למוצר ולקהל היעד. זה מה שמכונה היום "taste" בתעשייה והוא מתיחס ליכולת של מפתחים לבחור מימוש שבדיוק מתאים לבעיה ולאופי המערכת. סוכנים יכולים להיאבק בבעיה שעות ואז פרומפט אחד מדויק דוחף אותם לכיוון פתרון טוב בהרבה.
👍4
📌 הזמנה לקורס מובילי AI בפיתוח תוכנה
העבודה עם AI שינתה את הכללים. או לפחות כך זה הרגיש. כמעט כל פיצ׳ר במערכת אפשר לקבל היום בלחיצת כפתור, אבל והתוצאות בשטח? יותר מפתחים עובדים יותר קשה על מערכות פחות יציבות.
אין ספק שאנחנו מייצרים יותר קוד אבל שורות קוד מודדות כמות ולא ערך.
אין ספק שאנחנו פותרים יותר טיקטים, אבל כמה מהם נפתחו רק בגלל שטויות שה AI פספס?
ההזדמנות של AI למפתחים היא פיתוח קוד טוב יותר מהר יותר תוך שיפור הרמה המקצועית שלנו. ההזדמנות של AI לצוותי פיתוח היא שיפור האחידות של המערכות, יצירת חווית משתמש טובה יותר, סינכרון טוב יותר בין המפתחים ושילוב תהליכי עבודה אוטונומיים.
בקורס מובילי AI אלמד אתכם איך לקחת אחריות על עבודת הסוכן. לנווט, לכוון ולבחור. להיות המפתחים שמרוויחים מהיכולות החדשות במקום אלה שמתלוננים ש"פיתוח זה כבר לא מה שהיה". המיומנות והידע שלכם לא הולכים להיעלם, להיפך, הם קריטיים להצלחה ולהנאה מהעולם החדש של פיתוח תוכנה.
לפני החפירות על הסילבוס זה הלינק לדף הקורס:
https://www.tocode.co.il/genai_course
תוכלו למצוא שם בצד שמאל למטה סוכנת AI ששילבתי ממש לכבוד הקורס הזה ושתעשה כמיטב יכולתה לענות על כל שאלה.
✏ למי הקורס מיועד
הקורס מיועד למפתחי תוכנה שכבר יודעים לכתוב קוד ורצוי כבר עובדים בתעשייה עם AI. הוא מתאים לכם אם אתם:
1. כבר משתמשים ב AI כדי לכתוב קוד כולל קוד שמגיע לפרודקשן.
2. מרגישים לפעמים שקשה לעמוד בקצב או להבין את הקוד שה AI כותב. במיוחד שהדרישות מכם סותרות, מצד אחד לתת ל AI לכתוב קוד ולרוץ מהר, מצד שני לא לעשות טעויות ולהכיר את המערכת לעומק.
3. מרגישים שהקוד שאתם מכניסים למערכת לא תואם לסטנדרטים שאתם רגילים אליהם או שהיו לכם לפני תקופת ה AI.
4. מרגישים שהיכולות שלכם לא מנוצלות ונשחקות.
5. מרגישים שאתם מוציאים על AI יותר מדי ביחס לתמורה שאתם מקבלים ובטח ביחס למה שכולם מפרסמים ברשתות.
✏ מטרת הקורס
בקורס מובילי AI בפיתוח תוכנה אתן לכם את הפריימוורק המנטלי כדי שתוכלו לקחת מחדש את השליטה והאחריות על הפיתוח ותראו שפיתוח עם AI הוא יותר מהנה, יותר מאתגר ויותר מלמד מכל עבודה שעשיתם בעבר.
תלמדו לבנות לעצמכם ולצוות שלכם תהליכי עבודה שמתאימים לכם ולשפר אותם ככל שכלים חדשים ומודלים חדשים יוצאים. תלמדו מה לחפש בכלים החדשים ואיך להתאים תמהיל של כלים שבדיוק ישתלב עם שיטת העבודה והמערכת שלכם.
תלמדו מה חשוב למדוד ואיך להעריך את התרומה האמיתית של AI לתהליך הפיתוח אצלכם.
והכי חשוב תקבלו את הביטחון לנסות - לנסות כלים חדשים, לנסות שיטות עבודה חדשות ולבחור מה שנכון עבורכם ועבור המערכת שלכם.
✏ איך זה עובד
הקורס בנוי מ-5 מודולים שמתאימים ל-5 שבועות לימוד. כל שבוע יתחיל במפגש 4 שעות זום ביום ראשון בבוקר ואת הקלטות המפגש הזה אני אשלח מיד כשיסתיים כך שתוכלו לבחור אם להשתתף בזום או לצפות בהקלטה בזמן שלכם.
לאורך חמשת השבועות תהיה לנו קבוצת סלאק סגורה בה תוכלו לשאול שאלות ולשתף כך שגם אם לא באתם לזום ואתם רואים את ההקלטה אפשר לשאול בסלאק על כל נושא שעלה שם ונפתח שיחה עליו.
יחד עם ההקלטה אני שולח גם דפי תרגול כל שבוע על נושאי אותו שבוע. התרגול מיועד ללימוד עצמי והרחבה ותוכלו לשתף את הפתרונות שלכם בסלאק כדי לקבל משוב והצעות לשיפור.
פיתוח הוא ספורט קבוצתי ובמהלך הקורס אציע כיוונים שתוכלו ליישם בארגון שלכם, אשתף הצלחות שהיו לי ואשמח לשמוע על הנסיונות שלכם ולעזור לכם ליישם את הטכניקות אצלכם בצוות.
הקורס מקיף, מעמיק וייתן לכם את כל הידע והכלים שתצטרכו כדי להוביל את הפיתוח בשילוב AI בארגונים שלכם היום ובעתיד.
סילבוס מפורט, מחיר, תאריך פתיחה ובוט ייעוץ מוטמע מחכים לכם בדף הקורס בקישור:
https://www.tocode.co.il/genai_course
העבודה עם AI שינתה את הכללים. או לפחות כך זה הרגיש. כמעט כל פיצ׳ר במערכת אפשר לקבל היום בלחיצת כפתור, אבל והתוצאות בשטח? יותר מפתחים עובדים יותר קשה על מערכות פחות יציבות.
אין ספק שאנחנו מייצרים יותר קוד אבל שורות קוד מודדות כמות ולא ערך.
אין ספק שאנחנו פותרים יותר טיקטים, אבל כמה מהם נפתחו רק בגלל שטויות שה AI פספס?
ההזדמנות של AI למפתחים היא פיתוח קוד טוב יותר מהר יותר תוך שיפור הרמה המקצועית שלנו. ההזדמנות של AI לצוותי פיתוח היא שיפור האחידות של המערכות, יצירת חווית משתמש טובה יותר, סינכרון טוב יותר בין המפתחים ושילוב תהליכי עבודה אוטונומיים.
בקורס מובילי AI אלמד אתכם איך לקחת אחריות על עבודת הסוכן. לנווט, לכוון ולבחור. להיות המפתחים שמרוויחים מהיכולות החדשות במקום אלה שמתלוננים ש"פיתוח זה כבר לא מה שהיה". המיומנות והידע שלכם לא הולכים להיעלם, להיפך, הם קריטיים להצלחה ולהנאה מהעולם החדש של פיתוח תוכנה.
לפני החפירות על הסילבוס זה הלינק לדף הקורס:
https://www.tocode.co.il/genai_course
תוכלו למצוא שם בצד שמאל למטה סוכנת AI ששילבתי ממש לכבוד הקורס הזה ושתעשה כמיטב יכולתה לענות על כל שאלה.
✏ למי הקורס מיועד
הקורס מיועד למפתחי תוכנה שכבר יודעים לכתוב קוד ורצוי כבר עובדים בתעשייה עם AI. הוא מתאים לכם אם אתם:
1. כבר משתמשים ב AI כדי לכתוב קוד כולל קוד שמגיע לפרודקשן.
2. מרגישים לפעמים שקשה לעמוד בקצב או להבין את הקוד שה AI כותב. במיוחד שהדרישות מכם סותרות, מצד אחד לתת ל AI לכתוב קוד ולרוץ מהר, מצד שני לא לעשות טעויות ולהכיר את המערכת לעומק.
3. מרגישים שהקוד שאתם מכניסים למערכת לא תואם לסטנדרטים שאתם רגילים אליהם או שהיו לכם לפני תקופת ה AI.
4. מרגישים שהיכולות שלכם לא מנוצלות ונשחקות.
5. מרגישים שאתם מוציאים על AI יותר מדי ביחס לתמורה שאתם מקבלים ובטח ביחס למה שכולם מפרסמים ברשתות.
✏ מטרת הקורס
בקורס מובילי AI בפיתוח תוכנה אתן לכם את הפריימוורק המנטלי כדי שתוכלו לקחת מחדש את השליטה והאחריות על הפיתוח ותראו שפיתוח עם AI הוא יותר מהנה, יותר מאתגר ויותר מלמד מכל עבודה שעשיתם בעבר.
תלמדו לבנות לעצמכם ולצוות שלכם תהליכי עבודה שמתאימים לכם ולשפר אותם ככל שכלים חדשים ומודלים חדשים יוצאים. תלמדו מה לחפש בכלים החדשים ואיך להתאים תמהיל של כלים שבדיוק ישתלב עם שיטת העבודה והמערכת שלכם.
תלמדו מה חשוב למדוד ואיך להעריך את התרומה האמיתית של AI לתהליך הפיתוח אצלכם.
והכי חשוב תקבלו את הביטחון לנסות - לנסות כלים חדשים, לנסות שיטות עבודה חדשות ולבחור מה שנכון עבורכם ועבור המערכת שלכם.
✏ איך זה עובד
הקורס בנוי מ-5 מודולים שמתאימים ל-5 שבועות לימוד. כל שבוע יתחיל במפגש 4 שעות זום ביום ראשון בבוקר ואת הקלטות המפגש הזה אני אשלח מיד כשיסתיים כך שתוכלו לבחור אם להשתתף בזום או לצפות בהקלטה בזמן שלכם.
לאורך חמשת השבועות תהיה לנו קבוצת סלאק סגורה בה תוכלו לשאול שאלות ולשתף כך שגם אם לא באתם לזום ואתם רואים את ההקלטה אפשר לשאול בסלאק על כל נושא שעלה שם ונפתח שיחה עליו.
יחד עם ההקלטה אני שולח גם דפי תרגול כל שבוע על נושאי אותו שבוע. התרגול מיועד ללימוד עצמי והרחבה ותוכלו לשתף את הפתרונות שלכם בסלאק כדי לקבל משוב והצעות לשיפור.
פיתוח הוא ספורט קבוצתי ובמהלך הקורס אציע כיוונים שתוכלו ליישם בארגון שלכם, אשתף הצלחות שהיו לי ואשמח לשמוע על הנסיונות שלכם ולעזור לכם ליישם את הטכניקות אצלכם בצוות.
הקורס מקיף, מעמיק וייתן לכם את כל הידע והכלים שתצטרכו כדי להוביל את הפיתוח בשילוב AI בארגונים שלכם היום ובעתיד.
סילבוס מפורט, מחיר, תאריך פתיחה ובוט ייעוץ מוטמע מחכים לכם בדף הקורס בקישור:
https://www.tocode.co.il/genai_course
📌 האמת של פיתוח תוכנה (זה לקח שבוע)
פרויקט חדש. סוכן כותב קוד. כל פיצ'ר שאני מבקש עובד ומהר. מכונת הקסמים.
אחרי שבוע התחילו הבאגים.
כשמסתכלים על הקוד מבינים למה. הקוד מבולגן, פונקציונאליות כתובה בכמה מקומות, פונקציות ארוכות עם המון if/else-ים, כתובת ונתיבים מפוזרים בקוד עצמו. טלאי על טלאי כי כך סוכנים עובדים.
כמה רחוק אפשר להגיע במערכת טלאי על טלאי? תלוי כמה גדולים הפיצ׳רים שאתם מבקשים. לי זה לקח שבוע וכעשרת אלפים שורות קוד להתחיל לראות את האשליה מתנפצת. לכם אולי זה ייקח קצת יותר או קצת פחות.
אנשים מדברים על קפיצה במודלים, קפיצה ביכולות, אבל זאת לא הקפיצה שאנחנו צריכים. עשרת אלפים שורות קוד זה מדהים. לפני שנה הם יכלו לבנות מערכות של אלף שורות בקושי. האם עוד שנה הם יוכלו להמשיך לגדול באותו קצב ולנהל מערכות של מאה אלף שורות? עוד שנתיים מיליון שורות? אני בספק אבל באמת מוקדם לדעת.
אני יודע איך בני אדם בונים ומתחזקים מערכת תוכנה של מאות אלפי שורות ואני רואה מדוגמת העשרת אלפים שורות שהסוכן שלי בנה שסוכנים לא חושבים ככה. בני אדם מסתכלים על סיבוכיות של מערכת, אנחנו מודעים למגבלות שלנו ויודעים כמה קשה להבין קוד ולכן אנחנו עושים הכל כדי לפשט את הקוד. אצל סוכנים השיפור ביכולות מאפשר להם להתמודד עם יותר שורות קוד כל שנה גם בלי אבסטרקציות ופישוטים.
עבור שחיין אנושי אין הבדל בין שחייה בבריכה בעומק 4 מטר ל 40 מטר. בשני המקרים הוא לא עומד שם. כך מפתחים אנושיים הסתכלו על פיתוח מערכות לפחות מאז שאני למדתי לתכנת. אנחנו ממילא לא נוכל להכיל את כל המערכת בראש אז נבנה אבסטרקציות ונפתור בעיות בתוכן. סוכן הקידוד שלי שוחה כמו שחיין בגובה 10 מטר. הוא מתאמץ ואז עומד לנוח. אנשים מסתכלים על הסוכן ואומרים "תראה הוא צולח בריכה בעומק 10 מטר כמה שזה מדהים" ו"עוד שנה הוא יהיה כפול בגובה ויוכל לצלוח בריכה בעומק 20 מטר". אבל זה לא המדד הנכון.
פרויקט חדש. סוכן כותב קוד. כל פיצ'ר שאני מבקש עובד ומהר. מכונת הקסמים.
אחרי שבוע התחילו הבאגים.
כשמסתכלים על הקוד מבינים למה. הקוד מבולגן, פונקציונאליות כתובה בכמה מקומות, פונקציות ארוכות עם המון if/else-ים, כתובת ונתיבים מפוזרים בקוד עצמו. טלאי על טלאי כי כך סוכנים עובדים.
כמה רחוק אפשר להגיע במערכת טלאי על טלאי? תלוי כמה גדולים הפיצ׳רים שאתם מבקשים. לי זה לקח שבוע וכעשרת אלפים שורות קוד להתחיל לראות את האשליה מתנפצת. לכם אולי זה ייקח קצת יותר או קצת פחות.
אנשים מדברים על קפיצה במודלים, קפיצה ביכולות, אבל זאת לא הקפיצה שאנחנו צריכים. עשרת אלפים שורות קוד זה מדהים. לפני שנה הם יכלו לבנות מערכות של אלף שורות בקושי. האם עוד שנה הם יוכלו להמשיך לגדול באותו קצב ולנהל מערכות של מאה אלף שורות? עוד שנתיים מיליון שורות? אני בספק אבל באמת מוקדם לדעת.
אני יודע איך בני אדם בונים ומתחזקים מערכת תוכנה של מאות אלפי שורות ואני רואה מדוגמת העשרת אלפים שורות שהסוכן שלי בנה שסוכנים לא חושבים ככה. בני אדם מסתכלים על סיבוכיות של מערכת, אנחנו מודעים למגבלות שלנו ויודעים כמה קשה להבין קוד ולכן אנחנו עושים הכל כדי לפשט את הקוד. אצל סוכנים השיפור ביכולות מאפשר להם להתמודד עם יותר שורות קוד כל שנה גם בלי אבסטרקציות ופישוטים.
עבור שחיין אנושי אין הבדל בין שחייה בבריכה בעומק 4 מטר ל 40 מטר. בשני המקרים הוא לא עומד שם. כך מפתחים אנושיים הסתכלו על פיתוח מערכות לפחות מאז שאני למדתי לתכנת. אנחנו ממילא לא נוכל להכיל את כל המערכת בראש אז נבנה אבסטרקציות ונפתור בעיות בתוכן. סוכן הקידוד שלי שוחה כמו שחיין בגובה 10 מטר. הוא מתאמץ ואז עומד לנוח. אנשים מסתכלים על הסוכן ואומרים "תראה הוא צולח בריכה בעומק 10 מטר כמה שזה מדהים" ו"עוד שנה הוא יהיה כפול בגובה ויוכל לצלוח בריכה בעומק 20 מטר". אבל זה לא המדד הנכון.
👍2
📌 היום למדתי: Cache וקלוד
אנתרופיק שלחו לי אימייל לגבי סוכן שאני בונה:
"שמנו לב שהסוכן שלך לא מנצל מספיק את האפשרות לשמור פרומפטים ב Cache. אם תשמור Cache טוב יותר תוכל לחסוך 43% מהוצאות הטוקנים של הסוכן שלך"
מה קורה שם? בשביל לייצר אשליה של שיחה כל פניית API לספק AI כוללת את כל ההודעות הקודמות בשיחה. אותן הודעות קודמות "תופסות" טוקנים בקונטקסט ועולות לנו בטוקני input. בגלל שיצירת התשובה הבאה היא תהליך אינקרמנטלי, אפשר לשמור את "איפה שהיינו" בהודעה האחרונה ואז "להמשיך" את היצירה רק עבור ההודעה החדשה, כל עוד התחילית באמת זהה.
איפה הקאץ'? אנתרופיק שומרת את המטמון ל-5 דקות וגובה מחיר גבוה יותר לטוקן בשביל להשתמש בשירות הנפלא. שווה אם הסוכן שלכם מנהל שיחות ארוכות עם לקוחות במסגרת חלון זמן של 5 דקות. אופוס למשל יעלה 5$ למיליון טוקנים או 6.25$ לאותם מיליון טוקנים כשמשתמשים ב cache של 5 דקות. מתקדמים יכולים להשתמש ב cache של שעה במחיר של 10$ לאותם מיליון טוקנים.
ההסבר המלא עם כל המחירים והקוד הרלוונטי זמין בדף שלהם כאן:
https://platform.claude.com/docs/en/build-with-claude/prompt-caching
ודוגמת קוד עם cache נראית כך:
אנתרופיק שלחו לי אימייל לגבי סוכן שאני בונה:
"שמנו לב שהסוכן שלך לא מנצל מספיק את האפשרות לשמור פרומפטים ב Cache. אם תשמור Cache טוב יותר תוכל לחסוך 43% מהוצאות הטוקנים של הסוכן שלך"
מה קורה שם? בשביל לייצר אשליה של שיחה כל פניית API לספק AI כוללת את כל ההודעות הקודמות בשיחה. אותן הודעות קודמות "תופסות" טוקנים בקונטקסט ועולות לנו בטוקני input. בגלל שיצירת התשובה הבאה היא תהליך אינקרמנטלי, אפשר לשמור את "איפה שהיינו" בהודעה האחרונה ואז "להמשיך" את היצירה רק עבור ההודעה החדשה, כל עוד התחילית באמת זהה.
איפה הקאץ'? אנתרופיק שומרת את המטמון ל-5 דקות וגובה מחיר גבוה יותר לטוקן בשביל להשתמש בשירות הנפלא. שווה אם הסוכן שלכם מנהל שיחות ארוכות עם לקוחות במסגרת חלון זמן של 5 דקות. אופוס למשל יעלה 5$ למיליון טוקנים או 6.25$ לאותם מיליון טוקנים כשמשתמשים ב cache של 5 דקות. מתקדמים יכולים להשתמש ב cache של שעה במחיר של 10$ לאותם מיליון טוקנים.
ההסבר המלא עם כל המחירים והקוד הרלוונטי זמין בדף שלהם כאן:
https://platform.claude.com/docs/en/build-with-claude/prompt-caching
ודוגמת קוד עם cache נראית כך:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
cache_control={"type": "ephemeral"},
system="You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.",
messages=[
{
"role": "user",
"content": "Analyze the major themes in 'Pride and Prejudice'.",
}
],
)
print(response.usage.model_dump_json())
Claude Platform Docs
Prompt caching
Cache prompt prefixes with `cache_control` to cut costs and latency, using automatic caching or explicit breakpoints with 5-minute or 1-hour TTLs.
📌 ללמוד לראות ולהראות
אי אפשר לתקן בעיה שלא רואים.
כשאתם מתלוננים ש AI יצר פתרון גרוע שאלו תחילה "גרוע לפי איזה קנה מידה", ואיך אפשר לייצר קריטריון שאפילו AI יבין.
בעולם מושלם סוכני קידוד כמו קלוד קוד יגיעו עם לוח בקרה שמאפשר לי לקבוע "כמה הסוכן משקיע בביצועים טובים", "כמה משקיע באבטחת מידע", "כמה הוא ישקיע בלייצר ממשק נגיש", "כמה חשוב שהמערכת תעבוד בלי תשלום חודשי או בתשלום חודשי נמוך". מאחר ומדדים אלה לא מוגדרים בסוכן המשימה שלנו היא ליצור ולהגדיר אותם:
כלי Linter שרץ על הקוד ומוודא שהקוד כתוב לפי סטנדרט הוא התחלה.
סורק חולשות אבטחה שמוודא שהקוד לא כולל בעיות אבטחה ברורות יעזור לסוכן לראות את סעיף האבטחה.
בדיקה אוטומטית שמוודאת שהעמוד הראשי נטען תוך פחות משניה תאפשר לסוכן לראות שהקוד החדש שובר את תקציב הביצועים.
אבל אלה הדברים הקלים. איך בודקים שהקוד החדש לא שובר הנחות יסוד של המערכת? איך בודקים שהקוד החדש לא מייצר אילוצים חדשים שאתם לא רוצים? נטען טוב בכל הדפדפנים? לא יישבר בקצבים של פרודקשן? באיזו נקודה הממשק נהיה מסובך מדי? השאילתות איטיות מדי?
המיומנות הבאה שנצטרך לשפר היא היכולת לראות ולמדוד. לא רק לתקן תקלות של הסוכן אלא גם להראות לו איך להימנע מטעויות אלה בעתיד.
אי אפשר לתקן בעיה שלא רואים.
כשאתם מתלוננים ש AI יצר פתרון גרוע שאלו תחילה "גרוע לפי איזה קנה מידה", ואיך אפשר לייצר קריטריון שאפילו AI יבין.
בעולם מושלם סוכני קידוד כמו קלוד קוד יגיעו עם לוח בקרה שמאפשר לי לקבוע "כמה הסוכן משקיע בביצועים טובים", "כמה משקיע באבטחת מידע", "כמה הוא ישקיע בלייצר ממשק נגיש", "כמה חשוב שהמערכת תעבוד בלי תשלום חודשי או בתשלום חודשי נמוך". מאחר ומדדים אלה לא מוגדרים בסוכן המשימה שלנו היא ליצור ולהגדיר אותם:
כלי Linter שרץ על הקוד ומוודא שהקוד כתוב לפי סטנדרט הוא התחלה.
סורק חולשות אבטחה שמוודא שהקוד לא כולל בעיות אבטחה ברורות יעזור לסוכן לראות את סעיף האבטחה.
בדיקה אוטומטית שמוודאת שהעמוד הראשי נטען תוך פחות משניה תאפשר לסוכן לראות שהקוד החדש שובר את תקציב הביצועים.
אבל אלה הדברים הקלים. איך בודקים שהקוד החדש לא שובר הנחות יסוד של המערכת? איך בודקים שהקוד החדש לא מייצר אילוצים חדשים שאתם לא רוצים? נטען טוב בכל הדפדפנים? לא יישבר בקצבים של פרודקשן? באיזו נקודה הממשק נהיה מסובך מדי? השאילתות איטיות מדי?
המיומנות הבאה שנצטרך לשפר היא היכולת לראות ולמדוד. לא רק לתקן תקלות של הסוכן אלא גם להראות לו איך להימנע מטעויות אלה בעתיד.
📌 סיכום וובינר: סוכנים מנוהלים
היום בוובינר דיברנו על Claude Managed Agents וראינו הדגמה של הקוד ואיך ליצור את ההדגמה הזו אצלכם. אלה עיקרי הדברים שהיו שם.
✏ מה זה Managed Agents
גם אנתרופיק וגם OpenAI השיקו לאחרונה מוצר של סוכנים מנוהלים. מוצרים אלה מתחרים ב Agent Core של AWS וההסבר לכל הקטגוריה הוא פשוט - להריץ סוכנים זה מסובך. בין השאר:
1. צריך לשמור את כל השיחות של כל הסוכנים.
2. צריך דרך לעצור שיחה כשדברים לא הולכים בכיוון שרציתם.
3. כשיש עומס צריך יותר מכונות, כשאין מבקרים אפשר לצמצם.
4. צריך להיות מסוגלים לחזור לשיחות ישנות גם אחרי הרבה זמן.
5. אם יש הפעלת כלים צריך להפריד בין הלקוחות ולא לאפשר ללקוח אחד להשתלט או להגיע למידע של לקוחות אחרים.
ההגיון של סוכנים מנוהלים הוא בדיוק ההגיון של הענן. אתם מביאים את התוכנה, אנחנו נביא את התשתית. אנתרופיק ו OpenAI כבר מחזיקות תשתית מטורפת להרצת סוכנים אז למה לא למכור גם אותה יחד עם הטוקנים.
✏ איך לכתוב סוכן מנוהל באנתרופיק
מוצר הסוכנים המנוהלים של אנתרופיק וותיק יותר ולכן דיברנו עליו. בעמוד הזה אפשר למצוא את המדריך של אנתרופיק להתחלה מהירה:
https://platform.claude.com/docs/en/managed-agents/quickstart
אנחנו בוובינר לקחנו משם את הפקודה להרצה אינטרקטיבית של המדריך מתוך קלוד קוד:
קלוד קוד שאל אותי מה אני רוצה שהסוכן יעשה ואני ביקשתי סוכן של רשימת קניות שתומך בשתי פעולות, הוספת פריט לרשימה וצפיה ברשימה. נכון רשימת קניות אמיתית גם צריכה לאפשר לסמן שקנינו משהו או למחוק פריטים אבל את זה נשאיר לגרסה 2. אחרי קצת חשיבה קלוד קוד יצר שלושה קבצים: קובץ requirements.txt עם כל התלויות, קובץ app.py עם שרת API וקובץ setup.py שמקים את הסוכן באנתרופיק.
מפתח ה API שלי היה שמור בקובץ
היום בוובינר דיברנו על Claude Managed Agents וראינו הדגמה של הקוד ואיך ליצור את ההדגמה הזו אצלכם. אלה עיקרי הדברים שהיו שם.
✏ מה זה Managed Agents
גם אנתרופיק וגם OpenAI השיקו לאחרונה מוצר של סוכנים מנוהלים. מוצרים אלה מתחרים ב Agent Core של AWS וההסבר לכל הקטגוריה הוא פשוט - להריץ סוכנים זה מסובך. בין השאר:
1. צריך לשמור את כל השיחות של כל הסוכנים.
2. צריך דרך לעצור שיחה כשדברים לא הולכים בכיוון שרציתם.
3. כשיש עומס צריך יותר מכונות, כשאין מבקרים אפשר לצמצם.
4. צריך להיות מסוגלים לחזור לשיחות ישנות גם אחרי הרבה זמן.
5. אם יש הפעלת כלים צריך להפריד בין הלקוחות ולא לאפשר ללקוח אחד להשתלט או להגיע למידע של לקוחות אחרים.
ההגיון של סוכנים מנוהלים הוא בדיוק ההגיון של הענן. אתם מביאים את התוכנה, אנחנו נביא את התשתית. אנתרופיק ו OpenAI כבר מחזיקות תשתית מטורפת להרצת סוכנים אז למה לא למכור גם אותה יחד עם הטוקנים.
✏ איך לכתוב סוכן מנוהל באנתרופיק
מוצר הסוכנים המנוהלים של אנתרופיק וותיק יותר ולכן דיברנו עליו. בעמוד הזה אפשר למצוא את המדריך של אנתרופיק להתחלה מהירה:
https://platform.claude.com/docs/en/managed-agents/quickstart
אנחנו בוובינר לקחנו משם את הפקודה להרצה אינטרקטיבית של המדריך מתוך קלוד קוד:
/claude-api managed-agents-onboard
קלוד קוד שאל אותי מה אני רוצה שהסוכן יעשה ואני ביקשתי סוכן של רשימת קניות שתומך בשתי פעולות, הוספת פריט לרשימה וצפיה ברשימה. נכון רשימת קניות אמיתית גם צריכה לאפשר לסמן שקנינו משהו או למחוק פריטים אבל את זה נשאיר לגרסה 2. אחרי קצת חשיבה קלוד קוד יצר שלושה קבצים: קובץ requirements.txt עם כל התלויות, קובץ app.py עם שרת API וקובץ setup.py שמקים את הסוכן באנתרופיק.
מפתח ה API שלי היה שמור בקובץ
.env ובאיטרציה הראשונה קלוד קוד שכח לטעון אותו אבל אחרי תזכורת הקוד התחיל לעבוד. הקובץ הראשון setup.py מכיל את הקוד הבא:# ONE-TIME SETUP - run once (`python setup.py`), then copy the printed lines into .env
#
# Creates the three reusable, versioned resources the runtime app needs:
# - an environment (the cloud sandbox)
# - a memory store (persists the shopping list across sessions)
# - an agent (model/system/tools - references nothing session-specific)
#
# Agents/environments could also be defined as YAML and applied with the `ant` CLI
# for CI-managed configs (see shared/anthropic-cli.md) - this script also creates
# the memory store, which the CLI doesn't have a documented syntax for yet, so
# everything is grouped here for a single one-time run.
import anthropic
from dotenv import load_dotenv
load_dotenv()
client = anthropic.Anthropic()
SHOPPING_LIST_PATH = "/shopping_list.md"
def main():
environment = client.beta.environments.create(
name="shopping-list-env",
config={"type": "cloud", "networking": {"type": "unrestricted"}},
)
store = client.beta.memory_stores.create(
name="Shopping List",
description="The user's shopping list: a single markdown checklist file.",
)
client.beta.memory_stores.memories.create(
store.id,
path=SHOPPING_LIST_PATH,
content="# Shopping List\n",
)
agent = client.beta.agents.create(
name="Shopping List Agent",
model="claude-sonnet-5",
system=(
"You manage the user's shopping list. It lives as a single file, "
f"shopping_list.md, inside your attached memory store - a markdown "
"checklist with one item per line, formatted as `- item`.\n\n"
"When asked to add an item: read the file, add the new line only if an "
"equivalent item isn't already present (merge quantities when given, e.g. "
"adding 'milk' when 'milk' is already there should not create a duplicate "
"line), then write the file back. Reply with a short confirmation of what "
"changed.\n\n"
"When asked for the current list: read the file and reply with the items, "
"one per line, no extra commentary. If the list is empty, say so explicitly."
),
tools=[
{
"type": "agent_toolset_20260401",
Claude Platform Docs
Get started with Claude Managed Agents
Create your first autonomous agent.
"default_config": {"enabled": True},
"configs": [
{"name": "web_search", "enabled": False},
{"name": "web_fetch", "enabled": False},
],
}
],
)
print("Add these lines to .env:")
print(f"ANTHROPIC_ENV_ID={environment.id}")
print(f"ANTHROPIC_AGENT_ID={agent.id}")
print(f"ANTHROPIC_AGENT_VERSION={agent.version}")
print(f"ANTHROPIC_MEMORY_STORE_ID={store.id}")
if __name__ == "__main__":
main()את הקוד הזה מריצים פעם אחת ואנחנו רואים שהוא מכיל את רכיבי התשתית השונים שנוצרים:
1. סביבה - איפה הסוכן ירוץ, איזה הרשאות יהיו לו.
2. זכרון - איזה קבצים הסוכן יחזיק, במקרה שלנו קובץ markdown של רשימת הקניות.
3. סוכן - מודל, הוראות וכלים.
קלוד קוד במקור יצר את הסוכן עם מודל אופוס אני שיניתי אותו לסונט כדי לקבל תשובות מהירות יותר וזולות יותר.
הקובץ השני שנוצר הוא app.py, זה פשוט שרת API ב flask רגיל לגמרי שמתחבר לסוכן:
# RUNTIME - every invocation. Requires setup.py to have been run once and its
# printed IDs added to .env.
import os
import time
import anthropic
from dotenv import load_dotenv
from flask import Flask, jsonify, render_template, request
load_dotenv()
client = anthropic.Anthropic()
AGENT_ID = os.environ["ANTHROPIC_AGENT_ID"]
AGENT_VERSION = os.environ["ANTHROPIC_AGENT_VERSION"]
ENV_ID = os.environ["ANTHROPIC_ENV_ID"]
STORE_ID = os.environ["ANTHROPIC_MEMORY_STORE_ID"]
MEMORY_INSTRUCTIONS = (
"This store holds one file, shopping_list.md - a markdown checklist, one item "
"per line as `- item`. Read it before answering and write it back after any change."
)
app = Flask(__name__)
def run_single_turn(message: str) -> str:
"""Create a short-lived session, send one message, return the agent's reply text."""
session = client.beta.sessions.create(
agent={"type": "agent", "id": AGENT_ID, "version": AGENT_VERSION},
environment_id=ENV_ID,
resources=[
{
"type": "memory_store",
"memory_store_id": STORE_ID,
"access": "read_write",
"instructions": MEMORY_INSTRUCTIONS,
}
],
)
print(f"session: https://platform.claude.com/workspaces/default/sessions/{session.id}", flush=True)
reply_parts: list[str] = []
with client.beta.sessions.events.stream(session_id=session.id) as stream:
client.beta.sessions.events.send(
session_id=session.id,
events=[{"type": "user.message", "content": [{"type": "text", "text": message}]}],
)
for event in stream:
if event.type == "agent.message":
for block in event.content:
if block.type == "text":
reply_parts.append(block.text)
elif event.type == "session.status_terminated":
break
elif event.type == "session.status_idle":
if event.stop_reason.type == "requires_action":
continue # waiting on a tool confirmation/result we don't send here
break # end_turn, retries_exhausted, or budget_reached
# This session is one-shot - nothing else will use it, so archive it instead
# of leaving it sitting `idle` forever. The stream's `status_idle` event can
# arrive slightly before the session's queryable status catches up, so a
# fresh archive call can 400 with "cannot archive while running" - retry briefly.
for attempt in range(3):
try:
client.beta.sessions.archive(session_id=session.id)
break
except anthropic.APIStatusError as e:
if e.status_code == 400 and attempt < 2:
time.sleep(1)
continue
print(f"warning: could not archive session {session.id}: {e}", flush=True)
return "".join(reply_parts).strip()
@app.get("/")
def index():
return render_template("index.html")
@app.get("/shopping-list")
def get_list():
reply = run_single_turn(
"List everything currently on the shopping list. Reply with one item per "
"line, each line formatted as `- item`, and nothing else. If it's empty, "
"just say so in plain text instead."
)
items = [
line.strip()[1:].strip()
for line in reply.splitlines()
if line.strip().startswith("-")
]
return jsonify({"items": items, "raw": reply})
@app.post("/shopping-list")
def add_item():
item = (request.get_json(force=True) or {}).get("item", "").strip()
if not item:
return jsonify({"error": "missing 'item'"}), 400
reply = run_single_turn(f"Add '{item}' to the shopping list.")
return jsonify({"result": reply})
if __name__ == "__main__":
app.run(port=8000, debug=True)
הפונקציה המעניינת כאן היא
run_single_turn והיא פונה לסוכן עם בקשה ומחזירה את התשובה. הפניה לסוכן מבוצעת דרך קריאת הספריה client.beta.sessions.create כדי ליצור session ולאחריה client.beta.sessions.events.stream כדי לשלוח הודעה.היתרון של שיטת העבודה הזו הוא הנוחות - אנחנו לא צריכים בסיס נתונים, לא צריכים לחשוב על scale ומה יקרה אם כמה לקוחות יפנו במקביל, לא צריכים לטפל בחיבורי רשת יוצאים וחיפוש, הכל מנוהל ברמת הפלטפורמה. כל השיחות מוקלטות ושמורות על השרתים של אנתרופיק וראינו שאנחנו יכולים לגשת לכל המידע דרך ממשק הניהול שלהם.
החסרונות הם המחיר והתלות - כשהסוכן רץ על התשתית של אנתרופיק אני "נעול" על המערכת שלהם וצריך לעדכן את הקוד אם וכאשר הם ישנו את הממשק ואני לא יכול להחליט מחר לשלב מודלים של OpenAI או Ollama. לגבי המחיר בדיוק כמו עם הענן אנחנו משלמים פרמיה על הגמישות.
סך הכל מבחינת נוחות עבודה Claude Managed Agents לדעתי יותר נוח מ Agent Core, במיוחד אם ממילא אתם רוצים לעבוד רק עם הסוכנים שלהם.
👍1
📌 שומר סף
הכנסת קוד ללא בקרה למערכת קיימת זה מסוכן ואנחנו יודעים שככל שנאפשר למעצבים או מנהלי מוצר להכניס קוד שהם כתבו עם AI למערכת נקבל מערכת פחות קונסיסטנטית, מימושים כפולים ואולי בעיות אבטחה או ביצועים.
מצד שני העסקת מפתחים בתור שומרי סף יוצרת עומס על המפתחים ומוציאה את הכיף מהמקצוע. מפתחים לא רוצים "לשמור" ש AI לא כתב שטויות, אנחנו רוצים לקחת אחריות, לאפיין פיצ'רים מקצה לקצה, לתכנן תהליכים.
יש טעויות שאפשר לחיות איתן ויש טעויות שאפילו יום אחד בפרודקשן יהיה קשה לתקן. כפל קוד בין מסכים או כפתור שלא מופיע על מסך מסוים או אפילו מסך שלא נטען על מכשיר טלפון מסוים ברוב המערכות זה לא סיפור גדול. מידע כפול או שגוי ב DB כבר יותר קשה לתקן. תקלת אבטחה שחושפת נתוני משתמשים יכולה לחזור כבומרנג גם שנים אחרי.
וגם פה AI יכול לעזור.
כשמעצבים או מנהלי מוצר מכניסים קוד אני לא צריך מכונת Code Review שתופסת את כל השגיאות, מספיק שער פשוט עם רשימה של מקומות רגישים במערכת. אם השינוי נגע באחד מהם דוחים אותו ומבקשים לדבר עם מפתח. בכל מצב אחר מעלים גרסה על מכונת בדיקה ובמערכות מסוימות אפילו נותנים למעצב את האופציה להגיע עם זה לפרודקשן. פיתוח בעזרת AI מאפשר לא רק להאיץ תהליכים קיימים אלא לחשוב מחדש על התהליכים והארגון בצורה שתביא אותנו למטרה הרבה יותר מהר.
הכנסת קוד ללא בקרה למערכת קיימת זה מסוכן ואנחנו יודעים שככל שנאפשר למעצבים או מנהלי מוצר להכניס קוד שהם כתבו עם AI למערכת נקבל מערכת פחות קונסיסטנטית, מימושים כפולים ואולי בעיות אבטחה או ביצועים.
מצד שני העסקת מפתחים בתור שומרי סף יוצרת עומס על המפתחים ומוציאה את הכיף מהמקצוע. מפתחים לא רוצים "לשמור" ש AI לא כתב שטויות, אנחנו רוצים לקחת אחריות, לאפיין פיצ'רים מקצה לקצה, לתכנן תהליכים.
יש טעויות שאפשר לחיות איתן ויש טעויות שאפילו יום אחד בפרודקשן יהיה קשה לתקן. כפל קוד בין מסכים או כפתור שלא מופיע על מסך מסוים או אפילו מסך שלא נטען על מכשיר טלפון מסוים ברוב המערכות זה לא סיפור גדול. מידע כפול או שגוי ב DB כבר יותר קשה לתקן. תקלת אבטחה שחושפת נתוני משתמשים יכולה לחזור כבומרנג גם שנים אחרי.
וגם פה AI יכול לעזור.
כשמעצבים או מנהלי מוצר מכניסים קוד אני לא צריך מכונת Code Review שתופסת את כל השגיאות, מספיק שער פשוט עם רשימה של מקומות רגישים במערכת. אם השינוי נגע באחד מהם דוחים אותו ומבקשים לדבר עם מפתח. בכל מצב אחר מעלים גרסה על מכונת בדיקה ובמערכות מסוימות אפילו נותנים למעצב את האופציה להגיע עם זה לפרודקשן. פיתוח בעזרת AI מאפשר לא רק להאיץ תהליכים קיימים אלא לחשוב מחדש על התהליכים והארגון בצורה שתביא אותנו למטרה הרבה יותר מהר.
👍2👏1