סוכן AI אוטונומי בנה מחסנית (stack) מלאה של Retrieval-Augmented Generation (RAG) תוך כעשרים דקות, ופתח בטיוטת pull request ללא שורת קוד אחת שנכתבה על ידי אדם.
למה ה"לופ" (loop) חשוב
יצירת מחסנית RAG פירושה בדרך כלל חיבור של מנוע חיפוש, מודל embedding, מודל שפה וקוד "דבק" (glue code). מפתחים מבזבזים שעות על כוונון Helm charts, תיקון תקלות אימות (auth) ומרדף אחרי שמות מודלים לא תואמים. בבדיקה זו, הסוכן האוטונומי פעל לפי לופ בן חמישה שלבים שמכריח הסכמה בין האדם לסוכן לפני כתיבת כל קוד.
| שלב | מה קורה |
|---|---|
| הצעה | הסוכן קורא את הפרומפט ומנסח תוכנית קונקרטית, אך עדיין אינו מייצר קוד. |
| הסכמה | המשתמש סוקר את התוכנית, מאשר אותה או מבקש שינויים. |
| יישום | הסוכן בונה את הפיצ'ר על ענף (branch) חדש. |
| שער טיוטה | הסוכן מריץ linting וסדרת בדיקות משלו, ומתקן שגיאות שהוא מגלה. |
| טיוטת PR | הקוד נדחף (pushed) ו-pull request נפתח לבדיקה אנושית סופית. |
רוב כלי התכנות המבוססים על AI קופצים ישר ליישום, ולעיתים קרובות מייצרים קוד שלא עונה על הציפיות. על ידי הוספת שלב הסכמה מפורש, הלופ עוצר ביצוע עיוור ומאפשר למשתמש להוביל את הפרויקט לפני שמתבצע commit כלשהו.
המחסנית שהתממשה
תוך עשרים דקות, הסוכן הרכיב pipeline של RAG מוכן לסביבת ייצור (production):
- OpenSearch 3.7 המוגדר לחיפוש היברידי (vector + keyword).
- Local Ollama LLM המשמש כמנוע הגנרטיבי לתגובות מבוססות retrieval-augmented.
- FastMCP server החושף ארבעה כלים מותאמים אישית למודל השפה.
- סקריפטים של Skaffold and Helm המבצעים אוטומציה לבניית קונטיינרים, מניפסטים של Kubernetes ופריסת שירותים.
ה-pipeline הועשר בשלושים מאמרים, מה שאפשר בדיקה מיידית של תהליך ה-retrieval והגנרציה מקצה לקצה (end-to-end). מפתח היה מבלוי בדרך כלל יום שלם על הגדרת כל רכיב; המהירות היא מרשימה ביותר.
הבאגים שכמעט הרסו הכל
ביטחון הסוכן נבחן על ידי חמישה כשלים נפרדים שבדרך כלל היו מעכבים פריסה המנוהלת על ידי אדם:
- שגיאות אימות (credentials) ב-OpenSearch – הסוכן סיפק מפתח סודי (secret key) שגוי, מה שגרם ל-cluster לדחות חיבורים.
- טעות הקלדה ב-Regex בתוך URL – תו בודד שהוצב במקום הלא נכון הפך endpoint תקין לקישור שבור, מה ששיבש את ה-data loader.
- חוסר התאמה בשם המודל – ה-connector ציפה למזהה מודל Ollama אחר, מה שהוביל לשגיאות "model not found".
- מגבלות זיכרון JVM – אינדוקס המוני (bulk indexing) ניצל את ה-Java heap, מה שגרם לקריסות מסוג out-of-memory.
- מחיקה בטעות של חלקי מודל (model chunks) – סקריפט ניקוי זיהה בטעות קבצים חיוניים ככפילויות ומחק אותם, מה שאיים על ה-pipeline כולו.
כשהסוכן נתקע, ה-"loop-police" התערבו
watchdog נלווה בשם loop-police מנטר את תקינות הלופ. כאשר הסוכן נכנס למעגל אינסופי במהלך באג המחיקה, ה-loop-police זיהה את העיכוב, ביטל את הענף הנוכחי ואילץ חזרה לשלב ה-Agreement. הסוכן לאחר מכן הכיר בטעות, ניקה את המצב הפגום ובנה מחדש את ה-pipeline מאפס. מחזור התיקון העצמי (self-healing) הסתיים ללא התערבות אנושית מעבר לאישור התוכנית הראשוני.
מה זה אומר עבור מפתחים
- מהירות ללא פגיעה בשליטה. הלופ מאפשר למהנדסים להגדיר כוונה, ואז להעביר את הביצוע למערכת אוטונומית שעדיין פועלת לפי תוכנית שאושרה על ידי אדם.
- רשתות ביטחון מובנות. linting אוטומטי, בדיקות ו-watchdog שיכול לעצור לופ שאינו נשלט מפחיתים את הסיכון לכשלים שקטים.
- חסם כניסה נמוך יותר. צוותים שחסרה להם מומחיות עמוקה ב-Helm, Kubernetes או בחיפוש וקטורי (vector-search) יכולים להקים מחסנית מתפקדת על ידי תיאור הצרכים שלהם בשפה חופשית.
הגישה אינה פתרון קסם. שלב ה-Agreement עדיין דורש סוקר בעל ידע כדי לזהות ציפיות לא ריאליות או חששות אבטחה. הלופ אינו מחליף מומחיות בתחום; הוא פשוט אורז עבודת תשתית (plumbing) חזרתית לתבנית שניתן לשחזר.
