שלב AI Agent באוטומציה

פונקציונליות סוכן AI

מסמך זה מתאר את היישום הנוכחי של `ai_agent` בסביבת הריצה של האוטומציה ובממשק המשתמש.

1) היכן הוא מיושם

- בונה שלבי ממשק משתמש: `application/views/automation.php` - מנהל משימות (דיספצ'ר) של סביבת הריצה ולוגיקת AI: `include_file/automations_functions.php` - קובץ כלול של פעולה: `include_file/automations/actions/ai_agent.inc.php`

2) התנהגות השלב

`ai_agent` מתנהג כשלב בקרה (בדומה ל-`if`):

- קורא למודל Gemini Flash עם הנחיה (prompt) + הקשר נבחר. - מצפה לתגובת JSON עם בוליאני `result` ושדות פלט נוספים. - אם `result = false`, מיישם את `extra_param.skip` לרשימת הדילוג של סביבת הריצה. - כל שדות הפלט המוחזרים מוזרקים להחלפות סביבת הריצה כ: - `{ai-<field_name>}`

דוגמה:

- AI מחזיר: `{"result": true, "message": "Hello"}` - שלבים הבאים יכולים להשתמש ב: `{ai-message}`

3) שדות ממשק משתמש

בחלון הקופץ של `ai_agent`:

- הנחיה (Prompt) (תיבת טקסט) - תוצאה (שורות דינמיות עם `name` + `type`) - סוגים נתמכים בממשק המשתמש: `date`, `text`, `number`, `email`, `boolean` - מקורות הקשר AI (שורות דינמיות) - נתוני לקוח - רשומות לקוח - מסמכי לקוח - צ'אט לקוח - קטע השהיה/התקדמות זמין כמו בפעולות אחרות.

נשמר ב-JSON של `parameter`:

{
  "prompt": "user prompt here",
  "result": [
    { "name": "message", "type": "text" }
  ],
  "context_sources": ["customer_data", "customer_chat"]
}

4) שאילתות הקשר

כאשר נבחרו מקורות הקשר, סביבת הריצה בונה:

- `customer_data`: נתוני לקוח נוכחיים שכבר נמצאים בסביבת הריצה. - `customer_documents`: `SELECT * FROM documents WHERE cus_id = ? ORDER BY id DESC` - `customer_entries`: `SELECT * FROM tabs WHERE cus_id = ? ORDER BY id DESC` - `customer_chat`: משתמש באחד מההוקים הבאים אם קיים: - `automation_ai_get_last_customer_messages($cus_id, 10)` - `get_last_customer_messages_for_ai($cus_id, 10)` - גיבוי (fallback): מערך ריק

5) תמיכה בקבצים בהנחיה (prompt)

אם ההנחיה (prompt) מכילה נתיבי קבצים מלאים (pdf/image/audio), סביבת הריצה מזהה אותם אוטומטית ומצרפת אותם לבקשת Gemini כנתונים מוטבעים.

סיומות שזוהו:

- pdf - png / jpg / jpeg / gif / webp - mp3 / wav / ogg / m4a

6) API / מודל

- בדיקות מקור מפתח API: - `$GLOBALS['public']` - `$GLOBALS['public_var']` - ערכי סביבה `GEMINI_API_KEY` - ברירת מחדל של המודל: - `gemini-3.0-flash`

7) דוגמאות מעשיות

A) תשובה מצ'אט הלקוח האחרון

הנחיה (Prompt):

`answer to customer last message politly and save it in message`

סכימת תוצאה:

- `message` (text)

שימוש בשלב `sendEmail` הבא:

- `{ai-message}`

B) תמלול מקובץ שנשלח

הנחיה (Prompt):

`your job is to give transcription of last call in {file} and put it in transcript`

סכימת תוצאה:

- `transcript` (text)

שימוש בשלב הבא (לדוגמה, עדכון שדה מותאם אישית):

- `{ai-transcript}`

הערה: מפתח מציין המקום חייב להתאים בדיוק לשם שדה התוצאה. אם השדה הוא `transcription`, השתמש ב-`{ai-transcription}`.