ai-agents-for-beginners

AI एजंट्ससाठी संदर्भ अभियांत्रिकी

Context Engineering

(या धड्याचा व्हिडिओ पाहण्यासाठी वरील प्रतिमेवर क्लिक करा)

आपण ज्या अनुप्रयोगासाठी AI एजंट तयार करत आहात त्याची गुंतागुंत समजून घेणे विश्वासार्ह एजंट तयार करण्यासाठी महत्त्वाचे आहे. आपल्याला प्रॉम्प्ट अभियांत्रिकीच्या पलीकडे जटिल गरजा पुर्ण करण्यासाठी माहिती प्रभावीपणे व्यवस्थापित करणारे AI एजंट तयार करावे लागतात.

या धड्यात, आपण संदर्भ अभियांत्रिकी म्हणजे काय आणि AI एजंट तयार करण्यामध्ये त्याची भूमिका काय आहे हे पाहणार आहोत.

परिचय

या धड्यात आपण समजून घेणार आहोत:

संदर्भ अभियांत्रिकी काय आहे आणि ते प्रॉम्प्ट अभियांत्रिकीपासून कसे वेगळे आहे.

प्रभावी संदर्भ अभियांत्रिकीसाठी रणनीती, जसे की कसे लिहायचे, निवडायचे, संक्षिप्त करायचे आणि माहिती वेगळे करायची.

सामान्य संदर्भ अपयश जे तुमचा AI एजंट अयशस्वी करू शकतात आणि त्यांचे निराकरण कसे करायचे.

शिकण्याचे उद्दिष्ट

हा धडा पूर्ण केल्यावर, तुम्हाला खालील गोष्टी समजतील:

संदर्भ अभियांत्रिकीची व्याख्या करा आणि ती प्रॉम्प्ट अभियांत्रिकीपासून वेगळी आहे हे ओळखा.

• मोठ्या भाषा मॉडेल (LLM) अनुप्रयोगांमधील संदर्भाचे मुख्य घटक ओळखा.

• एजंटची कामगिरी सुधारण्यासाठी संदर्भ लिहिण्याच्या, निवडण्याच्या, संक्षिप्त करण्याच्या आणि वेगळे करण्याच्या रणनीती लागू करा.

• संदर्भातील सामान्य अपयश जसे की विषबाधा, विचलन, गोंधळ आणि संघर्ष यांची ओळख करा आणि त्यावर उपाय करा.

संदर्भ अभियांत्रिकी म्हणजे काय?

AI एजंट्ससाठी, संदर्भ म्हणजे एआय एजंटला काही विशिष्ट क्रिया घेण्यासाठी नियोजन करणारे घटक. संदर्भ अभियांत्रिकी म्हणजे AI एजंटला पुढील टप्पा पूर्ण करण्यासाठी योग्य माहिती असलेली सुनिश्चित करण्याचा सराव. संदर्भ विंडोची मर्यादा असते, त्यामुळे एजंट तयार करताना आपल्याला संदर्भ विंडोमध्ये माहिती कशी वाढवायची, काढायची आणि संक्षिप्त करायची यासाठी प्रणाली व प्रक्रिया तयार कराव्या लागतात.

प्रॉम्प्ट अभियांत्रिकी विरुद्ध संदर्भ अभियांत्रिकी

प्रॉम्प्ट अभियांत्रिकी एक स्थिर सूचना संचावर लक्ष केंद्रित करते जे AI एजंटला नियमांच्या संचाने प्रभावीपणे मार्गदर्शन करते. संदर्भ अभियांत्रिकी ही प्रारंभिक प्रॉम्प्टसह एक गतिशील माहिती संच व्यवस्थापित करण्याचा मार्ग आहे, ज्यामुळे AI एजंटकडे वेळोवेळी आवश्यक ती माहिती उपलब्ध राहते. संदर्भ अभियांत्रिकीचा मुख्य संकल्पना म्हणजे हा प्रक्रिया पुनरावृत्तीक्षम आणि विश्वासार्ह बनवणे.

संदर्भाचे प्रकार

Types of Context

लक्षात ठेवा की संदर्भ फक्त एकच गोष्ट नाही. AI एजंटला लागणारी माहिती विविध स्रोतांकडून येऊ शकते आणि एजंटला या स्रोतांपर्यंत प्रवेश देणे आपले काम आहे:

AI एजंटला व्यवस्थापित कराव्या लागणाऱ्या संदर्भाचे प्रकार आहेत:

