מדריך מושגים

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

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

מהו סוכן קידוד AI

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

כיצד סוכן קידוד AI בונה אפליקציות

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

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

בעיית ההקשר

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

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

למה הקשר מתמשך חשוב

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

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

איך Vibe Coder עושה את זה

Vibe Coder מחזיק הקשר פרויקט מתמשך: מבנה הפרויקט, הישויות, וחוזה ה-API נשמרים בין סשנים, כך שה-v10 הבא נבנה על ההבנה של ה-v1, ולא מתחיל מאפס. לצד זאת, כל פרויקט כולל backend אמיתי ומסד נתונים משלו — לא SDK ולא שירות חיצוני. יש שתי סביבות מבודדות, staging ו-production, שמאפשרות לבנות ולבדוק בנפרד מהסביבה החיה. וכל פעולה מציגה את עלות הטוקנים שלה בזמן אמת — אף הפתעה בחיוב.

הגישה שלנו מתוארת בפירוט בעמוד המוצר, והיא חלק מההבנה הרחבה יותר שלנו לגבי vibe coding. כדאי גם לראות איך אנחנו שונים מ-Lovable, Bolt.new ו-Cursor.