ai-agents-for-beginners

उत्पादन में एआई एजेंट: अभिज्ञता और मूल्यांकन

AI Agents in Production

जैसे-जैसे एआई एजेंट प्रयोगात्मक प्रोटोटाइप से वास्तविक-विश्व अनुप्रयोगों में जाते हैं, उनके व्यवहार को समझने, उनके प्रदर्शन की निगरानी करने, और उनके आउटपुट का व्यवस्थित रूप से मूल्यांकन करने की क्षमता महत्वपूर्ण हो जाती है।

सीखने के लक्ष्य

इस पाठ को पूरा करने के बाद, आप जानेंगे / समझेंगे:

लक्ष्य आपको यह ज्ञान प्रदान करना है कि आप अपने “ब्लैक बॉक्स” एजेंटों को पारदर्शी, प्रबंधनीय और विश्वसनीय सिस्टम में कैसे बदल सकते हैं।

नोट: यह महत्वपूर्ण है कि आप सुरक्षित और भरोसेमंद AI एजेंट तैनात करें। Building Trustworthy AI Agents पाठ भी देखें।

ट्रेस और स्पैंस

अभिज्ञता उपकरण जैसे Langfuse या Microsoft Foundry आमतौर पर एजेंट रन को ट्रेस और स्पैंस के रूप में प्रदर्शित करते हैं।

Trace tree in Langfuse

अभिज्ञता के बिना, एक AI एजेंट “ब्लैक बॉक्स” जैसा महसूस हो सकता है - उसकी आंतरिक स्थिति और तर्क अस्पष्ट होती है, जिससे समस्याओं का निदान या प्रदर्शन अनुकूलित करना कठिन हो जाता है। अभिज्ञता के साथ, एजेंट “ग्लास बॉक्स” बन जाते हैं, जो पारदर्शिता प्रदान करते हैं जो विश्वास बनाने और यह सुनिश्चित करने के लिए आवश्यक है कि वे इच्छित रूप से काम करें।

उत्पादन पर्यावरण में अभिज्ञता क्यों महत्वपूर्ण है

AI एजेंटों को उत्पादन पर्यावरण में स्थानांतरित करने से नए प्रकार की चुनौतियां और आवश्यकताएं आती हैं। अभिज्ञता अब एक “अच्छा हो तो अच्छा” क्षमता नहीं बल्कि एक महत्वपूर्ण क्षमता है:

ट्रैक करने के लिए मुख्य मेट्रिक्स

एजेंट व्यवहार की निगरानी और समझ के लिए, विभिन्न मीट्रिक्स और संकेतों को ट्रैक किया जाना चाहिए। जब कि विशिष्ट मीट्रिक्स एजेंट के उद्देश्य पर आधारित हो सकते हैं, कुछ सार्वभौमिक रूप से महत्वपूर्ण हैं।

अभिज्ञता उपकरण जो अधिकांश सामान्य मीट्रिक्स की निगरानी करते हैं, वे इस प्रकार हैं:

विलंबता: एजेंट कितनी जल्दी प्रतिक्रिया देता है? लंबे प्रतीक्षा समय उपयोगकर्ता अनुभव को नकारात्मक रूप से प्रभावित करते हैं। आपको एजेंट रन के माध्यम से टास्क और व्यक्तिगत चरणों के लिए विलंबता मापनी चाहिए। उदाहरण के लिए, यदि एजेंट को सभी मॉडल कॉल के लिए 20 सेकंड लगते हैं, तो इसे तेज मॉडल का उपयोग करके या मॉडल कॉल्स को समानांतर चलाकर तेज किया जा सकता है।

