הבלוג של ינון פרק

טיפים קצרים וחדשות למתכנתים

מי אתה גיטהאב קופיילוט - סיכום וובינר

27/04/2026

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

המשך קריאה

סימנים שאני בעצם לא מבין מה קורה בעבודה עם LLM

26/04/2026

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

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

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

אם כשיש בעיה אנחנו לא בטוחים מה גרם לה.

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

אם הקוד נראה לנו ממש סביר, אבל כשאנחנו מבקשים Code Review סוכן אחר מוצא דברים שאנחנו לא ראינו.

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

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

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

הנה שיחה קצרה לדוגמה עם סוכן.

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

אני- "עדיף להשתמש ב Data"

הסוכן- "אתה צודק! ברור שעדיף להשתמש ב Data. מיד מעדכן את הקוד"

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

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

איך עובדים באנטרופיק: 7 רעיונות מרכזיים שלמדתי מהראיון של קט וו

25/04/2026

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

https://open.spotify.com/episode/7wTqD5zwl8ZitUeplapvBG?si=f87b7e5cd4c14ff3

אלה הנקודות המרכזיות שלקחתי מהשיחה:

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

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

  3. עדיין יש משימות פיתוח קשות ומהשיחה נשמע שגם באנטרופיק מאמינים שיהיו דברים קשים בעתיד הנראה לעין. יש משימות שלוקחות להם חודשים (בעיקר בצד ה Backend). יש תיעדוף מאוד קשוח איזה פיצ'רים ייבנו ואיך. יש הבנה שיש פיצ'רים שאפשר לרוץ איתם מהר ואפילו לתת ל AI לבנות מאפס, ויש שינויי תשתית מסובכים שדורשים הרבה מחשבה אנושית. 100% קוד מג'ונרט על ידי AI לא שווה 100% קוד שנכתב בלי בני אדם שמכתיבים מה ייכתב ומוודאים שדברים נכתבים נכון.

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

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

  6. באותו נושא היא מאוד המליצה לכתוב Eval-ים כדי לתאם ציפיות בין מנהלי פרויקט וצוותי הפיתוח.

  7. מודלים חדשים יכולים לייתר יכולות, ולפתוח פיצ'רים חדשים - כשהמודלים לא הצליחו לעשות משימות מורכבות הם הוסיפו מנגנון של Todo List בתוך קלוד קוד. המודל ממלא את רשימת ה Todo והרתמה רצה בלולאה עד שכל הסעיפים בוצעו. ככל שהמודל השתפר לכיוון אופוס או סונט 4.6 הם ראו שאפשר להעביר את כל פיצ'ר ה Todo להיות Tool והמודל מצליח להשתמש בו כדי לייצר לעצמו את הרשימות, ואופוס החדש אפילו לא צריך את זה ועובד טוב גם בלי רשימת Todo. פיצ'ר נוסף שעלה היה פיצ'ר ה Code Review, שהיה מוכן כבר תקופה אבל אף מודל לא הצליח לתת להם תוצאות טובות עד שהגיע אופוס 4.7 ולכן הם חיכו עם שילוב הפיצ'ר עד שהמודל ישתפר. הם מתמודדים עם זה באמצעות פיתוח פיצ'רים גם אם התוצאה עדיין לא מושלמת מתוך הנחה שעוד כמה חודשים תצא גרסה חדשה של המודל שכן תתמודד עם האתגר, ובמקביל כל גרסה חדשה של מודל חוזרים לבדוק אם יש פיצ'רים בסוכן שאפשר להוריד כי המודל כבר מצליח לעבוד טוב יותר בלעדיהם.

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

טייס אוטומטי

24/04/2026

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

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

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

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

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

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

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

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

אם כולם צורכים יותר מדי טוקנים

23/04/2026

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

We’ve seen usage intensify for all users as they realize the value of agents and subagents in tackling complex coding problems

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

בהסתכלות קדימה אני מהמר שזה הולך להשתנות.

נורות להט ישנות צרכו 60 וואט אבל רוב החשמל הזה הפך לחום. הנורות החסכוניות היום נותנות אור דומה אבל צריכות רק 13-15. נורות לד יורדות ל 8-10 וואט בשביל אותו אור.

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

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

פיצ'רים ששווה להכיר ב Github Copilot

