🎓 מפתחי בינה מלאכותית - GenAI Engineers

Agentic Loop, Tool Calling, זיכרון ומצב, ודפוס ReAct

234 שעות אקדמיות 2 סמסטרים E2E - קונספט עד ענן

סוכנים אוטונומיים - מנגנון ReAct

סוכן הוא מערכת שמחברת מודל שפה עם לולאת החלטה, כלים, וזיכרון. ReAct היא תבנית שמערבבת Reasoning ו-Acting כדי לפתור בעיות רב-שלביות.

1) Agentic Loop - הלולאה שמבדילה סוכן מצ'אט

צ'אט "רגיל" מחזיר טקסט. סוכן מפעיל כלים, קורא API, כותב לקובץ, ומתקן את עצמו לפי תוצאות. לכן יש לו לולאת עבודה עם מצבים:

Plan Act Observe Reflect החזרה ללולאה עד שמתקבלת תוצאה או עד שמיצינו תקציב זמן/טוקנים
זו לולאת סוכן בסיסית: תכנון - ביצוע - תצפית - שיפור. ReAct הוא מימוש פרקטי של אותה גישה.

2) מהי ReAct?

ReAct מציעה מבנה טקסטואלי שבו המודל מייצר:

למה זה עובד טוב?

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

  • כלי חיפוש - מביא עובדות.
  • כלי DB - מחזיר נתונים אמיתיים.
  • כלי קוד - מחשב תוצאות ולא מסתמך על אינטואיציה.

3) Tool Calling - API עבור המודל

כדי שסוכן יפעל בעולם, הוא צריך "כלים". כלי הוא פונקציה עם חתימה מוגדרת (סכמה), והמודל בוחר מתי לקרוא לה. במערכת שלך, הכלים יכולים להיות:

כלי מידע

חיפוש, קריאה ממסד נתונים, RAG, קריאת קבצים.

כלי פעולה

שליחת מייל, יצירת ticket, עדכון CRM, ביצוע רכישה.

כלי אימות

הרצת קוד, בדיקת סכמות, חוקים עסקיים.

4) מצב (State) וזיכרון (Memory)

המודל עצמו סטטיסטי, ולכן ה"מצב" של הסוכן נשמר סביבו: היסטוריית שיחה, תוצאות כלים, ומבנה עבודה (למשל checklist). באופן פרקטי יש שני סוגי זיכרון:

כלל פרקטי: סוכן טוב לא שומר הכל. הוא מסכם, שומר "עובדות" שנבדקו, ומשתמש במפתחות שליפה כדי להחזיר מידע בזמן הנכון.

5) דוגמת תסריט ReAct (מפורמט)

זה פורמט קריא שממחיש את המבנה. בפריימוורקים מודרניים לא חייבים לחשוף את ה-Reasoning, אבל כן שומרים את ה-Action וה-Observation לצרכי ניטור.

Goal: "Create a note for user 42 and return its id"

Thought: I need to validate input, then call the Notes API to create the resource.
Action: POST /api/v1/notes  {"user_id": 42, "title": "Todo", "content": "Buy milk"}
Observation: 201 Created  {"id": 999}

Thought: Return the id in a compact response.
Final: {"id": 999}

כדי להפוך את זה למעשי, צריך API אמיתי. לכן הפרק הבא מראה איך בונים CRUD ב-FastAPI עם סכמות וטעויות אחידות.

לקריאת הפרק FastAPI CRUD