एका AI एजंटच्या आत

AI एजंटचे डेमो व्हिडिओमध्ये खूप छान दिसतात. पण जेव्हा तुम्ही प्रत्यक्ष प्रश्न विचारता, तेव्हा ते अनेकदा अपयशी ठरतात.

एजंट चुकीची गोष्ट करतो. तो घेतलेले निर्णय विसरतो. अस्तित्वात नसलेली टूल्स (tools) कॉल करतो. तो अनंत काळ लूपमध्ये अडकून पडतो. हे मॉडेलचे अपयश नाही, तर वर्कफ्लोचे (workflow) अपयश आहे.

एजंट म्हणजे एक सॉफ्टवेअर वर्कफ्लो आहे. एक लँग्वेज मॉडेल पुढचे पाऊल निवडते आणि टूल्स कॉल करते. खरी बुद्धिमत्ता ही ऑर्केस्ट्रेशनमध्ये (orchestration) असते, केवळ मॉडेलमध्ये नाही.

प्रत्येक प्रोडक्शन एजंट पाच स्तंभांवर अवलंबून असतो:

  • प्लॅनिंग (Planning): कृती करण्यापूर्वी विचार करणे.
  • टूल युज (Tool Use): जगाशी संवाद साधणे.
  • मेमरी (Memory): संदर्भ आणि तथ्ये साठवणे.
  • कन्स्ट्रेंट्स (Constraints): मर्यादा आणि बजेट ठरवणे.
  • व्हेरिफिकेशन (Verification): काम बरोबर आहे हे सिद्ध करणे.

प्लॅनिंग स्टाइल्स (Planning Styles)

साधे (Naive) एजंट थेट कृतीकडे वळतात. यामुळे हॅलुसिनेशन (hallucinations) होऊ शकतात. एक चांगला एजंट आधी प्लॅन करतो.

  1. प्लॅन-देन-एक्झिक्युट (Plan-then-execute): मॉडेल एक पूर्ण प्लॅन लिहिते. याचे ऑडिट करणे सोपे असते, पण वास्तव बदलल्यास त्यात बदल करणे कठीण जाते.
  2. ReAct (Reason + Act): मॉडेल एका लूपमध्ये विचार करते, कृती करते आणि निरीक्षण करते. हे अधिक अ‍ॅडॅप्टिव्ह (adaptive) आहे, परंतु टोकन्स आणि वेळेच्या बाबतीत खर्चिक ठरते.

टूल युज (Tool Use)

टूल्सशिवाय, एजंट म्हणजे केवळ एक चॅटबॉट आहे. एका टूलला नाव, JSON स्कीमा आणि फंक्शनची आवश्यकता असते.

मॉडेल्स वर्णनांच्या (descriptions) आधारे टूल्स निवडतात. जर तुमचे वर्णन अस्पष्ट असेल, तर एजंट अपयशी ठरेल. वर्णनांना 'स्पेक शीट्स' (spec sheets) प्रमाणे हाताळा. एखादे टूल कशासाठी आहे आणि कशासाठी नाही, हे स्पष्टपणे परिभाषित करा.

टूल कॉल्स नेहमी व्हॅलिडेट (validate) करा. जर मॉडेलने चुकीचे आर्ग्युमेंट्स (arguments) पाठवले, तर कॉल नाकारून ती एरर (error) मॉडेलला परत पाठवा. यामुळे एजंटला लूपमध्ये असतानाच शिकण्यास मदत होते.

मेमरी (Memory)

मेमरी म्हणजे केवळ एक गोष्ट नाही.

  • वर्किंग मेमरी (Working Memory): सध्याचा संवाद आणि टूलचे निकाल.
  • स्क्रॅचपॅड (Scratchpad): एजंटने स्वतःसाठी नोट्स लिहिण्याची जागा.
  • लाँग-टर्म मेमरी (Long-term Memory): भविष्यातील सेशन्ससाठी तथ्ये साठवणे.

केवळ वेक्टर डेटाबेसवर (vector databases) अवलंबून राहू नका. मार्कडाउन फाइल्स वापरून केलेली फाईल-आधारित मेमरी अनेकदा अधिक चांगली असते. याचे ऑडिट करणे, संपादन करणे आणि grep करणे सोपे असते.

कन्स्ट्रेंट्स आणि सेफ्टी (Constraints and Safety)

प्रोडक्शन एजंट्सना गार्डरेल्सची (guardrails) गरज असते. या चार गोष्टींचा वापर करा:

  • टूल अलाऊलिस्ट (Tool allowlists): केवळ विशिष्ट, नावाच्या टूल्सना परवानगी द्या.
  • इटरेशन बजेट (Iteration budgets): अनंत लूप रोखण्यासाठी स्टेप्सची संख्या मर्यादित करा.
  • टोकन बजेट (Token budgets): एकूण टोकन्सची मर्यादा ठेवून खर्च मर्यादित करा.
  • अप्रूव्हल गेट्स (Approval gates): ईमेल पाठवणे किंवा डेटा डिलीट करणे यांसारख्या महत्त्वाच्या कृतींसाठी मानवी परवानगी आवश्यक करा.

व्हेरिफिकेशन (Verification)

एखादे काम पूर्ण झाले आहे असे मॉडेल म्हणत असेल, तर त्यावर कधीही आंधळा विश्वास ठेवू नका. मॉडेल स्वभावतःच आत्मविश्वासी असते.

प्रत्यक्ष व्हेरिफिकेशन वापरा. जर एजंट कोड लिहित असेल, तर टेस्ट्स रन करा. जर तो JSON जनरेट करत असेल, तर स्कीमा तपासा. जर त्याने एखादी कृती केली असेल, तर बदल निश्चित करण्यासाठी क्वेरी (query) रन करा.

सर्वोत्तम एजंट्स लूपच्या आत व्हेरिफिकेशनचा वापर करतात. जर एखादी टेस्ट फेल झाली, तर ती एरर एजंटला परत पाठवा. त्याला पुन्हा प्रयत्न करू द्या.

स्मार्ट प्रॉम्प्ट्सच्या मागे लागणे थांबवा. अधिक चांगले प्लंबिंग (plumbing) तयार करण्यास सुरुवात करा.

Source: https://dev.to/nazar_boyko/inside-an-ai-agent-planning-tool-use-memory-constraints-and-verification-2fcc

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