בקרת זרימה
מעבר ל-agents ואופרטורים, betool מספק צמתי בקרה לבניית הלוגיקה של pipeline.
תנאי
צומת condition מנתב exchanges לכמה פלטים לפי פרדיקט.
תצורה:
- Slot קלט — מה מוערך (
exchange.intent,webhook.payload.type...) - ענפים — לכל ערך (או תנאי בוליאני), פלט בעל שם
- ענף ברירת מחדל — חובה (fail-safe)
שימוש טיפוסי: ניתוב לפי כוונה שזוהתה על-ידי agent מסווג, או לפי סטטוס HTTP שהוחזר על-ידי אופרטור.
לולאה
צומת loop חוזר על אוסף. תצורה:
- Slot אוסף — הרשימה שעליה לחזור
- משתנה איטרציה — השם המקומי של האלמנט הנוכחי
- מגבלה — מספר איטרציות מקסימלי (אבטחה)
בכל תור, תת-הגרף הפנימי מבוצע על האלמנט הנוכחי. הפלטים מצטברים לרשימה.
לולאה בלתי מוגבלת היא פצצת זמן. קבעו תמיד את המגבלה המקסימלית. העורך מסרב לפרסם אחרת.
מסנן
צומת filter מסיר exchanges שאינם עומדים בפרדיקט. שימושי להתעלמות מרעש לפני עלויות LLM שבזרם.
לדוגמה: לסנן אימיילים שה-from שלהם נמצא ברשימה השחורה, או webhooks שה-type שלהם != "order.created".
אישור אנושי (confirmation)
צומת confirmation מפסיק זמנית את ה-pipeline וממתין לאדם שיאשר או ידחה מממשק הניהול.
תצורה:
- שאלה — מה מבקשים מהמאשר (עם placeholders קונטקסט)
- ענפים —
approved/rejected(ואפשרות לאפשרויות מותאמות) - Timeout — אם אין תגובה, ניתוב ברירת מחדל
- התראה — את מי להודיע (email, Mattermost, Slack)
מקרי שימוש טיפוסיים:
- אישור שיחה יוצאת על סכום גבוה.
- אימות אימייל ביטול לפני שליחה.
- אישור תגובה רגישה לפני פרסום.
ההיסטוריה שומרת את שם המאשר וחותמת הזמן — ניתן לאיתור לצורכי ביקורת.
המלצות
- חברו תמיד את פלט ברירת המחדל. exchange שנופל לחלל נשאר ב-
processingוחוסם את התור. - שמרו על פשטות התנאים. תנאי עם 12 ענפים הוא סימן לכך שאתם זקוקים לשני agents בסדרה במקום לוגיקה מרוכזת.
- הגבילו לולאות מקוננות. לולאה בתוך לולאה בתוך לולאה = עלות שמתפוצצת. עדיף לטרנספורם את האוסף מראש.