सूचना: हे एजंटचे “नियम” सारखे असतात – प्रॉम्प्ट, सिस्टम संदेश, फ्यू-शॉट उदाहरणे (AI ला एखादी गोष्ट कशी करायची ते दाखवणारी), आणि वापरता येणाऱ्या उपकरणांचा वर्णन. येथे प्रॉम्प्ट अभियांत्रिकीचा फोकस संदर्भ अभियांत्रिकी सोबत जोडलेला आहे.

ज्ञान: यामध्ये तथ्ये, डेटाबेसमधून प्राप्त माहिती किंवा एजंटने जमा केलेले दीर्घकालीन स्मृती यांचा समावेश आहे. यात RAG (Retrieval Augmented Generation) प्रणाली एकत्र करणे समाविष्ट आहे जर एजंटला विविध ज्ञान संच आणि डेटाबेसमध्ये प्रवेश आवश्यक असेल तर.

उपकरणे: हे बाह्य फंक्शन्स, API आणि MCP सर्व्हर्सची व्याख्या आहेत ज्यांना एजंट कॉल करू शकतो, तसेच त्यांचा वापर करून मिळालेल्या अभिप्रायाचा (परिणामांचा) समावेश आहे.

संवादाचा इतिहास: वापरकर्त्याशी सुरू असलेला संवाद. वेळ जातो तेव्हा हे संभाषणे लांबट आणि अधिक गुंतागुंतीची होतात ज्याचा संदर्भ विंडोमध्ये जागा घेते.

वापरकर्ता प्राधान्ये: वेळोवेळी वापरकर्त्याच्या आवडीनिवडी किंवा नापसंतींबद्दल शिकलेली माहिती. ही मुख्य निर्णय घेताना साठवली जाऊ शकते व वापरली जाऊ शकते.

प्रभावी संदर्भ अभियांत्रिकीसाठी रणनीती

नियोजनासाठी रणनीती

Context Engineering Best Practices

चांगल्या संदर्भ अभियांत्रिकीची सुरुवात चांगल्या नियोजनाने होते. संदर्भ अभियांत्रिकीचा संकल्पना कशी लागू करायची यावर विचार करण्यास मदत करणारी पद्धत येथे दिली आहे:

  1. स्पष्ट परिणाम निश्चित करा - AI एजंट्सना दिल्या जाणार्‍या कामांचे निकाल स्पष्टपणे निश्चित केले पाहिजेत. प्रश्नाला उत्तर द्या – “जेव्हा AI एजंट आपले काम पूर्ण करेल तेव्हा जग कसे दिसेल?” किंवा वापरकर्त्याला AI एजंटशी संवाद केल्यावर कोणती बदल, माहिती किंवा प्रतिसाद हवा आहे.
  2. संदर्भ नकाशा तयार करा - AI एजंटचा निकाल निश्चित केल्यानंतर, प्रश्नाला उत्तर द्या “AI एजंटला हा काम पूर्ण करण्यासाठी कोणती माहिती हवी?”. अशा प्रकारे तुम्ही त्या माहिती कुठे आहे याचा संदर्भ नकाशा तयार करू शकता.
  3. संदर्भ पाइपलाइन्स तयार करा - आता की तुम्हाला माहिती कुठे आहे कळाले आहे, प्रश्नाला उत्तर द्या “एजंट ही माहिती कशी मिळवेल?”. हे RAG, MCP सर्व्हर आणि इतर उपकरणांचा वापर यांसारख्या विविध मार्गांनी केले जाऊ शकते.

व्यावहारिक रणनीती

नियोजन महत्त्वाचे आहे पण जेव्हा माहिती आमच्या एजंटच्या संदर्भ विंडोत येते, तेव्हा ती व्यवस्थापित करण्यासाठी व्यावहारिक रणनीती लागतात:

संदर्भ व्यवस्थापन

