Google चे Agent Development Kit (ADK) कार्य व्यवस्थापित करण्यासाठी दोन मुख्य मार्ग प्रदान करते.

डायनॅमिक मल्टी-एजंट राउटिंग (Dynamic Multi-Agent Routing)

राउटिंग मॉडेलमध्ये, एक मध्यवर्ती समन्वयक (central coordinator) वापरकर्त्याची विनंती प्राप्त करतो आणि ती तज्ज्ञ एजंट्सकडे (specialist agents) पाठवतो. कोणता तज्ज्ञ काम करेल याचा निर्णय समन्वयक घेतो, तो तज्ज्ञ आपले काम पूर्ण करतो आणि त्यानंतर नियंत्रण पुन्हा मूळ (parent) कडे येते.

  • हे कसे कार्य करते – समन्वयक एका तज्ज्ञाची निवड करतो, कार्य पुढे पाठवतो आणि पुढील पाऊल उचलण्यापूर्वी प्रतिसादाची प्रतीक्षा करतो.
  • फायदे – लवचिकता (Flexibility) दिसून येते. कारण LLM रनटाइममध्ये मार्ग निवडते, त्यामुळे फ्लो पुन्हा न लिहिता प्रणाली नवीन किंवा अनपेक्षित इनपुटनुसार स्वतःला जुळवून घेते.
  • तोटे – प्रत्येक टप्प्यामुळे (hop) नेटवर्क आणि प्रोसेसिंगचा भार वाढतो, त्यामुळे सरळ-रेषेतील (straight-line) पाइपलाइनच्या तुलनेत विलंब (latency) वाढतो.

सिक्वेन्शिअल वर्कफ्लो लूप्स (Sequential Workflow Loops)

लूप मॉडेलमध्ये समन्वयाची जागा एक सिंगल LoopAgent घेतो, जो पूर्व-निर्धारित पायऱ्यांच्या क्रमाने काम करतो आणि एक 'म्युटेबल सेशन स्टेट' (mutable session state) शेअर करतो.

  • हे कसे कार्य करते – एजंट्स एक शेअर केलेली की (key) वाचतात, ती अपडेट करतात आणि जोपर्यंत क्रम संपत नाही तोपर्यंत नियंत्रण पुढच्या पायरीकडे सोपवतात.
  • फायदे – अंदाज वर्तवता येण्यासारखे (Predictability). क्रम कधीही बदलत नाही, ज्यामुळे डीबगिंग (debugging) आणि परफॉर्मन्स ट्यूनिंग सोपे होते.
  • तोटे – ताठरता (Rigidity). ठरलेल्या क्रमापासून विचलित होण्याची गरज भासल्यास संपूर्ण लूपची पुनर्रचना करावी लागते.

प्रत्यक्ष चाचणी: गणिती अभिव्यक्ती पार्सर (Math Expression Parser)

हे पॅटर्न प्रत्यक्ष पाहण्यासाठी, आम्ही एक साधा पार्सर तयार केला आहे जो चार तज्ज्ञ एजंट्सचा वापर करून गणिती क्रियांचे मूल्यमापन करतो: adder, subtracter, multiplier, आणि divider.

वर्कफ्लो लूपमधून मिळालेले धडे

  1. अनंत लूप्स (infinite loops) रोखा – आम्ही प्रत्येक एजंटला शेअर केलेली स्टेट अपडेट केल्यानंतर लगेच मजकूर आउटपुट देण्याचे आणि आपली पाळी संपवण्याचे निर्देश दिले. त्या संरक्षणाशिवाय (guard) लूप अनंतकाळ चालू राहू शकला असता.
  2. गणिती तर्क (math logic) कायम ठेवा – आम्ही adder ला क्रमाने क्रिया (order of operations) पाळण्यासाठी स्पष्ट मार्गदर्शन दिले, जेणेकरून वजाबाकीचे नियम मोडले जाणार नाहीत.
  3. शांतपणे बाहेर पडणे (silent exits) टाळा – आम्ही एजंट्सना 'exit tool' वापरण्यापूर्वी अंतिम निकाल प्रिंट करण्यास भाग पाडले, जेणेकरून वापरकर्त्याला अचानक प्रक्रिया थांबण्याऐवजी निकाल दिसेल.

एरर हँडलिंग (Error Handling)

आम्ही divider तज्ज्ञ एजंटच्या आधी 'झिरो-डिव्हिजन गार्ड' (zero-division guard) जोडला आहे. हा गार्ड प्रथम विभाजक (divisor) तपासतो; जर तो शून्य असेल, तर तो प्रक्रिया थांबवतो, ज्यामुळे संपूर्ण प्रणालीला रनटाइम एक्सेप्शनपासून (runtime exception) वाचवता येते.

तुमच्या प्रकल्पासाठी कोणता पॅटर्न योग्य आहे?

  • मल्टी-एजंट राउटिंग निवडा जेव्हा कार्ये वेगाने बदलतात, इनपुटमध्ये मोठी विविधता असते, किंवा तुम्हाला रनटाइममध्ये सर्वोत्तम तज्ज्ञ निवडण्यासाठी LLM ची गरज असते. याचा तोटा म्हणजे जास्त विलंब (latency), परंतु प्रणाली कोडमध्ये बदल न करता अनपेक्षित परिस्थिती हाताळू शकते.
  • वर्कफ्लो लूप्स निवडा जेव्हा तुमच्याकडे एक सुस्पष्ट पाइपलाइन असते—उदाहरणार्थ डेटा क्लीनिंग, ट्रान्सफॉर्मेशन, ॲग्रिगेशन—जिथे प्रत्येक पायरी एका विशिष्ट क्रमाने होणे आवश्यक असते. याचा फायदा म्हणजे कमी विलंब आणि सोपे डीबगिंग, परंतु यामध्ये डायनॅमिकली शाखा (branch) तयार करता येत नाही.