Image: AI generated
אותו מודל. זה שהזה בצ’אט אינטרנטי מספק פיצ’ר של 200 שורות ב-Claude Code בניסיון אחד. /goal של Codex פותר issue שלם. המודל לא הפך פתאום לחכם יותר. מה שהשתנה הוא המבנה.
למה הם עובדים
הלולאה ב-AI שיחתי נראית כך:
LLM → אדם → LLM → אדם
כל המשוב הוא שפה טבעית. יצירה הסתברותית עוקבת אחרי הערכה הסתברותית. הדיוק מתדרדר כמכפלה.
הלולאה בסוכני קידוד שונה:
LLM → יצירת קוד → שמירת קובץ → הרצת טסט → pass/fail → LLM
LLM → עריכת קוד → build → הצלחה/כישלון → LLM
LLM → בדיקת טיפוסים → הודעת שגיאה → LLM
שערים דטרמיניסטיים יושבים בתוך הלולאה. מערכת הקבצים שומרת בדיוק מה שנכתב. טסט הוא pass או fail. הקומפיילר אומר שגוי כשזה שגוי. אלה משמשים בלי כוונה כרצ’טים.
LLM הוא רכיב לא אמין. אבל בניית פרוטוקול אמין מעל רכיבים לא אמינים היא יסוד ההנדסה. Von Neumann הוכיח מתמטית ב-1956 שהצבעת רוב בלבד יכולה לגרום לרכיבים רועשים לבצע חישוב אמין (Von Neumann, 1956). TCP בונה מסירה אמינה מעל רשת לא אמינה. RAID בונה אחסון אמין מעל דיסקים לא אמינים. ECC בונה חישוב אמין מעל זיכרון לא אמין.
הסיבה שסוכני קידוד עובדים היא אותו הדבר. LLM לא אמין מצויד במאמתים דטרמיניסטיים (טסטים, builds, linters, בודקי טיפוסים). מחקר SWE-agent הדגים שגם אותו מודל מראה ביצועים שונים באופן דרמטי בהתאם לעיצוב Agent-Computer Interface (Yang et al., NeurIPS 2024). הטופולוגיה, לא יכולת המודל, היא שגורמת להצלחה.
אבל למה הם קורסים?
הם עובדים, אמרתי. אבל לפעמים קורסים. למה?
כי רצ’טים שנמצאים במקרה ורצ’טים שתוכננו במודע הם דברים שונים.
קיימות אזורים ללא רצ’ט
כשסוכן עורך קוד ללא טסטים? ה-build עובר, lint עובר, אבל הפונקציונליות שבורה. באזורים ללא שערים דטרמיניסטיים, ה-LLM שופט הסתברותית, ושיפוט הסתברותי מתדרדר כמכפלה.
מתוך 200 endpoints, ל-180 יש טסטים ול-20 אין. הסוכן מטפל ב-180 בצורה מושלמת ושותל בשקט באגים ב-20. לכן מקבלים “כמעט מוכן, אבל משהו לא בסדר.”
מידע המשוב אינו מספיק
ערכתי ניסוי מיון של 1,000 מילים. CPU: 0.08ms ב-100%. LLM: 438 שניות ב-97.7%. זה כשלעצמו מרשים — 97.7% דרך קוגניציה טהורה. אבל התגלית האמיתית הייתה במקום אחר.
שיניתי רק את רמת המשוב על אותה תוצאה:
| משוב | תוצאה |
|---|---|
| אין | 6 שגיאות (99.4%) |
| “יש שגיאות” | 10 שגיאות (99.0%) — גרוע יותר |
| “יש 23 שגיאות” | שגיאה 1 (99.9%) |
| “6 שגיאות, הנה הן” | 0 שגיאות (100%) |
לומר רק “אתה טועה” גורם לתיקון יתר ומחמיר את המצב. לתת ספירה יוצר מטרה לרדוף אחריה. לתת מיקומים משיג שלמות.
רוב הסוכנים היום פועלים ברמה השנייה. כשטסט נכשל, הם יודעים “משהו לא בסדר,” אבל לא מעבירים את הסיבה המבנית. הודעות שגיאה קיימות, אבל הן סימפטומים, לא סיבות.
נקודות עיוורון קיימות, וחזרה לא מתקנת אותן
בניסוי המיון, LLM השאיר 6 שגיאות ב-R2. ב-R3 דיווח “אין שגיאות.” ב-R4b דיווח שוב “אין שגיאות.” פיספס את אותם 6 באותו אופן.
בלי רמזים, לא משנה כמה חזרות, התכנס ב-99.4%. רק כשנאמר לו “נותרו 6” סוף סוף הגיע ל-100%.
אותו דבר קורה עם סוכני קידוד. הסוכן יוצר באג, עושה self-review עם “נראה בסדר,” וכשמבקשים ממנו לתקן שוב, מפספס את אותה נקודה. Huang et al. (2024) הראו שללא משוב חיצוני, תיקון עצמי של שגיאות הסקה על ידי LLM למעשה מדרדר ביצועים (Huang et al., ICLR 2024). לכן retry הוא לא התשובה. נקודות עיוורון הן מגבלה מבנית של הטבע ההסתברותי של המודל, לא חוסר מאמץ.
כפל עובד בקנה מידה
דיוק 97.7% בשרשרת פעמיים: 0.977² = 95.4%. שלוש פעמים: 93.2%. עשר פעמים: 79.2%.
סוכן שעורך קובץ בודד עושה עבודה טובה. אבל לבקש ממנו refactoring של 100 קבצים? גם ב-97% לכל צעד, 100 צעדים נותנים 0.97¹⁰⁰ = 4.8%. כישלון כמעט מובטח.
זה ההסבר המתמטי ל-“vibe coding קורס ב-200 endpoints.” בפרויקטים קטנים, מספר השרשורים נמוך מספיק שההסתברות מחזיקה. בפרויקטים גדולים, הכפל הופך לקטסטרופי.
מה נדרש
הסיבות לעבודה והסיבות לקריסה מצביעות על אותו מקום: נוכחות או היעדר שערי אימות דטרמיניסטיים.
סוכנים נוכחיים מסתמכים על רצ’טים שנמצאים במקרה (טסטים, builds, linters). תכנון מודע שלהם הופך אותם לחזקים יותר.
מה זה אומר לתכנן רצ’טים במודע:
ראשית, לזהות אזורים ללא רצ’ט. קוד ללא טסטים, APIs ללא schemas, נתונים ללא טיפוסים. כל מקום שהסוכן שופט הסתברותית הוא פגיעות.
שנית, להעלות את תוכן המידע של המשוב. להחזיר רק pass/fail מעורר תיקון יתר. “איפה, למה, ומה שונה בין בפועל למצופה” חייב להיות מועבר בצורה מובנית.
שלישית, להכניס שערים דטרמיניסטיים בין שלבי שרשרת. להריץ 10 שלבים בבת אחת הופך את הכפל לקטסטרופי, אבל לנעול עם רצ’ט בכל שלב מאפס את ההידרדרות.
LLM הם מחוללים מרשימים. הם ממיינים 1,000 מילים בדיוק של 97.7% דרך קוגניציה טהורה. בני אדם לא יכולים לעשות זאת. אבל כל דבר פחות מ-100% קורס תחת חזרה. 0.977 בריבוע הוא 0.954.
סוכני קידוד עובדים לא בגלל שהמודל חכם. הם עובדים כי שערים דטרמיניסטיים יושבים בתוך הלולאה. הם קורסים כי השערים האלה חסרים.
יצירה יכולה להיות הסתברותית. אימות חייב להיות דטרמיניסטי.
מאמרים קשורים
- Ratchet Pattern — איך לגרום לסוכן לסיים את העבודה — המבנה והעקרונות של דפוס הרצ’ט
- טופולוגיית Feedback חשובה מ-IQ של מודל — למה מבנה המשוב חשוב יותר מיכולת המודל
- אילוצים הם חוזים — איך אילוצים רציונליים משחררים מערכות
- filefunc — קובץ אחד, מושג אחד — מבנה קוד מותאם LLM
- חשיבת AI: 5 צעדים לשבירת הנחות יסוד עם עקרונות ראשונים — איך לחשוב עם AI
מקורות
- Von Neumann, J. (1956). “Probabilistic Logics and the Synthesis of Reliable Organisms from Unreliable Components.” In Shannon, C.E. & McCarthy, J. (Eds.), Automata Studies, Annals of Mathematical Studies, No. 34, Princeton University Press, pp. 43-98.
- Saltzer, J.H., Reed, D.P., & Clark, D.D. (1984). “End-to-End Arguments in System Design.” ACM Transactions on Computer Systems, 2(4), 277-288.
- Patterson, D.A., Gibson, G., & Katz, R.H. (1988). “A Case for Redundant Arrays of Inexpensive Disks (RAID).” Proceedings of the 1988 ACM SIGMOD International Conference on Management of Data, pp. 109-116.
- Hamming, R.W. (1950). “Error Detecting and Error Correcting Codes.” The Bell System Technical Journal, 29(2), 147-160.
- Yao, S. et al. (2023). “ReAct: Synergizing Reasoning and Acting in Language Models.” ICLR 2023.
- Shinn, N. et al. (2023). “Reflexion: Language Agents with Verbal Reinforcement Learning.” NeurIPS 2023.
- Jimenez, C.E. et al. (2024). “SWE-bench: Can Language Models Resolve Real-World GitHub Issues?” ICLR 2024.
- Yang, J. et al. (2024). “SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering.” NeurIPS 2024.
- Huang, J. et al. (2024). “Large Language Models Cannot Self-Correct Reasoning Yet.” ICLR 2024.
- Kamoi, R. et al. (2024). “When Can LLMs Actually Correct Their Own Mistakes? A Critical Survey of Self-Correction of LLMs.” TACL, 12, 1298-1318.
- Cemri, M. et al. (2025). “Why Do Multi-Agent LLM Systems Fail?” arXiv:2503.13657.
- Arbuzov, M.L., Shvets, A.A., & Beir, S. (2025). “Beyond Exponential Decay: Rethinking Error Accumulation in Large Language Models.” arXiv:2505.24187.
יומן שינויים
- 2026-05-16: מהדורה ראשונה