काही माहिती संदर्भ विंडोमध्ये आपोआप वाढेल, तरी संदर्भ अभियांत्रिकीमध्ये ही माहिती सक्रियपणे व्यवस्थापित करण्यासाठी काही रणनीती वापरल्या जातात:

  1. एजंट स्क्रॅचपॅड यामुळे AI एजंट सत्रादरम्यान चालू असलेल्या कामांची व वापरकर्त्याच्या संवादांची संबंधित माहिती टिपू शकतो. हा संदर्भ विंडोपलीकडील फाईल किंवा रनटाइम ऑब्जेक्टमध्ये असावा, ज्याला एजंट नंतर पुनर्प्राप्त करू शकतो.

  2. स्मृती स्क्रॅचपॅड एका सत्राच्या संदर्भ विंडोव्यतिरीक्त माहिती व्यवस्थापित करण्यासाठी उपयुक्त आहे. स्मृती एजंटला अनेक सत्रांमध्ये संबंधित माहिती संग्रहित व पुनर्प्राप्त करण्याची परवानगी देतात. यात सारांश, वापरकर्ता प्राधान्ये आणि भविष्यात सुधारणा करण्यासाठी अभिप्राय यांचा समावेश असू शकतो.

  3. संदर्भ संक्षिप्तीकरण जेव्हा संदर्भ विंडो वाढते आणि तिची मर्यादा जवळ येते, तेव्हा सारांश आणि कापणी यांसारख्या तंत्रांचा वापर करता येतो. यामध्ये केवळ सर्वात संबंधित माहिती ठेवणे किंवा जुन्या संदेशांना काढून टाकणे समाविष्ट आहे.

  4. मल्टी-एजंट सिस्टम्स मल्टी-एजंट सिस्टम तयार करणे हा संदर्भ अभियांत्रिकीचा एक प्रकार आहे कारण प्रत्येक एजंटची स्वतःची संदर्भ विंडो असते. संदर्भ कसा सामायिक केला जातो आणि वेगवेगळ्या एजंटला कसा दिला जातो, हे योजणे आवश्यक आहे.

  5. सँडबॉक्स वातावरण जर एजंटला काही कोड चालवावा लागेल किंवा दस्तऐवजातील मोठ्या प्रमाणात माहिती प्रक्रिया करावी लागेल, तर त्यासाठी खूप टोकन्स लागतात. पूर्ण माहिती संदर्भ विंडोमध्ये साठवण्याऐवजी, एजंट कोड चालवू शकणाऱ्या सँडबॉक्स वातावरणाचा वापर करून फक्त परिणाम व इतर संबंधित माहिती वाचू शकतो.

  6. रनटाइम स्टेट ऑब्जेक्ट्स आवश्यकता असलेल्या माहितीचे कंटेनर तयार करून एजंटच्या प्रवेशासाठी वापरले जातात. जटिल कामासाठी, प्रत्येक उपकार्याचे निकाल स्टेपwise साठवून संदर्भ केवळ त्या उपकार्याशी जोडलेला राहू शकतो.

संदर्भ तपासणी

या रणनीतींपैकी एक लागू केल्यानंतर, पुढील मॉडेल कॉलला खरंतर काय मिळाले ते तपासणे उपयुक्त ठरते. एक उपयुक्त डीबगिंग प्रश्न आहे:

एजंटने खूप संदर्भ लोड केला का, चुकीचा संदर्भ लोड केला का, किंवा आवश्यक संदर्भ गहाळ केला का?

त्या प्रश्नाचे उत्तर देण्यासाठी तुम्हाला कच्च्या प्रॉम्प्ट्स, टूल आउटपुट्स किंवा मेमरी सामग्रीची नोंद ठेवण्याची गरज नाही. उत्पादनात, लहान संदर्भ तपासणी नोंदी प्राधान्य द्या ज्यात गणना, आयडी, हॅश आणि धोरण लेबल्स यांचा समावेश असतो:

उद्दिष्ट जास्त संदर्भ ठेवणे नाही. तर एवढे पुरावे ठेवणे आहे की विकसकाला कोणती संदर्भ रणनीती चालवली गेली आणि तिचा पुढील मॉडेल कॉलवर अपेक्षित परिणाम झाला का हे कळावे.

संदर्भ अभियांत्रिकीचे उदाहरण

समजा आपण AI एजंटला “मला पॅरिसला ट्रिप बुक करून दे.” असे सांगत आहोत.

• फक्त प्रॉम्प्ट अभियांत्रिकी वापरणारा साधा एजंट फक्त उत्तर देऊ शकतो: “ठीक आहे, तुम्हाला पॅरिसला कधी जायचे आहे?”. त्याने वापरकर्त्याचा थेट प्रश्न तीव्र वेळेस प्रोसेस केला.

• संदर्भ अभियांत्रिकीची रणनीती वापरणारा एजंट खूप काही करतो. प्रतिसाद देण्यापूर्वी, त्याचा सिस्टम असे करू शकतो:

  ◦ तुमचा कॅलेंडर तपासा उपलब्ध तारखांसाठी (रिअल-टाइम डेटा पुनर्प्राप्ती).

 ◦ मागील प्रवास प्राधान्ये आठवून घेणे (दीर्घकालीन स्मृतीतून) जसे की तुम्हाला आवडणारी विमान कंपनी, बजेट, किंवा थेट फ्लाइट पसंती.

 ◦ फ्लाइट आणि हॉटेल बुकिंगसाठी उपलब्ध टूल्स ओळखणे.

