Google का Agent Development Kit (ADK) कार्यों को प्रबंधित करने के दो मुख्य तरीके प्रदान करता है।
डायनामिक मल्टी-एजेंट राउटिंग (Dynamic Multi-Agent Routing)
राउटिंग मॉडल में, एक केंद्रीय समन्वयक (central coordinator) उपयोगकर्ता के अनुरोध को प्राप्त करता है और उसे विशेषज्ञ एजेंटों (specialist agents) को भेज देता है। समन्वयक यह तय करता है कि किस विशेषज्ञ को कार्य करना चाहिए, विशेषज्ञ अपना काम पूरा करता है, और फिर नियंत्रण वापस पैरेंट (parent) के पास आ जाता है।
- यह कैसे काम करता है – समन्वयक एक विशेषज्ञ को चुनता है, कार्य को आगे भेजता है, और फिर आगे बढ़ने से पहले प्रतिक्रिया (response) का इंतज़ार करता है।
- फायदे (Pros) – लचीलापन (Flexibility) इसकी मुख्य विशेषता है। क्योंकि LLM रनटाइम पर रास्ता चुनता है, इसलिए सिस्टम बिना फ्लो को दोबारा लिखे नए या अप्रत्याशित इनपुट के अनुसार खुद को ढाल लेता है।
- नुकसान (Cons) – हर स्टेप (hop) नेटवर्क और प्रोसेसिंग का बोझ बढ़ाता है, जिससे एक सीधी पाइपलाइन की तुलना में लेटेंसी (latency) बढ़ जाती है।
सीक्वेंशियल वर्कफ़्लो लूप्स (Sequential Workflow Loops)
लूप मॉडल समन्वयक की जगह एक एकल LoopAgent का उपयोग करता है, जो चरणों के एक पूर्व-निर्धारित क्रम (predetermined sequence) का पालन करता है और एक परिवर्तनीय सत्र स्थिति (mutable session state) साझा करता है।
- यह कैसे काम करता है – एजेंट एक साझा की (shared key) को पढ़ते हैं, उसे अपडेट करते हैं, और क्रम समाप्त होने तक नियंत्रण अगले चरण को सौंप देते हैं।
- फायदे (Pros) – पूर्वानुमानयोग्यता (Predictability)। क्रम कभी नहीं बदलता, जिससे डिबगिंग (debugging) और परफॉरमेंस ट्यूनिंग आसान हो जाती है।
- नुकसान (Cons) – कठोरता (Rigidity)। निश्चित क्रम से अलग होने की किसी भी आवश्यकता के लिए लूप को फिर से डिज़ाइन करना पड़ता है।
प्रैक्टिकल टेस्ट: एक मैथ एक्सप्रेशन पार्सर (Math Expression Parser)
इन पैटर्न्स को काम करते हुए देखने के लिए, हमने एक सरल पार्सर बनाया है जो चार विशेषज्ञ एजेंटों का उपयोग करके अंकगणितीय अभिव्यक्तियों (arithmetic expressions) का मूल्यांकन करता है: adder, subtracter, multiplier, और divider।
वर्कफ़्लो लूप से सीखे गए सबक
- अनंत लूप (infinite loops) से बचें – हमने प्रत्येक एजेंट को निर्देश दिया कि वे साझा स्थिति (shared state) को अपडेट करने के तुरंत बाद टेक्स्ट आउटपुट दें और अपनी बारी समाप्त कर दें। उस सुरक्षा (guard) के बिना, लूप अनंत काल तक चलता रह सकता है।
- गणितीय तर्क (math logic) बनाए रखें – हमने adder को संचालन के क्रम (order of operations) का पालन करने के लिए स्पष्ट निर्देश दिए, ताकि वह घटाव (subtraction) के नियमों को न तोड़े।
- साइलेंट एग्जिट (silent exits) से बचें – हमने एजेंटों को exit टूल का उपयोग करने से पहले अंतिम परिणाम प्रिंट करने के लिए बाध्य किया, ताकि उपयोगकर्ता को अचानक समाप्ति के बजाय परिणाम दिखाई दे।
एरर हैंडलिंग (Error Handling)
हमने divider विशेषज्ञ के आगे एक zero-division गार्ड जोड़ा है। यह गार्ड पहले भाजक (divisor) की जाँच करता है; यदि यह शून्य है, तो यह प्रक्रिया को रोक देता है, जिससे पूरा सिस्टम रनटाइम एक्सेप्शन (runtime exception) से बच जाता है।
आपके प्रोजेक्ट के लिए कौन सा पैटर्न सही है?
- Multi-Agent Routing चुनें जब कार्य चलते-फिरते (on the fly) विकसित होते हों, इनपुट बहुत अधिक भिन्न होते हों, या आपको रनटाइम पर सबसे अच्छे विशेषज्ञ को चुनने के लिए LLM की आवश्यकता हो। इसका समझौता (trade-off) अधिक लेटेंसी है, लेकिन सिस्टम बिना कोड बदले अप्रत्याशित परिदृश्यों को संभाल लेता है।
- Workflow Loops चुनें जब आपके पास एक अच्छी तरह से परिभाषित पाइपलाइन हो—उदाहरण के लिए डेटा क्लीनिंग, ट्रांसफॉर्मेशन, एग्रीगेशन—जहाँ प्रत्येक चरण एक सख्त क्रम में होना चाहिए। इसका लाभ कम लेटेंसी और आसान डिबगिंग है, लेकिन इसकी कीमत यह है कि आप डायनामिक रूप से शाखाएं (branch) नहीं बना सकते।