22/04/2026

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

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

  1. הרצת סוכנים משורת הפקודה, מהענן ומ VS Code, כולם מנוהלים מאותו מסך ורצים במקביל. הוא יודע להריץ Sub Agents כדי לבצע משימות בלי ללכלך את חלון הקונטקסט ויש מצב fleet בו הוא לבד שובר משימה לחלקים קטנים ונותן לכמה סוכנים לבצע אותה במקביל.

  2. מצב טייס אוטומטי - מתוכנית לפיצ'ר ממומש ללא מגע יד אדם.

  3. חיבור קופיילוט לעורכי טקסט אחרים (היוש nvim) דרך פרוטוקול ACP.

  4. קופיילוט יודע להתחבר ל Ollama ולהשתמש במודלים שרצים אצלכם על המחשב או דרך מנוי Ollama cloud.

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

  6. קופיילוט בתוך VS Code מגיע עם דפדפן מובנה, וגם מתחבר דרך MCP לכרום.

  7. קופיילוט יודע לכתוב לכם Code Review אוטומטי.

  8. קופיילוט מתחבר לסוכנים שכבר בניתם ב Claude Agents SDK ויכול לשלוח אליהם משימות.

  9. קופיילוט יודע לקרוא "תיקיות קונטקסט" שאנחנו בונים בענן (נקרא Spaces), שם נוכל לשמור לדוגמה Design System שנרצה שתהיה לנו זמינה לכמה פרויקטים.

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

נסה לשמן את המנעול

21/04/2026

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

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

וזאת בדיוק הבעיה שלנו עם Agent Harnesses:

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

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

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

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

בחזרה למסוף

20/04/2026

התקנתי ננובוט (גרסה מוקטנת של אופןקלו) על ה Raspberry Pi שישב בארון והתוצאה מטלטלת. לא בגלל שיש המון מה לעשות איתו אלא בגלל מה שקרה לאינטרקציה-

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

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

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

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

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

החלטות

19/04/2026

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

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

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

  1. מה עושים אם ה DB מפסיק להגיב באמצע ריצה?
  2. איך להמשיך ייצוא אחרי שהוא נעצר באמצע? האם זה נתמך?
  3. באיזה פורמט יישמרו הנתונים?
  4. האם יש להצפין את המידע שמייצאים? באיזו שיטה?
  5. איזה קונפליקטים יכולים להיות ביבוא? מה עושים בכל מצב?
  6. איך שומרים על קונסיסטנטיות ביצוא אם נתונים ממשיכים להכתב תוך כדי שהסקריפט רץ?
  7. האם יש Rate Limit בקריאה מה DB?
  8. האם יש נתונים או חשבונות שאסור לייצר, כי הם מכילים מידע רגיש?

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

היום הקוד זול אבל ההחלטות נשארו יקרות - אולי אפילו יותר יקרות מאי פעם. יש שאומרים שיש "יותר מקום ל Seniors" אבל אולי יותר מדויק להגיד שיש יותר מקום לאנשים ששואלים שאלות, שרוצים ללמוד, שמוכנים לאתגר את ה AI ושיתאמצו כדי לראות כמה גרסאות של כל פיצ'ר עד שיחליטו איזו גרסה למזג. זה קל כשיש Human In The Loop שממזג PR-ים שסוכנים כותבים.

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

  1. אנשי מוצר יבקשו פיצ'רים דרך טיקטים ב Jira
  2. סוכני קידוד ישמרו את הפרומפטים בהודעות קומיט בגיט וימזגו לבד את ה PR-ים
  3. מפתחים יוכלו לעבור על הקוד בדיעבד ולשנות גם החלטות ישנות. אני אוכל להסתכל על אותו סקריפט יצוא ולבקש שהוא ישמור את הנתונים ב CSV במקום ב JSON. סוכן קידוד יכתוב מחדש את כל הקוד מאותו קומיט, כלומר יחזור לנקודה שבה בוצעה ההחלטה, יכתוב מחדש את הקוד לאותו קומיט ואז ימשיך ויכתוב מחדש את כל הקוד של כל הקומיטים הבאים בתור. כמו rebase רק שגם יבנה מחדש את הקוד ולא רק את הקומיטים.

מה דעתכם? אפשרי? רצוי?

לזרוק או לשמור (קוד בינוני של AI)

18/04/2026

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

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

  1. שכבת ההוראות - שזה הדברים שאנחנו כותבים בשפה טבעית.

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

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

אז איך יודעים אם לזרוק או לשמור? מסתכלים באיזו שכבה היתה הבעיה.

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

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

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

export const setAuthCredentials = response => {
  const expiryDate = getHeaderExpiry(response);
  const now = new Date();
  const diffMs = expiryDate.getTime() - now.getTime();
  const diffDays = diffMs / (1000 * 60 * 60 * 24);
  Cookies.set('cw_d_session_info', JSON.stringify(response.headers), {
    expires: diffDays > 0 ? diffDays : 1, // fallback to 1 day minimum
  });
  setUser(response.data.data);
};

ולמה זה מגושם? כי expiryDate הוא תאריך ו expires יכול לקבל או ערך מסוג תאריך או ערך מספרי שמייצג מספר ימים. מה עושה אופוס? הופך את התאריך לערך מספר (שמייצג מספר ימים) רק בשביל להעביר אותו ל expires של Cookies.set, בלי לשים לב שבתוך Cookies.set הערך הזה יומר חזרה מימים לתאריך.

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

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

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