सामान्य संदर्भ अपयश

संदर्भ विषबाधा

ते काय आहे: जेव्हा एखादी कल्पित माहिती (LLM ने तयार केलेली चुकीची माहिती) किंवा त्रुटी संदर्भात येते आणि वारंवार संदर्भित केली जाते, ज्यामुळे एजंट अशक्य उद्दिष्टे पूर्ण करण्याचा प्रयत्न करतो किंवा निरर्थक रणनीती विकसित करतो.

काय करावे: संदर्भ पडताळणी आणि क्वारंटाइन लागू करा. दीर्घकालीन स्मृतीत माहिती जोडण्यापूर्वी तिची पडताळणी करा. जर विषबाधा ओळखली गेली, तर खराब माहिती पसरू नये म्हणून नवीन संदर्भ थ्रेड सुरू करा.

प्रवास बुकिंग उदाहरण: तुमचा एजंट एका लहान स्थानिक विमानतळावरून दूर असलेल्या आंतरराष्ट्रीय शहराकडे थेट फ्लाइट असल्याचे भ्रम पाळतो, जी प्रत्यक्षात आंतरराष्ट्रीय फ्लाइट देत नाही. हा अस्तित्त्वात नसलेला फ्लाइट तपशील संदर्भात जतन होतो. नंतर जेव्हा तुम्ही बुकिंगसाठी विचारता, तेव्हा एजंट अशक्य मार्गासाठी तिकीटे शोधण्यासाठी प्रयत्न करतो, ज्यामुळे वारंवार त्रुटी येतात.

उपाय: फ्लाइट तपशील एजंटच्या कार्यरत संदर्भात जोडण्यापूर्वी फ्लाइट अस्तित्व आणि मार्गांची रिअल-टाइम API ने पडताळणी करा. जर पडताळणी अयशस्वी झाली, तर चुकीची माहिती “क्वारंटाइन” केली जाऊ आणि पुढे वापरली जाणार नाही.

संदर्भ विचलन

ते काय आहे: जेव्हा संदर्भ इतका मोठा होतो की मॉडेल इतिहासावर जास्त लक्ष देते, जेव्हा प्रशिक्षणादरम्यान शिकलेल्या माहितीचा वापर करणे आवश्यक असते, ज्यामुळे पुनरावृत्ती किंवा उपयुक्त नसलेले क्रिया होतात. संदर्भ विंडो पूर्ण होण्यापूर्वीच मॉडेल चुकू शकतात.

काय करावे: संदर्भ सारांश तयार करा. वेळोवेळी जमा केलेली माहिती संक्षेप करा, महत्त्वाचे तपशील ठेवा आणि पुनरावृत्तीचा इतिहास काढून टाका. यामुळे लक्ष “रीसेट” होते.

प्रवास बुकिंग उदाहरण: तुम्ही अनेक स्वप्नातील प्रवास स्थळांवर अनेक वेळा चर्चा केली आहे, ज्यामध्ये दोन वर्षांपूर्वीच्या तुमच्या बॅकपॅकिंग प्रवासाचा सविस्तर वर्णन आहे. जेव्हा तुम्ही शेवटी “पुढील महिन्यासाठी स्वस्त फ्लाइट शोध” विचारता, तेव्हा एजंट जुन्या, असंबंधित तपशिलांमध्ये अडकतो आणि तुमच्या बॅकपॅकिंग गियर किंवा आधीच्या योजनेबद्दल विचारणा करत राहतो, तुमच्या वर्तमान विनंतीकडे दुर्लक्ष करतो.

उपाय: ठराविक फेर्‍या नंतर किंवा संदर्भ खूप मोठा झाल्यावर, एजंटने संवादाचा सर्वात अलीकडील आणि संबंधित भाग सारांशित करावा – तुमच्या वर्तमान प्रवासाच्या तारखा आणि ठिकाणी लक्ष केंद्रित करणे – आणि तो संक्षिप्त सारांश पुढील LLM कॉलसाठी वापरावा, कमी संबंधित ऐतिहासिक संभाषण वगळावे.

संदर्भ गोंधळ

ते काय आहे: जेव्हा अनावश्यक संदर्भ, विशेषतः फारच जास्त उपलब्ध टूल्स, मॉडेलने चुकीचे प्रतिसाद तयार करणे किंवा असंबंधित टूल कॉल करण्यास कारणीभूत ठरतो. लहान मॉडेल्समध्ये हे अधिक होते.

