Agent Teams
Triggerfish agents स्थायी सहयोगी agents की टीमें बना सकते हैं जो जटिल कार्यों पर एक साथ काम करती हैं। प्रत्येक टीम सदस्य को अपना session, भूमिका, वार्तालाप संदर्भ, और tools मिलते हैं। एक सदस्य को lead नामित किया जाता है और वह कार्य का समन्वय करता है।
Teams उन खुले कार्यों के लिए सर्वोत्तम हैं जो विशेष भूमिकाओं से समानांतर में लाभ उठाते हैं: अनुसंधान + विश्लेषण + लेखन, आर्किटेक्चर + कार्यान्वयन + समीक्षा, या कोई भी कार्य जहाँ विभिन्न दृष्टिकोणों को एक-दूसरे के काम पर पुनरावृत्ति करने की आवश्यकता होती है।
उपलब्धता
Agent Teams के लिए Triggerfish Gateway उपयोग करते समय Power plan ($149/माह) आवश्यक है। अपनी API keys चलाने वाले open source उपयोगकर्ताओं के पास agent teams तक पूर्ण पहुँच है -- प्रत्येक टीम सदस्य आपके कॉन्फ़िगर किए गए provider से inference उपभोग करता है।
Tools
team_create
Agents की एक स्थायी टीम बनाएँ जो किसी कार्य पर सहयोग करती है। सदस्य भूमिकाएँ, tools, और models परिभाषित करें। बिल्कुल एक सदस्य lead होना चाहिए।
| Parameter | Type | आवश्यक | विवरण |
|---|---|---|---|
name | string | हाँ | मानव-पठनीय टीम नाम |
task | string | हाँ | टीम का उद्देश्य (lead को प्रारंभिक निर्देशों के रूप में भेजा जाता है) |
members | array | हाँ | टीम सदस्य परिभाषाएँ (नीचे देखें) |
idle_timeout_seconds | number | नहीं | प्रति-सदस्य निष्क्रियता timeout। डिफ़ॉल्ट: 300 (5 मिनट) |
max_lifetime_seconds | number | नहीं | अधिकतम टीम जीवनकाल। डिफ़ॉल्ट: 3600 (1 घंटा) |
classification_ceiling | string | नहीं | टीम-व्यापी classification ceiling (जैसे CONFIDENTIAL) |
सदस्य परिभाषा:
| फ़ील्ड | Type | आवश्यक | विवरण |
|---|---|---|---|
role | string | हाँ | अद्वितीय भूमिका पहचानकर्ता (जैसे researcher, reviewer) |
description | string | हाँ | यह सदस्य क्या करता है (system prompt में इंजेक्ट किया जाता है) |
is_lead | boolean | हाँ | क्या यह सदस्य टीम lead है |
model | string | नहीं | इस सदस्य के लिए model override |
classification_ceiling | string | नहीं | प्रति-सदस्य classification ceiling |
initial_task | string | नहीं | प्रारंभिक निर्देश (lead डिफ़ॉल्ट रूप से टीम task उपयोग करता है) |
सत्यापन नियम:
- टीम में बिल्कुल एक सदस्य
is_lead: trueके साथ होना चाहिए - सभी भूमिकाएँ अद्वितीय और गैर-रिक्त होनी चाहिए
- सदस्य classification ceilings टीम ceiling से अधिक नहीं हो सकतीं
nameऔरtaskगैर-रिक्त होने चाहिए
team_status
एक सक्रिय टीम की वर्तमान स्थिति जाँचें।
| Parameter | Type | आवश्यक | विवरण |
|---|---|---|---|
team_id | string | हाँ | Team ID |
टीम की स्थिति, समग्र taint स्तर, और प्रति-सदस्य विवरण लौटाता है जिसमें प्रत्येक सदस्य का वर्तमान taint, स्थिति, और अंतिम गतिविधि timestamp शामिल है।
team_message
एक विशिष्ट टीम सदस्य को संदेश भेजें। अतिरिक्त संदर्भ प्रदान करने, कार्य को पुनर्निर्देशित करने, या प्रगति अपडेट माँगने के लिए उपयोगी।
| Parameter | Type | आवश्यक | विवरण |
|---|---|---|---|
team_id | string | हाँ | Team ID |
role | string | नहीं | लक्ष्य सदस्य भूमिका (डिफ़ॉल्ट lead) |
message | string | हाँ | संदेश सामग्री |
टीम running स्थिति में होनी चाहिए और लक्ष्य सदस्य active या idle होना चाहिए।
team_disband
एक टीम बंद करें और सभी सदस्य sessions समाप्त करें।
| Parameter | Type | आवश्यक | विवरण |
|---|---|---|---|
team_id | string | हाँ | Team ID |
reason | string | नहीं | टीम क्यों भंग की जा रही है |
केवल वह session जिसने टीम बनाई है या lead सदस्य ही टीम भंग कर सकता है।
Teams कैसे काम करती हैं
निर्माण
जब agent team_create कॉल करता है, Triggerfish:
- टीम परिभाषा को सत्यापित करता है (भूमिकाएँ, lead गिनती, classification ceilings)
- Orchestrator factory के माध्यम से प्रत्येक सदस्य के लिए एक अलग agent session बनाता है
- प्रत्येक सदस्य के system prompt में एक team roster prompt इंजेक्ट करता है, जो उनकी भूमिका, साथियों, और सहयोग निर्देशों का वर्णन करता है
- Lead को प्रारंभिक कार्य भेजता है (या प्रति सदस्य कस्टम
initial_task) - एक lifecycle monitor शुरू करता है जो हर 30 सेकंड में टीम स्वास्थ्य जाँचता है
प्रत्येक सदस्य session पूरी तरह अलग है अपने वार्तालाप संदर्भ, taint ट्रैकिंग, और tool पहुँच के साथ।
सहयोग
टीम सदस्य sessions_send का उपयोग करके एक-दूसरे से संवाद करते हैं। बनाने वाले agent को सदस्यों के बीच संदेश रिले करने की आवश्यकता नहीं है। विशिष्ट प्रवाह:
- Lead टीम उद्देश्य प्राप्त करता है
- Lead कार्य को विभाजित करता है और
sessions_sendके माध्यम से सदस्यों को असाइनमेंट भेजता है - सदस्य स्वायत्त रूप से काम करते हैं, tools कॉल करते हैं और पुनरावृत्ति करते हैं
- सदस्य परिणाम lead को (या सीधे दूसरे सदस्य को) वापस भेजते हैं
- Lead परिणामों को संश्लेषित करता है और तय करता है कि कार्य कब पूरा है
- Lead टीम बंद करने के लिए
team_disbandकॉल करता है
टीम सदस्यों के बीच संदेश orchestrator के माध्यम से सीधे डिलीवर किए जाते हैं -- प्रत्येक संदेश प्राप्तकर्ता के session में एक पूर्ण agent turn ट्रिगर करता है।
स्थिति
किसी भी समय प्रगति जाँचने के लिए team_status उपयोग करें। प्रतिक्रिया में शामिल है:
- टीम स्थिति:
running,paused,completed,disbanded, याtimed_out - समग्र taint: सभी सदस्यों में उच्चतम classification स्तर
- प्रति-सदस्य विवरण: भूमिका, स्थिति (
active,idle,completed,failed), वर्तमान taint स्तर, और अंतिम गतिविधि timestamp
भंग
Teams इनके द्वारा भंग की जा सकती हैं:
- बनाने वाला session
team_disbandकॉल करता है - Lead सदस्य
team_disbandकॉल करता है - Lifecycle monitor जीवनकाल सीमा समाप्त होने के बाद स्वचालित रूप से भंग करता है
- Lifecycle monitor यह पता लगाता है कि सभी सदस्य निष्क्रिय हैं
जब एक टीम भंग होती है, सभी सक्रिय सदस्य sessions समाप्त किए जाते हैं और संसाधन साफ़ किए जाते हैं।
टीम भूमिकाएँ
Lead
Lead सदस्य टीम का समन्वय करता है। बनाने पर:
- टीम के
taskको प्रारंभिक निर्देशों के रूप में प्राप्त करता है (जब तकinitial_taskद्वारा ओवरराइड न किया जाए) - कार्य विभाजन, कार्य सौंपने, और उद्देश्य पूरा होने पर निर्णय लेने के लिए system prompt निर्देश प्राप्त करता है
- टीम भंग करने के लिए अधिकृत है
प्रति टीम बिल्कुल एक lead होता है।
सदस्य
गैर-lead सदस्य विशेषज्ञ होते हैं। बनाने पर:
- यदि प्रदान किया गया तो अपना
initial_taskप्राप्त करते हैं, अन्यथा lead द्वारा कार्य भेजे जाने तक निष्क्रिय रहते हैं - पूर्ण कार्य lead को या अगले उपयुक्त साथी को भेजने के लिए system prompt निर्देश प्राप्त करते हैं
- टीम भंग नहीं कर सकते
Lifecycle निगरानी
Teams में स्वचालित lifecycle निगरानी होती है जो हर 30 सेकंड चलती है।
निष्क्रियता Timeout
प्रत्येक सदस्य का एक निष्क्रियता timeout होता है (डिफ़ॉल्ट: 5 मिनट)। जब कोई सदस्य निष्क्रिय होता है:
- पहली सीमा (idle_timeout_seconds): सदस्य को एक nudge संदेश प्राप्त होता है जो उनसे पूछता है कि क्या कार्य पूरा होने पर परिणाम भेजें
- दोहरी सीमा (2x idle_timeout_seconds): सदस्य समाप्त किया जाता है और lead को सूचित किया जाता है
जीवनकाल Timeout
Teams का अधिकतम जीवनकाल होता है (डिफ़ॉल्ट: 1 घंटा)। जब सीमा पहुँच जाती है:
- Lead को 60 सेकंड के साथ अंतिम आउटपुट देने के लिए चेतावनी संदेश प्राप्त होता है
- Grace अवधि के बाद, टीम स्वचालित रूप से भंग हो जाती है
स्वास्थ्य जाँच
Monitor हर 30 सेकंड session स्वास्थ्य जाँचता है:
- Lead विफलता: यदि lead session अब पहुँच योग्य नहीं है, टीम रुक जाती है और बनाने वाले session को सूचित किया जाता है
- सदस्य विफलता: यदि कोई सदस्य session गायब है, उसे
failedचिह्नित किया जाता है और lead को शेष सदस्यों के साथ जारी रखने के लिए सूचित किया जाता है - सभी निष्क्रिय: यदि सभी सदस्य
completedयाfailedहैं, बनाने वाले session को नए निर्देश देने या भंग करने के लिए सूचित किया जाता है
Classification और Taint
टीम सदस्य sessions सभी अन्य sessions के समान classification नियमों का पालन करते हैं:
- प्रत्येक सदस्य
PUBLICtaint से शुरू होता है और वर्गीकृत डेटा तक पहुँचने पर बढ़ता है - Classification ceilings प्रति-टीम या प्रति-सदस्य सेट किए जा सकते हैं ताकि सदस्य किस डेटा तक पहुँच सकें उसे प्रतिबंधित किया जाए
- Write-down प्रवर्तन सभी अंतर-सदस्य संचार पर लागू होता है।
CONFIDENTIALपर tainted सदस्यPUBLICसदस्य को डेटा नहीं भेज सकता - समग्र taint (सभी सदस्यों में उच्चतम taint)
team_statusमें रिपोर्ट किया जाता है ताकि बनाने वाला session टीम के समग्र classification जोखिम को ट्रैक कर सके
सुरक्षा सदस्य classification ceilings टीम ceiling से अधिक नहीं हो
सकतीं। यदि टीम ceiling INTERNAL है, तो कोई सदस्य CONFIDENTIAL ceiling के साथ कॉन्फ़िगर नहीं किया जा सकता। यह निर्माण समय पर सत्यापित किया जाता है। :::
Teams बनाम Sub-Agents
| पहलू | Sub-Agent (subagent) | Team (team_create) |
|---|---|---|
| जीवनकाल | एकल कार्य, परिणाम लौटाता है और बंद होता है | भंग या timeout तक स्थायी |
| सदस्य | एक agent | विशिष्ट भूमिकाओं वाले कई agents |
| इंटरैक्शन | पैरेंट से fire-and-forget | सदस्य sessions_send के माध्यम से स्वतंत्र रूप से संवाद करते हैं |
| समन्वय | पैरेंट परिणाम की प्रतीक्षा करता है | Lead समन्वय करता है, पैरेंट team_status से जाँच कर सकता है |
| उपयोग | केंद्रित एकल-चरण प्रत्यायोजन | जटिल बहु-भूमिका सहयोग |
Sub-agents उपयोग करें जब आपको एक agent को एक केंद्रित कार्य करने और परिणाम लौटाने की आवश्यकता हो। Teams उपयोग करें जब कार्य कई विशेष दृष्टिकोणों से एक-दूसरे के काम पर पुनरावृत्ति करने से लाभ उठाता है।
Teams बनाने के बाद स्वायत्त होती हैं। बनाने वाला agent स्थिति जाँच सकता
है और संदेश भेज सकता है, लेकिन सूक्ष्म प्रबंधन की आवश्यकता नहीं है। Lead समन्वय संभालता है। :::
