LLM + RAG + Function Calling אינם מהווים סוכן AI

אנשים רבים מכנים כל אפליקציית AI "סוכן" (agent). הם רואים LLM שמשתמש ב-RAG וב-function calling ומשתמשים בתווית הזו.

זה שגוי.

הכלים הללו מספקים יכולת. הם אינם מספקים אוטונומיה. ללא אוטונומיה, אין לך סוכן.

עליך להפריד בין מה שמערכת יכולה לעשות לבין האופן שבו היא מתנהגת.

LLM מייצר טקסט מתוך הקשר (context). הוא אינו שולט בזרימה של המערכת.

RAG שולף מידע כדי לשפר תשובות. הוא אינו מתכנן או מקבל החלטות.

Function calling מאפשר למודל לבקש פעולה. המערכת היא שעדיין מחליטה אילו פונקציות קיימות ומתי להריץ אותן. המודל רק מבצע את הבקשה.

ניתן לשלב את שלושתם ועדיין לחסר סוכן. חסרה לך השליטה על רצף הפעולות.

רוב האפליקציות הנוכחיות משתמשות ב-pipeline מוגדר מראש. הקוד מחליט:

  • מתי להשתמש ב-RAG
  • מתי לקרוא ל-LLM
  • מתי להפעיל פונקציה
  • כיצד לעבד את התוצאה הסופית

זהו תזרים עבודה (workflow) מוגבל. המודל פועל בתוך מסלול קבוע. הוא עוקב אחר רצף ואז עוצר. הוא אינו מתכנן.

סוכן AI עובד אחרת. הוא אינו עוקב אחר מסלול קבוע. הוא מחליט על הצעד הבא בהתבסס על מה שקורה במהלך התהליך.

מערכת סטנדרטית אומרת: עקוב אחר תזרים העבודה הזה. מערכת סוכנת אומרת: השג את המטרה הזו.

סוכן מוגדר על ידי ההתנהגות שלו, לא על ידי הכלים שלו. סוכן חייב:

  • להחליט על הפעולה הבאה
  • לבחור כלים באופן דינמי
  • לבצע איטרציות לאורך מספר שלבים
  • לשנות אסטרטגיה בהתבסס על תוצאות
  • להמשיך עד להשגת המטרה

ההבדל הוא בנוגע לאחריות.

באפליקציית LLM, המערכת אומרת למודל מה לעשות. בסוכן, המערכת אומרת למודל מהי המטרה. המודל מחליט כיצד להשיג אותה.

RAG מספק הקשר (context). Function calling מאפשר פעולות. LLMs מספקים יכולת הסקה (reasoning).

אך סוכן קיים רק כאשר המודל שולט ברצף הפעולות של עצמו.

מקור: https://dev.to/rohith_kn/llm-rag-function-calling-is-not-an-ai-agent-5459

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