लागतें: प्रति एजेंट रन कितना खर्च होता है? AI एजेंट टोकन के आधार पर बिल किए जाने वाले LLM कॉल या बाहरी API पर निर्भर करते हैं। लगातार टूल उपयोग या कई प्रॉम्प्ट्स लागत तेजी से बढ़ा सकते हैं। उदाहरण के लिए, यदि एक एजेंट 5 बार LLM कॉल करता है केवल मामूली गुणवत्ता सुधार के लिए, तो आपको मूल्यांकन करना चाहिए कि क्या लागत उचित है या आप कॉल की संख्या कम कर सकते हैं या सस्ता मॉडल उपयोग कर सकते हैं। वास्तविक समय में निगरानी अप्रत्याशित बढ़ोतरी (जैसे बग्स के कारण अत्यधिक API लूप) की पहचान में भी मदद कर सकती है।

अनुरोध त्रुटियां: एजेंट ने कितने अनुरोध विफल किए? इसमें API त्रुटियां या टूल कॉल असफलताएं शामिल हो सकती हैं। उत्पादन में अपने एजेंट को और अधिक मजबूती देने के लिए, आप फॉलबैक या पुनः प्रयास सेट कर सकते हैं। उदाहरण के लिए यदि LLM प्रदाता A नीचे है, तो बैकअप के रूप में LLM प्रदाता B पर स्विच करना।

उपयोगकर्ता प्रतिक्रिया: सीधे उपयोगकर्ता मूल्यांकन लागू करना मूल्यवान अंतर्दृष्टि प्रदान करता है। इसमें स्पष्ट रेटिंग (👍ठुम्ब्स-अप/👎डाउन, ⭐1-5 सितारे) या टेक्स्ट कमेंट्स शामिल हो सकते हैं। लगातार नकारात्मक प्रतिक्रिया आपको चेतावनी देनी चाहिए क्योंकि यह संकेत है कि एजेंट अपेक्षित रूप से काम नहीं कर रहा है।

अप्रत्यक्ष उपयोगकर्ता प्रतिक्रिया: उपयोगकर्ता व्यवहार बिना स्पष्ट रेटिंग के प्रत्यक्ष प्रतिक्रिया प्रदान करते हैं। इसमें त्वरित प्रश्न पुनःप्रस्तुति, आवृत्त प्रश्न या पुनः प्रयास बटन पर क्लिक करना शामिल हो सकता है। उदाहरण के लिए, यदि आप देखते हैं कि उपयोगकर्ता बार-बार एक ही प्रश्न पूछते हैं, तो यह संकेत है कि एजेंट अपेक्षित रूप से काम नहीं कर रहा है।

शुद्धता: एजेंट कितनी बार सही या वांछनीय आउटपुट देता है? शुद्धता परिभाषाएँ भिन्न हो सकती हैं (जैसे समस्या हल करने की सहीता, सूचना पुनःप्राप्ति की शुद्धता, उपयोगकर्ता संतोष)। पहला कदम यह परिभाषित करना है कि आपके एजेंट के लिए सफलता कैसी दिखती है। आप शुद्धता को स्वचालित जांच, मूल्यांकन स्कोर या टास्क पूर्णता लेबल के माध्यम से ट्रैक कर सकते हैं। उदाहरण के लिए, ट्रेस को “सफल” या “असफल” के रूप में चिह्नित करना।

स्वचालित मूल्यांकन मेट्रिक्स: आप स्वचालित मूल्याङ्कन भी सेट कर सकते हैं। उदाहरण के लिए, आप एक LLM का उपयोग कर सकते हैं जो एजेंट के आउटपुट को स्कोर करता है जैसे कि यह सहायक, सटीक है या नहीं। कई ओपन सोर्स पुस्तकालय हैं जो एजेंट के विभिन्न पहलुओं को स्कोर करने में मदद करते हैं। उदाहरण के लिए, RAGAS RAG एजेंट्स के लिए या LLM Guard हानिकारक भाषा या प्रॉम्प्ट इंजेक्शन का पता लगाने के लिए।

व्यवहार में, इन मेट्रिक्स के संयोजन से एआई एजेंट की स्थिति का सर्वोत्तम कवरेज मिलता है। इस अध्याय के उदाहरण नोटबुक में, हम आपको दिखाएंगे कि ये मेट्रिक्स वास्तविक उदाहरणों में कैसे दिखते हैं, लेकिन पहले हम जानेंगे कि एक विशिष्ट मूल्यांकन वर्कफ़्लो कैसा दिखता है।

अपने एजेंट को इंस्ट्रूमेंट करें

ट्रेसिंग डेटा इकट्ठा करने के लिए, आपको अपने कोड को इंस्ट्रूमेंट करना होगा। लक्ष्य यह है कि एजेंट कोड को इस तरह इंस्ट्रूमेंट किया जाए कि वे ट्रेस और मेट्रिक्स जारी करें जिन्हें अभिज्ञता मंच द्वारा कैप्चर, प्रोसेस और विज़ुअलाइज़ किया जा सके।

OpenTelemetry (OTel): OpenTelemetry LLM अभिज्ञता के लिए उद्योग मानक के रूप में उभर कर आया है। यह टेलीमेट्री डेटा जेनरेट, कलेक्ट, और एक्सपोर्ट करने के लिए API, SDK, और टूल्स का सेट प्रदान करता है।

कई इंस्ट्रूमेंटेशन पुस्तकालय मौजूद हैं जो मौजूदा एजेंट फ्रेमवर्क को लपेटते हैं और अभिज्ञता उपकरण को OpenTelemetry स्पैंस को आसानी से एक्सपोर्ट करना संभव बनाते हैं। Microsoft Agent Framework स्वाभाविक रूप से OpenTelemetry के साथ इंटीग्रेट होता है। नीचे एक MAF एजेंट इंस्ट्रूमेंट करने का उदाहरण है:

from agent_framework.observability import get_tracer, get_meter

tracer = get_tracer()
meter = get_meter()

with tracer.start_as_current_span("agent_run"):
    # Agent execution is traced automatically
    pass

इस अध्याय में उदाहरण नोटबुक आपके MAF एजेंट को इंस्ट्रूमेंट करने का तरीका दिखाएगा।

मैनुअल स्पैन क्रिएशन: जबकि इंस्ट्रूमेंटेशन पुस्तकालय एक अच्छा आधार प्रदान करते हैं, कई बार अधिक विस्तृत या कस्टम जानकारी की आवश्यकता होती है। आप मैन्युअल रूप से स्पैंस बना सकते हैं ताकि कस्टम एप्लिकेशन लॉजिक जोड़ा जा सके। और महत्वपूर्ण रूप से, वे स्वचालित या मैन्युअल रूप से बनाए गए स्पैंस को कस्टम गुणों (जिन्हें टैग या मेटाडेटा भी कहा जाता है) के साथ समृद्ध कर सकते हैं। ये गुण व्यवसाय-विशिष्ट डेटा, मध्यवर्ती गणनाएं या किसी भी संदर्भ को शामिल कर सकते हैं जो डिबगिंग या विश्लेषण के लिए उपयोगी हो सकते हैं, जैसे user_id, session_id, या model_version।

Langfuse Python SDK के साथ ट्रेस और स्पैंस मैन्युअल रूप से बनाने का उदाहरण:

from langfuse import get_client
 
langfuse = get_client()
 
span = langfuse.start_span(name="my-span")
 
span.end()

एजेंट मूल्यांकन

अभिज्ञता हमें मेट्रिक्स देता है, लेकिन मूल्यांकन उस डेटा का विश्लेषण करने (और परीक्षण करने) की प्रक्रिया है ताकि यह तय किया जा सके कि एआई एजेंट कितना अच्छा प्रदर्शन कर रहा है और इसे कैसे बेहतर बनाया जा सकता है। दूसरे शब्दों में, जब आपके पास वे ट्रेस और मेट्रिक्स होते हैं, तो आप उन्हें एजेंट का निर्णय लेने और निर्णय लेने के लिए कैसे उपयोग करते हैं?

नियमित मूल्यांकन महत्वपूर्ण है क्योंकि AI एजेंट अक्सर गैर-नियतात्मक होते हैं और विकसित हो सकते हैं (अद्यतनों या मॉडल व्यवहार के ड्रीफ्ट के माध्यम से) – मूल्यांकन के बिना, आप नहीं जान पाएंगे कि आपका “स्मार्ट एजेंट” वास्तव में अच्छा काम कर रहा है या उसका प्रदर्शन खराब हो गया है।