काय करावे: RAG तंत्र वापरून टूल लोडआउट व्यवस्थापन लागू करा. टूल वर्णने व्हेक्टर डेटाबेसमध्ये साठवा आणि प्रत्येक विशिष्ट कामासाठी फक्त सर्वात संबंधित टूल निवडा. संशोधन सूचित करते की ३० पेक्षा कमी टूल निवडणे उत्तम.

प्रवास बुकिंग उदाहरण: तुमच्या एजंटला अनेक टूल्सचा प्रवेश आहे: book_flight, book_hotel, rent_car, find_tours, currency_converter, weather_forecast, restaurant_reservations इत्यादी. तुम्ही विचारता, “पॅरिसमध्ये फिरायचा सर्वोत्तम मार्ग काय आहे?” टूल्सच्या प्रचंड संख्येमुळे, एजंट गोंधळतो आणि book_flight ला पॅरिसमध्ये कॉल करण्याचा प्रयत्न करतो, किंवा तुम्हाला सार्वजनिक परिवहन आवडत असतानाही rent_car कॉल करतो, कारण टूल वर्णने ओव्हरलॅप होतात किंवा उत्तम टूल ठरवणं त्याला जमत नाही.

उपाय: टूल वर्णनांवर RAG वापरा. जेव्हा तुम्ही पॅरिसमधील फिरण्याबद्दल विचारता, तेव्हा सिस्टम तुमच्या क्वेरीवर आधारित फक्त सर्वात संबंधित टूल्स जसे की rent_car किंवा public_transport_info डायनॅमिकली पुनर्प्राप्त करून LLM ला एक केंद्रित “लोडआउट” सादर करते.

संदर्भ संघर्ष

ते काय आहे: जेव्हा संदर्भामध्ये विरोधाभासी माहिती असते, ज्यामुळे विसंगत विचार किंवा खराब अंतिम प्रतिसाद तयार होतो. हे सहसा माहिती टप्प्याटप्प्याने येताना होते, आणि सुरुवातीचे चुकीचे अनुमान संदर्भात राहतात.

काय करावे: संदर्भाची कापणी आणि ऑफलोडिंग वापरा. कापणी म्हणजे जुन्या किंवा विरोधी माहिती काढून टाकणे जेव्हा नवीन तपशील येतात. ऑफलोडिंग म्हणजे मॉडेलला स्वतंत्र “स्क्रॅचपॅड” कार्यक्षेत्र द्यायचे ज्याने मुख्य संदर्भ गोंधळलेला नाही.

प्रवास बुकिंग उदाहरण: तुम्ही सुरुवातीला तुमच्या एजंटला सांगता, “मला इकॉनॉमी क्लासमध्ये प्रवास करायचा आहे.” नंतर संभाषणात, तुमचे मन बदलते आणि तुम्ही म्हणता, “खरं सांगायचं तर, या ट्रिपसाठी, चला बिझनेस क्लासमध्ये जाऊया.” जर दोन्ही सूचना संदर्भात राहिल्या, तर एजंटला विरोधाभासी शोध परिणाम मिळू शकतात किंवा कोणती पसंती प्राधान्य द्यावी हे समजण्यात गोंधळ होऊ शकतो.

उपाय: संदर्भ छाटणी लागू करा. जेव्हा नवीन सूचना जुन्याशी विसंगत असते, तेव्हा जुनी सूचना काढून टाकली जाते किंवा स्पष्टपणे संदर्भात ओव्हरराईड केली जाते. किंवा एजंट विरोधाभासी पसंती पुन्हा तपासण्यासाठी स्क्रॅचपॅड वापरू शकतो, जेणेकरून फक्त अंतिम, सुसंगत सूचना त्याच्या क्रियांना मार्गदर्शन करेल.

संदर्भ अभियांत्रणाबद्दल अजून प्रश्न आहेत का?

Microsoft Foundry Discord मध्ये सामील व्हा, इतर शिकणाऱ्यांशी भेटा, ऑफिस तासांना हजर राहा आणि तुमच्या AI एजंट्ससंबंधित प्रश्नांची उत्तरे मिळवा.

मागील धडा

Agentic Protocols

पुढील धडा

Memory for AI Agents


अस्वीकरण: हा दस्तऐवज AI भाषांतर सेवा Co-op Translator चा वापर करून अनुवादित केला आहे. जरी आम्ही अचूकतेसाठी प्रयत्न करतो, तरी कृपया लक्षात घ्या की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेची कमतरता असू शकते. मूळ दस्तऐवज त्याच्या मूळ भाषेत अधिकृत स्रोत मानला पाहिजे. महत्त्वाची माहिती असल्यास, व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराच्या वापरामुळे उद्भवणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थलावणीसाठी आम्ही जबाबदार नाही.