צוותי סוכנים
סוכני Triggerfish יכולים ליצור צוותים עמידים של סוכנים משתפי פעולה שעובדים יחד על משימות מורכבות. כל חבר צוות מקבל סשן, תפקיד, הקשר שיחה וכלים משלו. חבר אחד מוגדר כמוביל ומתאם את העבודה.
צוותים מתאימים ביותר למשימות פתוחות הנהנות מתפקידים מתמחים שעובדים במקביל: מחקר + ניתוח + כתיבה, ארכיטקטורה + יישום + סקירה, או כל משימה שבה נקודות מבט שונות צריכות לחזור על עבודת השני.
זמינות
צוותי סוכנים דורשים את תוכנית Power ($149/חודש) בעת שימוש ב-Triggerfish Gateway. משתמשי קוד פתוח המריצים מפתחות API משלהם מקבלים גישה מלאה לצוותי סוכנים -- כל חבר צוות צורך inference מהספק המוגדר שלכם.
כלים
team_create
יצירת צוות עמיד של סוכנים משתפי פעולה על משימה. הגדירו תפקידי חברים, כלים ומודלים. בדיוק חבר אחד חייב להיות המוביל.
| פרמטר | סוג | נדרש | תיאור |
|---|---|---|---|
name | string | כן | שם צוות קריא לאדם |
task | string | כן | מטרת הצוות (נשלח למוביל כהוראות ראשוניות) |
members | array | כן | הגדרות חברי צוות (ראו להלן) |
idle_timeout_seconds | number | לא | timeout חוסר פעילות לכל חבר. ברירת מחדל: 300 (5 דקות) |
max_lifetime_seconds | number | לא | זמן חיים מקסימלי לצוות. ברירת מחדל: 3600 (שעה) |
classification_ceiling | string | לא | תקרת סיווג כלל-צוותית (למשל CONFIDENTIAL) |
הגדרת חבר:
| שדה | סוג | נדרש | תיאור |
|---|---|---|---|
role | string | כן | מזהה תפקיד ייחודי (למשל researcher, reviewer) |
description | string | כן | מה חבר זה עושה (מוזרק ל-system prompt) |
is_lead | boolean | כן | האם חבר זה הוא מוביל הצוות |
model | string | לא | דריסת מודל לחבר זה |
classification_ceiling | string | לא | תקרת סיווג לכל חבר |
initial_task | string | לא | הוראות ראשוניות (למוביל ברירת מחדל למשימת הצוות) |
כללי אימות:
- לצוות חייב להיות בדיוק חבר אחד עם
is_lead: true - כל התפקידים חייבים להיות ייחודיים ולא ריקים
- תקרות סיווג חברים אינן יכולות לחרוג מתקרת הצוות
nameו-taskחייבים להיות לא ריקים
team_status
בדיקת מצב נוכחי של צוות פעיל.
| פרמטר | סוג | נדרש | תיאור |
|---|---|---|---|
team_id | string | כן | מזהה צוות |
מחזיר את סטטוס הצוות, רמת זיהום מצטברת ופרטים לכל חבר כולל זיהום נוכחי של כל חבר, סטטוס וחותמת זמן פעילות אחרונה.
team_message
שליחת הודעה לחבר צוות ספציפי. שימושי למתן הקשר נוסף, הפניית עבודה מחדש או בקשת עדכוני התקדמות.
| פרמטר | סוג | נדרש | תיאור |
|---|---|---|---|
team_id | string | כן | מזהה צוות |
role | string | לא | תפקיד חבר היעד (ברירת מחדל למוביל) |
message | string | כן | תוכן ההודעה |
הצוות חייב להיות בסטטוס running וחבר היעד חייב להיות active או idle.
team_disband
סגירת צוות וסיום כל סשנים של חברים.
| פרמטר | סוג | נדרש | תיאור |
|---|---|---|---|
team_id | string | כן | מזהה צוות |
reason | string | לא | למה הצוות מפורק |
רק הסשן שיצר את הצוות או חבר המוביל יכולים לפרק את הצוות.
כיצד צוותים עובדים
יצירה
כאשר הסוכן קורא ל-team_create, Triggerfish:
- מאמת את הגדרת הצוות (תפקידים, ספירת מובילים, תקרות סיווג)
- יוצר סשן סוכן מבודד לכל חבר דרך מפעל האורקסטרטור
- מזריק prompt רשימת צוות ל-system prompt של כל חבר, המתאר את תפקידו, שותפיו להוראות שיתוף פעולה
- שולח את המשימה הראשונית למוביל (או
initial_taskמותאם לכל חבר) - מתחיל מוניטור מחזור חיים שבודק תקינות צוות כל 30 שניות
כל סשן חבר מבודד לחלוטין עם הקשר שיחה, מעקב זיהום וגישת כלים משלו.
שיתוף פעולה
חברי צוות מתקשרים זה עם זה באמצעות sessions_send. הסוכן היוצר אינו צריך להעביר הודעות בין חברים. הזרימה הטיפוסית:
- המוביל מקבל את מטרת הצוות
- המוביל מפרק את המשימה ושולח הקצאות לחברים דרך
sessions_send - חברים עובדים באופן אוטונומי, קוראים לכלים וחוזרים
- חברים שולחים תוצאות חזרה למוביל (או ישירות לחבר אחר)
- המוביל מסנתז תוצאות ומחליט מתי העבודה הושלמה
- המוביל קורא ל-
team_disbandלסגירת הצוות
הודעות בין חברי צוות נמסרות ישירות דרך האורקסטרטור -- כל הודעה מפעילה תור סוכן מלא בסשן הנמען.
סטטוס
השתמשו ב-team_status לבדיקת התקדמות בכל עת. התגובה כוללת:
- סטטוס צוות:
running,paused,completed,disbandedאוtimed_out - זיהום מצטבר: רמת הסיווג הגבוהה ביותר בכל החברים
- פרטי חברים: תפקיד, סטטוס (
active,idle,completed,failed), רמת זיהום נוכחית וחותמת זמן פעילות אחרונה
פירוק
ניתן לפרק צוותים על ידי:
- הסשן היוצר שקורא ל-
team_disband - חבר המוביל שקורא ל-
team_disband - מוניטור מחזור החיים שמפרק אוטומטית לאחר שמגבלת זמן החיים פגה
- מוניטור מחזור החיים שמזהה שכל החברים לא פעילים
כאשר צוות מפורק, כל סשני החברים הפעילים מסיימים ומשאבים מנוקים.
תפקידי צוות
מוביל
חבר המוביל מתאם את הצוות. בעת יצירה:
- מקבל את
taskשל הצוות כהוראות ראשוניות (אלא אם נדרס על ידיinitial_task) - מקבל הוראות system prompt לפירוק עבודה, הקצאת משימות והחלטה מתי המטרה הושגה
- מורשה לפרק את הצוות
יש בדיוק מוביל אחד לכל צוות.
חברים
חברים שאינם מובילים הם מומחים. בעת יצירה:
- מקבלים את
initial_taskשלהם אם סופק, אחרת ממתינים בחוסר פעילות עד שהמוביל שולח להם עבודה - מקבלים הוראות system prompt לשליחת עבודה מושלמת למוביל או לשותף המתאים הבא
- אינם יכולים לפרק את הצוות
ניטור מחזור חיים
לצוותים יש ניטור מחזור חיים אוטומטי שרץ כל 30 שניות.
Timeout חוסר פעילות
לכל חבר יש timeout חוסר פעילות (ברירת מחדל: 5 דקות). כאשר חבר בחוסר פעילות:
- סף ראשון (idle_timeout_seconds): החבר מקבל הודעת דחיפה שמבקשת ממנו לשלוח תוצאות אם עבודתו הושלמה
- סף כפול (2x idle_timeout_seconds): החבר מסיים והמוביל מקבל התראה
Timeout זמן חיים
לצוותים יש זמן חיים מקסימלי (ברירת מחדל: שעה). כאשר המגבלה מושגת:
- המוביל מקבל הודעת אזהרה עם 60 שניות להפקת פלט סופי
- לאחר תקופת החסד, הצוות מפורק אוטומטית
בדיקות תקינות
המוניטור בודק תקינות סשן כל 30 שניות:
- כשל מוביל: אם סשן המוביל אינו נגיש יותר, הצוות מושהה והסשן היוצר מקבל התראה
- כשל חבר: אם סשן חבר נעלם, הוא מסומן כ-
failedוהמוביל מקבל התראה להמשיך עם החברים הנותרים - כולם לא פעילים: אם כל החברים
completedאוfailed, הסשן היוצר מקבל התראה לפרק או להזריק הוראות חדשות
סיווג וזיהום
סשני חברי צוות עוקבים אחר אותם כללי סיווג כמו כל הסשנים האחרים:
- כל חבר מתחיל בזיהום
PUBLICועולה ככל שניגש לנתונים מסווגים - תקרות סיווג ניתנות להגדרה לכל צוות או לכל חבר להגבלת הנתונים שחברים יכולים לגשת אליהם
- אכיפת אין-כתיבה-למטה חלה על כל תקשורת בין חברים. חבר בזיהום
CONFIDENTIALאינו יכול לשלוח נתונים לחבר ב-PUBLIC - הזיהום המצטבר (הזיהום הגבוה ביותר בכל החברים) מדווח ב-
team_statusכך שהסשן היוצר יכול לעקוב אחר החשיפה הסיווגית הכוללת של הצוות
אבטחה תקרות סיווג חברים אינן יכולות לחרוג מתקרת הצוות. אם
תקרת הצוות היא INTERNAL, אף חבר אינו יכול להיות מוגדר עם תקרת CONFIDENTIAL. זה מאומת בזמן יצירה. :::
צוותים מול תת-סוכנים
| היבט | תת-סוכן (subagent) | צוות (team_create) |
|---|---|---|
| זמן חיים | משימה יחידה, מחזיר תוצאה ויוצא | עמיד עד לפירוק או timeout |
| חברים | סוכן אחד | סוכנים מרובים עם תפקידים ייחודיים |
| אינטראקציה | שגר-ושכח מהורה | חברים מתקשרים בחופשיות דרך sessions_send |
| תיאום | הורה ממתין לתוצאה | מוביל מתאם, הורה יכול לבדוק דרך team_status |
| מקרה שימוש | האצלת שלב בודד ממוקדת | שיתוף פעולה מורכב רב-תפקידי |
השתמשו בתת-סוכנים כאשר צריכים סוכן יחיד לבצע משימה ממוקדת ולהחזיר תוצאה. השתמשו בצוותים כאשר המשימה נהנית ממספר נקודות מבט מתמחות החוזרות על עבודת השני.
צוותים אוטונומיים לאחר יצירה. הסוכן היוצר יכול לבדוק סטטוס
ולשלוח הודעות, אך אינו צריך לנהל מיקרו. המוביל מטפל בתיאום. :::
