एजेंट टूल कॉल्स के लिए बाउंडेड रिट्राइज़ (Bounded Retries)
हमारे एजेंट द्वारा की गई सबसे खराब घटना कोई गलत उत्तर देना नहीं थी। वह एक लूप (loop) था।
एक टूल कॉल विफल हो गया। एजेंट ने दोबारा प्रयास (retry) किया। वह प्रयास फिर से विफल हो गया। एजेंट लगातार प्रयास करता रहा। इसने टोकन खर्च किए और एक मिनट में हमारे API को सैकड़ों बार हिट किया।
एजेंट ने वही किया जो हमने उसे करने के लिए कहा था। हमने उसे बताया था कि यदि कोई टूल विफल हो जाता है, तो दोबारा प्रयास करें। हम उसे यह बताना भूल गए कि कब रुकना है।
अस्थायी त्रुटियों (temporary errors) के लिए रिट्राइज़ अच्छे होते हैं। समस्या यह है कि एजेंट अस्थायी त्रुटि और स्थायी त्रुटि के बीच अंतर नहीं कर सकते। सीमाओं के बिना, एक एजेंट तब तक टूटे हुए कॉल को रिट्राइ करने की कोशिश करता रहता है जब तक कि कोई उसे रोक न दे।
पारंपरिक कोड में रिट्राइ लिमिट का उपयोग किया जाता है। एजेंट टूल कॉल्स ने इस निर्णय को मॉडल रीजनिंग (model reasoning) में स्थानांतरित कर दिया। इससे लूप अदृश्य और अनबाउंडेड (unbounded) हो गया।
हमने मॉडल के बाहर दो बजट जोड़कर इसे ठीक किया:
• प्रति-कॉल कैप (Per-call cap): एक विशिष्ट टूल को प्रयासों की एक निश्चित संख्या दी जाती है। यदि यह विफल हो जाता है, तो एजेंट को एक अलग रास्ता अपनाना चाहिए। • प्रति-सेशन बजट (Per-session budget): पूरे कार्य के लिए कुल टूल कॉल्स की एक सीमा होती है। यदि एजेंट इस सीमा तक पहुँच जाता है, तो वह रुक जाता है और मदद मांगता है।
सीमा अपने आप में समाधान नहीं है। सीमा समाप्त होने के बाद क्या होता है, यह मायने रखता है।
यदि आप केवल रुक जाते हैं, तो एजेंट अटक जाता है। इसके बजाय, हम एजेंट को एक स्पष्ट संदेश देते हैं। हम उसे बताते हैं कि कॉल विफल हो गई है और उसे दोबारा प्रयास नहीं करना चाहिए। यह एक लूप को निर्णय (decision) में बदल देता है। आमतौर पर, एजेंट फिर एक नया दृष्टिकोण चुनता है।
जब से हमने इसे जोड़ा है, टूल-दुरुपयोग वाले लूप लगभग समाप्त हो गए हैं। जब वे होते भी हैं, तो वे भारी API बिल बनाने के बजाय व्यवस्थित तरीके से हैंडल हो जाते हैं।
सही सीमा खोजना कठिन है। एक सख्त सीमा लंबे कार्यों को रोक देती है। एक ढीली सीमा महंगे लूप की अनुमति देती है। हमने अपनी सीमाएं 95वें पर्सेंटाइल (95th percentile) कार्य लंबाई के आधार पर निर्धारित की हैं।
क्या आपके पास इन बजटों को निर्धारित करने का कोई बेहतर तरीका है? मुझे कमेंट्स में बताएं।
वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi