𝗘𝘃𝗲𝗿𝘆𝗼𝗻𝗲 𝗧𝗮𝗹𝗸𝘀 𝗔𝗯𝗼𝘂𝘁 𝗣𝗿𝗼𝗺𝗽𝘁𝘀. 𝗧𝗵𝗲 𝗟𝗼𝗼𝗽 𝗜𝘀 𝗪𝗵𝗲𝗿𝗲 𝗔𝗴𝗲𝗻𝘁𝘀 𝗔𝗰𝘁𝘂𝗮𝗹𝗹𝘆 𝗙𝗮𝗶𝗹

प्रॉम्प्ट इंजिनिअरिंगकडे (Prompt engineering) सर्वांचे लक्ष वेधले जाते. लोक प्रॉम्प्ट्स शेअर करतात आणि स्वतःला हुशार समजतात. पण मी तयार केलेल्या एजन्टिक सिस्टम्समध्ये (agentic systems), प्रॉम्प्ट्समुळे बिघाड होत नाही, तर लूपमुळे (loop) बिघाड होतो.

एक एजंट म्हणजे केवळ एक प्रॉम्प्ट आणि प्रतिसाद नसतो. तो एक लूप असतो.

  • स्थितीचे निरीक्षण करा (Observe the state).
  • कृती करा (Take an action).
  • निकालाचे मूल्यमापन करा (Evaluate the result).
  • पुढे चालू ठेवायचे की थांबायचे याचा निर्णय घ्या (Decide to continue or stop).

जर यापैकी एकही पायरी अपयशी ठरली, तर एजंट अपयशी ठरतो. याचा अभ्यास करण्यासाठी मी १,४१२ रनमध्ये १२ मॉडेल्सचे विश्लेषण केले. लूप्स कशा प्रकारे अपयशी ठरतात आणि ते कसे सुधारावे, ते खाली दिले आहे.

सामान्य लूप फेल्युरेस (Common Loop Failures):

  • टोकन स्पायरल्स (Token Spirals): एजंट स्वतःचीच पुनरावृत्ती करतो आणि खूप जास्त टोकन्स वापरतो.
  • ब्लाइंड स्पॉट्स (Blind Spots): एजंटला त्याच्या सभोवतालच्या परिस्थितीचे आकलन होत नाही आणि तो तीच चूक पुन्हा पुन्हा करतो.
  • फॉल्स सक्सेस (False Success): एजंट चुकीचे उत्तर देतो पण त्याला वाटते की ते बरोबर आहे.
  • डेड एंड्स (Dead Ends): एजंटला त्रुटी सापडते पण तो त्या डेटाचा वापर सुधारणेसाठी करू शकत नाही.

एक चांगला प्रॉम्प्ट या समस्या सोडवू शकत नाही. तुम्हाला लूप इंजिनिअरिंगची (loop engineering) गरज आहे.

चांगल्या लूप्ससाठी चार डिझाइन तत्त्वे:

  • लूप मर्यादित करा (Bound the loop): इटरेशन्स (iterations) आणि टोकन्सवर एक कडक मर्यादा सेट करा. जर एजंट एका मर्यादेपर्यंत पोहोचला, तर त्याने थांबले पाहिजे आणि मदत मागितली पाहिजे.
  • वातावरण स्पष्ट करा (Make the environment legible): 'observe' पायरीमुळे एजंटला सर्व तथ्ये मिळतील याची खात्री करा. जर एखादा एजंट अपयशी कृती पुन्हा पुन्हा करत असेल, तर त्याच्याकडे योग्य माहितीचा अभाव आहे.
  • कृती करणारा आणि मूल्यमापन करणारा वेगळा ठेवा (Separate the actor from the evaluator): एकाच मॉडेलला स्वतःचे काम तपासू देऊ नका. आउटपुट तपासण्यासाठी वेगळे मॉडेल किंवा 'rule-based check' वापरा.
  • लूप पूर्ण करा (Close the loop): त्रुटींचा वापर प्रत्यक्ष सुधारणा करण्यासाठी करा. जेव्हा एखादा लूप अपयशी ठरतो, तेव्हा एक 'regression test' जोडा जेणेकरून ती चूक पुन्हा कधीही होणार नाही.

मी या नियमांचा वापर करून RelayOps नावाचा एक सपोर्ट एजंट तयार केला. आम्ही एजंटचे ग्रेडिंग करण्यासाठी एक स्वतंत्र जज (independent judge) वापरला.

एकदा, एजंटने योग्य लेखाचा संदर्भ दिला पण प्रत्यक्ष प्रश्नाचे उत्तर देण्यात तो अपयशी ठरला. एका साध्या 'rule-based check' ने तो पास झाला. पण आमच्या स्वतंत्र मूल्यमापनकर्त्याने (independent evaluator) ती चूक पकडली. आम्ही त्या अपयशाचा वापर सिस्टम सुधारण्यासाठी केला आणि ती चूक पुन्हा होऊ नये म्हणून एक टेस्ट जोडली.

एजंटला अधिक हुशार करण्याची गरज नव्हती. लूपचे डिझाइन अधिक चांगले करण्याची गरज होती.

फक्त प्रॉम्प्ट्सवर लक्ष केंद्रित करणे थांबवा. स्ट्रक्चरवर (structure) लक्ष केंद्रित करा.

तुम्ही कोणत्या प्रकारचा लूप फेल्युअर पाहिला आहे? टोकन स्पायरल, ब्लाइंड स्पॉट, की असा एखादा एजंट जो आत्मविश्वासाने चुकीचे उत्तर देत होता?

Source: https://dev.to/manideep_patibandla/everyone-talks-about-prompts-the-loop-is-where-agents-actually-fail-1cej

Optional learning community: https://t.me/GyaanSetuAi