AI एजेंटों के लिए मूल्यांकन के दो श्रेणी हैं: ऑनलाइन मूल्यांकन और ऑफलाइन मूल्यांकन। दोनों मूल्यवान हैं और एक-दूसरे के पूरक हैं। हम आमतौर पर ऑफलाइन मूल्यांकन से शुरू करते हैं, क्योंकि यह किसी भी एजेंट को तैनात करने से पहले न्यूनतम आवश्यक चरण है।

ऑफलाइन मूल्यांकन

Dataset items in Langfuse

इसमें एजेंट का नियंत्रित सेटिंग में मूल्यांकन शामिल है, आम तौर पर परीक्षण डेटासेट का उपयोग करके, न कि लाइव उपयोगकर्ता क्वेरीज का। आप कुरेटेड डेटासेट का उपयोग करते हैं जहाँ आपको पता होता है कि अपेक्षित आउटपुट या सही व्यवहार क्या है, और फिर उन पर अपने एजेंट को चलाते हैं।

उदाहरण के लिए, यदि आपने एक गणित शब्द-समस्या एजेंट बनाया है, तो आपके पास 100 समस्याओं का परीक्षण डेटासेट हो सकता है जिनके उत्तर ज्ञात हैं। ऑफलाइन मूल्यांकन विकास के दौरान किया जाता है (और CI/CD पाइपलाइनों का हिस्सा हो सकता है) ताकि सुधारों की जांच की जा सके या Regression से बचा जा सके। इसका लाभ यह है कि यह दोहराने योग्य है और आपके पास वास्तविक सत्यापन है इसलिए आप स्पष्ट सटीकता मेट्रिक्स प्राप्त कर सकते हैं। आप उपयोगकर्ता क्वेरी का अनुकरण भी कर सकते हैं और एजेंट की प्रतिक्रियाओं को आदर्श उत्तरों के खिलाफ माप सकते हैं या ऊपर वर्णित स्वचालित मेट्रिक्स का उपयोग कर सकते हैं।

ऑफलाइन मूल्यांकन की प्रमुख चुनौती यह सुनिश्चित करना है कि आपका परीक्षण डेटासेट व्यापक हो और प्रासंगिक बना रहे – एजेंट एक निश्चित परीक्षण सेट पर अच्छा प्रदर्शन कर सकता है लेकिन उत्पादन में बहुत अलग क्वेरीज का सामना कर सकता है। इसलिए, आपको परीक्षण सेट को नए एज केस और वास्तविक-विश्व परिदृश्यों को दर्शाने वाले उदाहरणों के साथ अपडेट रखना चाहिए। छोटा “स्मोक टेस्ट” केस और बड़े मूल्यांकन सेट का संयोजन उपयोगी होता है: छोटे सेट त्वरित जांच के लिए और बड़े व्यापक प्रदर्शन मीट्रिक्स के लिए।

ऑनलाइन मूल्यांकन

Observability metrics overview

यह वास्तविक, लाइव वातावरण में एजेंट का मूल्यांकन करने को संदर्भित करता है, अर्थात् उत्पादन में वास्तविक उपयोग के दौरान। ऑनलाइन मूल्यांकन वास्तविक उपयोगकर्ता इंटरैक्शन पर एजेंट के प्रदर्शन की निगरानी और परिणामों का निरंतर विश्लेषण शामिल करता है।

उदाहरण के लिए, आप लाइव ट्रैफ़िक पर सफलता दर, उपयोगकर्ता संतोष स्कोर या अन्य मीट्रिक्स ट्रैक कर सकते हैं। ऑनलाइन मूल्यांकन का लाभ यह है कि यह ऐसी चीजों को पकड़ता है जिनकी आप लैब सेटिंग में उम्मीद नहीं कर सकते – आप मॉडल ड्रिफ्ट को समय के साथ देख सकते हैं (यदि एजेंट की प्रभावशीलता इनपुट पैटर्न के बदलाव के साथ कम हो जाती है) और अप्रत्याशित क्वेरीज या स्थितियों को पकड़ सकते हैं जो आपके परीक्षण डेटा में नहीं थीं। यह वास्तव में दर्शाता है कि एजेंट जंगली में कैसा व्यवहार करता है।

ऑनलाइन मूल्यांकन अक्सर अप्रत्यक्ष और स्पष्ट उपयोगकर्ता प्रतिक्रिया संग्रहण, जैसा कि चर्चा की गई है, और संभवतः छाया परीक्षण या A/B परीक्षण (जहाँ एजेंट का नया संस्करण पुराने के साथ तुलना के लिए समानांतर चलता है) को शामिल करता है। चुनौती यह है कि लाइव इंटरैक्शन के लिए विश्वसनीय लेबल या स्कोर प्राप्त करना जटिल हो सकता है – आप उपयोगकर्ता प्रतिक्रिया या डाउनस्ट्रीम मीट्रिक्स (जैसे उपयोगकर्ता ने परिणाम पर क्लिक किया या नहीं) पर निर्भर कर सकते हैं।

दोनों को संयोजित करना

ऑनलाइन और ऑफलाइन मूल्यांकन पारस्परिक रूप से विरोधाभासी नहीं हैं; वे अत्यंत पूरक हैं। ऑनलाइन निगरानी से मिली अंतर्दृष्टि (जैसे उपयोगकर्ता क्वेरीज के नए प्रकार जहाँ एजेंट खराब प्रदर्शन करता है) का उपयोग ऑफलाइन परीक्षण डेटासेट को बढ़ाने और सुधारने के लिए किया जा सकता है। इसके विपरीत, जो एजेंट ऑफलाइन परीक्षणों में अच्छा प्रदर्शन करते हैं, उन्हें अधिक आत्मविश्वास के साथ ऑनलाइन तैनात और मॉनिटर किया जा सकता है।

वास्तव में, कई टीमें एक चक्र अपनाती हैं:

ऑफलाइन मूल्यांकन -> तैनात करें -> ऑनलाइन निगरानी करें -> नए विफलता मामलों को इकट्ठा करें -> ऑफलाइन डेटासेट में जोड़ें -> एजेंट परिष्कृत करें -> दोहराएं।

सामान्य समस्याएं

जब आप AI एजेंटों को उत्पादन में तैनात करते हैं, तो आपको विभिन्न चुनौतियों का सामना करना पड़ सकता है। यहाँ कुछ सामान्य समस्याएं और उनके संभावित समाधान हैं:

समस्या संभावित समाधान
AI एजेंट लगातार कार्यों का उचित प्रदर्शन नहीं कर रहा है - AI एजेंट को दिए गए प्रॉम्प्ट को परिष्कृत करें; उद्देश्यों को स्पष्ट करें।
- जहां टास्क को उप-टास्क में विभाजित करना और उन्हें कई एजेंटों द्वारा संभालना मदद कर सकता है, उसे पहचानें।
AI एजेंट लगातार लूप में फंस रहा है - सुनिश्चित करें कि आपके पास स्पष्ट समापन शर्तें हैं ताकि एजेंट प्रक्रिया को कब रोकना है यह जान सके।
- जटिल टास्क के लिए जो तर्क और योजना की आवश्यकता होती है, एक बड़ा मॉडल उपयोग करें जो तर्क टास्क के लिए विशेषज्ञ हो।
AI एजेंट के टूल कॉल ठीक से प्रदर्शन नहीं कर रहे - एजेंट प्रणाली के बाहर टूल के आउटपुट का परीक्षण और सत्यापन करें।
- परिभाषित पैरामीटर, प्रॉम्प्ट और टूल के नामों को परिष्कृत करें।
मल्टी-एजेंट सिस्टम लगातार अच्छा प्रदर्शन नहीं कर रहा - प्रत्येक एजेंट को दिए गए प्रॉम्प्ट को परिष्कृत करें ताकि वे विशिष्ट और एक-दूसरे से अलग हों।
- “रूटिंग” या नियंत्रक एजेंट का उपयोग करके एक पदानुक्रमित प्रणाली बनाएं जो यह निर्धारित करे कि कौन सा एजेंट सही है।

