הבנת ה-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://dev.to/pramod_sahu_d5bd2e6de82d1/understanding-the-agent-loop-how-tool-using-llm-systems-actually-work-2mb5

קהילת למידה אופציונלית: https://t.me/GyaanSetuAi