במקום להסתמך על סוכן אחד שמנסה לעשות הכל (Generalist), נבנה ארכיטקטורה הכוללת "סוכן מנתב" (Router/Classifier) ושלושה סוכנים מקצועיים (Specialists): תמיכה טכנית, כספים ושיווק. הסוכן המנתב יקרא את המייל הנכנס, יסווג אותו לקטגוריה הנכונה, ויעביר את המושכות לסוכן הרלוונטי להמשך הטיפול.
שימו לב – תרגול זה מובנה מאוד והוא מהווה בסיס למחקר וללימוד דרך ״לכלוך הידיים״ בהמשך הדרך. חשוב להכיר את החלקים השונים בתרגול ובמערכת. עם זאת – בכל פרק וסעיף, הרגישו חופשי לחקור יותר לעומק ולסקור גם מושגים שונים ואפשרויות שונות שלא הוזכרו במפורש. נתקעתם? לא נורא – חזרו להוראות המקוריות, ותמיד אפשר להתחיל פרויקט חדש ונקי, ולהתנסות מראש הפרק הנוכחי.
בהצלחה!
1. הקמת הטריגר וחיבור למייל
השלב הראשון הוא יצירת ערוץ הכניסה של המידע. נשתמש בטריגר של Gmail כדי לקלוט הודעות נכנסות בזמן אמת.
- הוספת הטריגר:
- פתחו Workflow חדש ב-n8n.
- לחצו על כפתור ההוספה (+) וחפשו את ה-Node שנקרא Gmail Trigger.
- שימו לב: אם אין לכם חיבור Gmail מוגדר, זה הזמן לבצע את האימות (Authentication) מול חשבון הגוגל שלכם.
- הגדרת האזנה:
- הגדירו את הטריגר לפעול על Message Received (קבלת הודעה).
- כדי למנוע עומס בתרגול, מומלץ להוסיף פילטר ולקרוא רק מיילים שלא נקראו (Unread), או מיילים המכילים מילה ספציפית בנושא (למשל: "Demo").
- בדיקה ראשונית:
- שלחו לעצמכם מייל בדיקה עם הנושא "בעיה בחשבונית".
- לחצו על Test Step ב-Node וודאו שקיבלתם את אובייקט ה-JSON של המייל.
2. בניית הסוכן המנתב (The Classifier)
זהו הלב של המודל שלנו. הסוכן הזה לא עונה למייל, אלא רק מנתח אותו ומחליט מי צריך לטפל בו. נשתמש ב-AI Agent המחובר למודל שפה.
- הוספת נתב ה-AI:
- הוסיפו בלוק מסוג Text Classifier.
- חברו אותו אחרי ה-Gmail Trigger.
- חברו לבלוק מודל שפה מינימלי כגון GPT-4.1-mini.
- הגדרת הוראות המערכת (System Prompt):
- פתחו את הגדרות הנתב.
- בשדה ה-Instruction (הוראות), הדביקו את הפרומפט הבא שמגדיר לו את תפקידו כממיין:
Please classify the text provided by the user into one of the following categories: {categories}, and use the provided formatting instructions below. Don't explain, and only output the json.
- הזרקת המידע ויצירת הקטגוריות:
- בשדה ה Text to Classify של הנתב – משכו את נתון ה
textמהטריגר של Gmail.
יתקבל הביטוי{{ $json.text }}. - תחת Categories הוסיפו 4 קטגוריות שונות לפי התיאור הבא:
Category Description High PriorityEmails requiring immediate attention or action, typically from key stakeholders, clients, or decision-makers. These emails often contain time-sensitive requests, deadlines, or escalated issues. Keywords: urgent, ASAP, immediate, deadline, action required, high priorityCustomer SupportEmails related to ongoing communication with current clients or customers, including service requests, feedback, support tickets, and inquiries. Keywords: request, inquiry, support, question, follow-up, feedbackPromotionsEmails related to marketing campaigns, promotional offers, newsletters, or business updates from partners. Typically these emails contain content aimed at engaging your audience or updating on promotions. Keywords: newsletter, promotion, offer, sale, campaign, marketing, launchFinance/BillingDescription: Emails related to financial matters, such as invoices, billing statements, payment reminders, or expense reports. Anything involving transactions or accounting should fall under this label. Keywords: invoice, payment, billing, receipt, financial, expense, account
- בשדה ה Text to Classify של הנתב – משכו את נתון ה
3. פיצול התהליך (Switch Logic)
כעת, כשיש לנו את הסיווג (הפלט של הסוכן הראשון), עלינו לטפל בכל מייל לפי הנתיב המתאים.
- Labeling:
בשלב הראשון – נתייג כל מייל עם התווית המתאימה לו. לפני ישום השלב הזה ב n8n, יש לוודא שהתויות הרלוונטיות קיימות בחשבון ה Gmail שלכם (כגון ״הנהלת חשבונות״, ״דחוף״, ״שירות לקוחות״ וכיו״ב). צרו תוית מתאימה לכל קטגוריה אם עוד לא עשיתם זאת, לפי ההוראות הרשמיות של גוגל.
- חברו לכל אחד מיציאות הנתב בלוק נפרד של Gmail עם הפעולה
Add Label. - בשדה ה Message ID של כל בלוק Add Label, משכו את הנתון המתאים מטריגר ה Gmail בתחילת התהליך.
- בשדה Label Names or IDs בחרו בתוית Gmail המתאימה להודעות בקטגוריה הרלוונטית.
- חברו לכל אחד מיציאות הנתב בלוק נפרד של Gmail עם הפעולה
4. הקמת סוכני הקצה (Specialists)
כעת ניצור את הסוכנים שיבצעו את העבודה בפועל. ניצור דוגמא עבור אחד מהם, ואתם תוכלו לשכפל את הלוגיקה עבור השאר.
- בניית סוכן ה-High Priority:
סוכן זה יטפל במיילים דחופים הזקוקים להתערבות אנושים מיידית. נעביר את הטיפול במיילים הללו לסוכן בעל כלים להעברת הודעה מיידית בערוץ טלגרם או Whatsapp.
- חברו ל-Output של בלוק ה Gmail-Label בענף הראשון, בלוק Ai Agent חדש, וחברו אליו מודל שפה מינימלי (יכול להיות אותו המודל שחיברתם ל Classifier).
- תנו לו שם: High Priority Agent.
- הגדירו לו את ה System Prompt הבא:
# Overview You are an agent in charge of high priority emails. Your job is to summarize incoming emails and escalate them to the human. ## Tools Whatsapp - Use this tool to escalate to a human. Send over the summary of the email in Hebrew.
שימו לב – במקרה הזה השתמשנו בכלי לשליחת הודעת Whatsapp דרך מערכת GreenAPI. ניתן להחליף את הכלי ב Telegram, או כל מערכת מסרים דומה.
אם אינכם מעוניינים כעת להעביר הודעה מיידית – ניתן לדלג על חלק זה ולנסח Draft בתוך Gmail כקיצור דרך למענה אנושי. - כוונו את הסוכן למצב קבלת פרומפט המשתמש ל Define Below.
- בשדה פרומפט המשתמש העבירו את הטקסט הדינמי הבא (עדכני בהתאם ל Workflow שלכם:
Email from: {{ $('Gmail Trigger').item.json.to.value[0].name }} With the Subject: {{ $('Gmail Trigger').item.json.subject }} - חברו והגדירו את כלי התקשורת המתאים לסוכם, בהתאם לסוג התקשורת שתבחרו. – כלי Telegram או כלי HTTP Request לשליחת הודעת Whatsapp דרך Green API.
- שכפול לסוכנים האחרים:
- חזרו על הפעולה עבור ענף ה-Customer Support וענפי ה-Promotion ו-Finance/Billing.
- עדכנו הוראות מערכת ופונקציונליות בהתאם. לדוגמא בסוכן המטפל בפניות לשירות הלקוחות, נרצה שינסח מייל תגובה כטיוטה, וישמור אותו בחשבון ה Gmail שלנו. נחבר אליו כלי Gmail-Create Draft, עם הוראות המערכת הבאות:
# Overview You are a customer support representative named Danny. Your job is to respond to customer inquiries in a friendly and professional manner. ## Tools Email Draft - Use this to send an email reply to a customer. Always sign off as Danny from Almaya.
5. תרגול פתוח
כעת שיש לכם מודל עובד של Routing, בואו ננסה לאתגר אותו ולשכלל את היכולות שלו.
-
טיפול במקרים מורכבים:
מה קורה אם המייל עוסק גם בבעיה טכנית וגם בבקשת זיכוי כספי? נסו לשנות את ה-Prompt של הסוכן המנתב (Classifier) כך שיחזיר פורמט JSON במקום מחרוזת פשוטה.{ "primary_agent": "Finance Agent", "secondary_agent": "Customer Support Agent", "is_urgent": true }התאימו את ה-Switch או הלוגיקה כדי לטפל בניתוב כפול (למשל, שליחה לשני הסוכנים במקביל).
-
הוספת סוכן "Human in the loop":
הוסיפו ענף רביעי ב-Switch עבור מקרים בהם הסוכן המנתב אינו בטוח (Confidence נמוך). במקרה כזה, שלחו את המייל לסקירה אנושית (למשל, הודעה ל-Slack) במקום למענה אוטומטי.
בתרגול זה בנינו מערכת ניתוב חכמה המדגימה את אחד העקרונות החשובים בעבודה עם LLMs: התמחות. במקום לצפות ממודל אחד לפתור כל בעיה, פירקנו את הבעיה למרכיבים: הבנה וסיווג (המוח המנתב), וביצוע מקצועי (הסוכנים המתמחים). ארכיטקטורה זו מאפשרת דיוק גבוה יותר, תחזוקה קלה יותר (קל לשנות הנחיות לסוכן כספים בלי לשבור את סוכן התמיכה), ויכולת גדילה (Scale) לאוטומציות מורכבות יותר בעתיד.