הבנת ה-Agent Loop
אם אתם בונים באמצעות מודלים של קריאה לכלים (tool-calling models), ההחלטה החשובה ביותר שלכם היא לא הפרומפט. היא הלולאה סביב המודל.
LLM מחליט להשתמש בכלי, אך הוא אינו יכול להריץ את הכלי הזה בעצמו. האפליקציה או ה-SDK חייבים להרכיב את ההקשר (context), להריץ את הכלי ולהוסיף את התוצאות. המחזור הזה הוא ה-agent loop.
המודל הוא רק חלק אחד מהמערכת. ה-harness או ה-SDK מנהלים את הניהול (orchestration). זה כולל הרכבת פרומפטים, ביצוע כלים, ניסיונות חוזרים (retries) וסיום פעולה.
מושגי מפתח לבניית סוכנים (agents) אמינים:
- ניהול מצב (State management) הוא חיוני. אם אתם מאבדים את פלט הכלים, הסוכן ישכח מה קרה.
- ביצועים תלויים בשליטה על צמיחת הפרומפט. השתמשו בקידומות (prefixes) יציבות ובמטמון (caching) כדי לשמור על עלויות נמוכות.
- בטיחות דורשת וולידציה. השתמשו בשערי אישור (approval gates) עבור פעולות שמשנות נתונים.
- ה-harness, ולא המודל, מנהל את מחזור החיים.
מודל מנטלי מעשי עבור הלולאה:
- בניית מצב הקלט.
- קריאה למודל.
- בדיקת התגובה.
- אם המודל מבקש כלים, בצעו וולידציה והריצו אותם.
- הוספת תוצאות הכלים בחזרה להקשר (context).
- קריאה חוזרת למודל.
- עצירה רק כאשר המודל מספק תשובה סופית.
שתי מערכות יכולות להשתמש באותו מודל אך להתנהג בצורה שונה. זה קורה מכיוון שה-harness שלהן מקבל החלטות שונות לגבי ההקשר, סדר הכלים וההיסטוריה.
היזהרו מהבעיות הנפוצות הבאות:
- התנהגות חזרתית: בדרך כלל נגרמת עקב שבירה של רציפות המצב (state continuity).
- איכות נמוכה: לעיתים קרובות נגרמת מפלט כלים שהוא ארוך מדי או רועש מדי.
- עלויות גבוהות: בדרך כלל נגרמות מסדר פרומפטים גרוע ששובר את המטמון (caching).
- פעולות לא בטוחות: מתרחש כאשר לא מבצעים וולידציה לארגומנטים של הכלים לפני הרצתם.
המודל בוחר פעולות. ה-harness שולט במציאות. אם אתם רוצים מערכת טובה יותר, אל תסתפקו רק בכוונון הפרומפט. בנו לולאה טובה יותר.
קהילת למידה אופציונלית: https://t.me/GyaanSetuAi