• בלוג
  • תוכנות שמשנות את עצמן

תוכנות שמשנות את עצמן

23/05/2026

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

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

https://gist.github.com/ynonp/eba94cfebeecddbcae2cf1127d69f092

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

והקוד אפילו עובד, כלומר הוא מתנהג כאילו הפעלתי את ה rails c וכאילו הסוכן יכול לכתוב בתוך ה REPL.

הבעיה היחידה שזה לא מה שקורה שם.

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

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