इन में से कई समस्याओं की पहचान अभिज्ञता की उपस्थिति में अधिक प्रभावी ढंग से की जा सकती है। हमने जो ट्रेस और मेट्रिक्स पहले चर्चा किए, वे एजेंट वर्कफ़्लो में समस्याएं कहाँ होती हैं ठीक से पता लगाने में मदद करते हैं, जिससे डिबगिंग और अनुकूलन बहुत अधिक कुशल हो जाता है।

लागत प्रबंधन

यहाँ उत्पादन में AI एजेंट तैनात करने की लागतों को प्रबंधित करने के कुछ रणनीतियाँ हैं:

छोटे मॉडल का उपयोग: छोटे भाषा मॉडल (SLMs) कुछ एजेंटिक उपयोग-मामलों में अच्छी प्रदर्शन कर सकते हैं और लागत को महत्वपूर्ण रूप से कम कर देंगे। जैसा कि पहले उल्लेख किया गया है, प्रदर्शन की तुलना करने और समझने के लिए कि आपका उपयोग मामला SLM पर कितना अच्छा चलेगा, एक मूल्यांकन प्रणाली बनाना सबसे अच्छा तरीका है। सरल कार्यों जैसे कि इरादा वर्गीकरण या पैरामीटर निष्कर्षण के लिए SLM का उपयोग करने पर विचार करें, जबकि जटिल तर्क के लिए बड़े मॉडल सुरक्षित रखें।

राउटर मॉडल का उपयोग: समान रणनीति यह है कि विभिन्न मॉडल और आकारों का उपयोग करें। आप एक LLM/SLM या सर्वरलेस फंक्शन का उपयोग करके जटिलता के आधार पर अनुरोधों को सबसे उपयुक्त मॉडल तक मार्गित कर सकते हैं। इससे लागत कम होने में मदद मिलेगी और सही कार्यों पर प्रदर्शन सुनिश्चित होगा। उदाहरण के लिए, सरल प्रश्नों को छोटे, तेज़ मॉडल की ओर मार्गित करें, और केवल जटिल तर्क कार्यों के लिए महंगे बड़े मॉडल का उपयोग करें।

उत्तर कैशिंग: सामान्य अनुरोधों और कार्यों की पहचान करना और एजेंटिक सिस्टम के माध्यम से जाने से पहले उत्तर प्रदान करना समान अनुरोधों की मात्रा को कम करने का एक अच्छा तरीका है। आप यह भी एक प्रवाह लागू कर सकते हैं जो अधिक बुनियादी AI मॉडलों का उपयोग करके यह पहचान सके कि कोई अनुरोध आपके कैश किए गए अनुरोधों से कितना समान है। यह रणनीति अक्सर पूछे जाने वाले प्रश्नों या सामान्य कार्यप्रवाहों के लिए लागत को काफी कम कर सकती है।

आइए देखें कि यह व्यावहारिक रूप से कैसे काम करता है

इस सेक्शन के उदाहरण नोटबुक में, हम उदाहरण देखेंगे कि हम अपने एजेंट की निगरानी और मूल्यांकन के लिए अवलोकनीयता उपकरणों का उपयोग कैसे कर सकते हैं।

उत्पादन में AI एजेंट्स के बारे में और प्रश्न हैं?

Microsoft Foundry Discord में शामिल हों ताकि आप अन्य शिक्षार्थियों से मिल सकें, ऑफिस आवर्स में भाग ले सकें और अपने AI एजेंट्स के प्रश्नों का समाधान प्राप्त कर सकें।

पिछला पाठ

Metacognition Design Pattern

अगला पाठ

Agentic Protocols


अस्वीकरण: इस दस्तावेज़ का अनुवाद AI अनुवाद सेवा Co-op Translator का उपयोग करके किया गया है। जबकि हम सटीकता के लिए प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में ही प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।