तुम्हाला सब-एजंट्सची (Sub-Agents) गरज नाही
बहुतेक लोक एजंट आर्किटेक्चर (agent architectures) एखाद्या संघटनात्मक तक्त्याप्रमाणे (organizational charts) काढतात.
ते वरच्या बाजूला एक Orchestrator ठेवतात. ते Researcher, Coder आणि Tester कडे रेषा ओढतात. ते दिसायला सुटसुटीत आणि व्यावसायिक वाटते.
ती एक चूक आहे.
१९७५ मध्ये, फ्रेड ब्रुक्स यांनी लिहिले होते की, उशिरा सुरू झालेल्या सॉफ्टवेअर प्रोजेक्टमध्ये अधिक लोक जोडल्यामुळे तो अधिकच उशिरा होतो. हे घडते कारण कामाच्या वेगापेक्षा संवादाचा खर्च (communication costs) वेगाने वाढतो.
जेव्हा तुम्ही एजंट्सचा एक समूह (swarm of agents) तयार करता, तेव्हा तुम्ही हीच चूक पुन्हा करता.
Orchestrator आपला सर्व वेळ सब-टास्क (subtasks) व्यवस्थापित करण्यात घालवतो. यामुळे प्रचंड ओव्हरहेड (overhead) निर्माण होतो. तुम्ही आर्किटेक्चर तयार करत नाही आहात, तर तुम्ही फक्त प्लंबिंग (plumbing) करत आहात.
सब-एजंट्स का अपयशी ठरतात, याची कारणे खालीलप्रमाणे आहेत:
- कॉन्टेक्स्ट लॉस (Context loss): सब-एजंट त्याच्या स्वतःच्या विंडोमध्ये चालतो. तो त्याचे पूर्ण तर्क (reasoning) पेरेंटला (parent) देऊ शकत नाही. तो फक्त सारांश पाठवतो.
- महागडे पर्याय (Expensive workarounds): पेरेंटला काय घडले हे वाचता यावे यासाठी लोक एजंट्सना फाईल्स किंवा git मध्ये लिहिण्यास भाग पाडतात. तुम्ही शेअर मेमरीचा (shared memory) पुन्हा शोध घेत आहात, पण ती अधिक संथ करत आहात.
- टोकनचा अपव्यय (Token waste): प्रत्येक सीमेवर (boundary) कॉन्टेक्स्ट पास करण्यासाठी तुम्हाला पैसे मोजावे लागतात. N एजंट्सच्या समूहासाठी N+1 टोकन्सचा खर्च येतो.
- परस्परविरोधी निर्णय (Conflicting decisions): समांतर (parallel) एजंट्स वेगवेगळी गृहितके (assumptions) मांडतात. जर दोन एजंट्स एकच गोष्ट तयार करत असतील, तर ते अनेकदा वेगवेगळ्या शैली किंवा लॉजिकचा वापर करतात.
संशोधनानुसार, मल्टी-एजंट फ्रेमवर्क्सचा (multi-agent frameworks) अपयशाचा दर ४१% ते ८७% च्या दरम्यान आहे. हे अपयश एजंट्स एकमेकांशी नीट संवाद साधू शकत नसल्यामुळे येते. एक चांगले मॉडेल हे सोडवू शकणार नाही. ही समन्वयाची (coordination) समस्या आहे, मॉडेलची नाही.
त्याऐवजी तुम्ही कसे तयार केले पाहिजे?
या दोन नियमांचे पालन करा:
- जर कामे स्वतंत्र असतील, तर ती स्वतंत्र लूप्स (loops) म्हणून चालवा. दोन वेगळे प्रोग्राम वापरा. हे पॅरलल प्रोसेसिंग (parallel processing) आहे, मल्टी-एजंट सिस्टम नाही.
- जर कामासाठी विचारांच्या एकाच प्रवाहाची (single train of thought) आवश्यकता असेल, तर एकच लूप वापरा.
एकल लूप सर्व कॉन्टेक्स्ट एकाच ठिकाणी ठेवते. ते सहजपणे स्वतःला सुधारू शकते (self-corrects). ते गोंधळलेल्या ग्रुप चॅटऐवजी एक स्वच्छ इतिहास (clean history) ठेवते.
मेष (meshes) बनवणे थांबवा. लूप्स (loops) बनवायला सुरुवात करा.
Source: https://dev.to/tony__vi/you-dont-need-sub-agents-1eh7
Optional learning community: https://t.me/GyaanSetuAi