WebMCP के लिए आकलन
पब्लिश होने की तारीख: 19 मई, 2026, पिछली बार अपडेट किए जाने की तारीख: 28 मई, 2026
| ज़्यादा जानकारी देने वाला वीडियो | वेब | एक्सटेंशन | Chrome स्टेटस | मकसद |
|---|---|---|---|---|
| GitHub | देखें | एक्सपेरिमेंट करने का इरादा |
WebMCP, जनरेटिव एआई मॉडल का इस्तेमाल करने वाले एजेंट के साथ काम करता है. जनरेटिव एआई का इस्तेमाल करके किसी भी सिस्टम की जांच करने के लिए, आपके टेस्ट में संभावित नतीजों का समर्थन होना चाहिए: एक इनपुट से, अलग-अलग सटीक जवाब मिल सकते हैं. इस टेस्टिंग तकनीक को इवैल्यूएशन या इवैल कहा जाता है.
टूल को प्रोडक्शन में रिलीज़ करने से पहले, आपको यह पुष्टि करनी होगी कि एजेंट को यह पता हो कि टूल को कब कॉल करना है, इसे कैसे लागू करना है, और कौनसे जवाब स्वीकार किए जा सकते हैं. समस्याएं होने से पहले ही उन्हें हल करें.
अपने सिस्टम के टचपॉइंट की जांच करने के लिए, लार्ज लैंग्वेज मॉडल (एलएलएम) के साथ मिलकर आकलन लिखें:
- देखें कि मॉडल को टूल के मकसद के बारे में पता हो. यह जानकारी, टूल के ब्यौरे और स्कीमा के आधार पर तय की जाती है.
- पुष्टि करें कि मॉडल, उपयोगकर्ता के मकसद को पूरा करने के लिए सही पैरामीटर के साथ सही टूल चुनता हो.
- पुष्टि करें कि मॉडल को मिली जानकारी के आधार पर कार्रवाई की जा रही है. उदाहरण के लिए, किसी अन्य टूल को कॉल करने के लिए जानकारी का इस्तेमाल करना.
- उपयोगकर्ता की गतिविधियों के सही तरीके से पूरा होने की पुष्टि करें. उपयोगकर्ता के इंटेंट को देखते हुए, क्या एजेंट दिए गए टूल की मदद से मेरी वेबसाइट पर उपयोगकर्ता की यात्रा को पूरा कर सकता है?
आपको ऐसे सिस्टम इंटरैक्शन के लिए क्लासिक डिटरमिनिस्टिक टेस्ट लिखना जारी रखना चाहिए जो मॉडल के साथ कम्यूनिकेट नहीं करता है.
गड़बड़ी के मोड
डेवलपर को अपने सिस्टम की जांच करनी चाहिए, ताकि गड़बड़ियों को होने से रोका जा सके. इसके लिए, आपको यह समझना होगा कि सिस्टम कब काम नहीं कर सकता. ऐसा, सिस्टम के अपने फ़ैसलों और बाहरी फ़ैक्टर के साथ इंटरैक्ट करने के दौरान हो सकता है. WebMCP के लिए, टूल खुद काम नहीं कर सकता. साथ ही, एजेंट शायद टूल का इस्तेमाल ठीक से न कर पाएं.
WebMCP टूल काम नहीं कर सकते और एजेंट, WebMCP टूल के साथ काम नहीं कर सकता. उदाहरण के लिए, मान लें कि आपका उपयोगकर्ता अपने कार्ट में कोई टी-शर्ट जोड़ना चाहता है.
| अपलोड नहीं हुआ | उदाहरण | समस्या हल करें |
|---|---|---|
| एजेंट सही टूल नहीं चुन पाता या सीधे तौर पर गलत टूल को कॉल करता है. |
एजेंट,
|
|
| एजेंट ने टूल को गलत क्रम में कॉल किया |
एजेंट,
|
|
| एजेंट ने गलत तर्कों के साथ टूल को कॉल किया |
एजेंट
|
|
अगर उपयोगकर्ता को यह देखना है कि उसके कार्ट में क्या है, तो क्या होगा?
| अपलोड नहीं हुआ | उदाहरण | समस्या हल करें |
|---|---|---|
| टूल का आउटपुट गलत है या टूल में कोई जानकारी मौजूद नहीं है. | उपयोगकर्ता ने
|
|
आखिर में, कोई टूल किसी भी तरह से JavaScript को काम करने से रोक सकता है. समस्या हल करने के लिए, यहां दी गई जानकारी देखें:
- क्या टूल का कोड, रनटाइम के दौरान होने वाली सभी संभावित गड़बड़ियों और अपवादों को सही तरीके से हैंडल करता है?
- क्या गड़बड़ी की जानकारी, एजेंट और मॉडल को सही तरीके से दी गई है?
- क्या टूल, बाहरी एपीआई या सेवाओं पर ठीक से काम कर रहा है?
- क्या गड़बड़ी की जानकारी इतनी साफ़ तौर पर दी गई है कि मॉडल, कुछ समय के लिए होने वाली समस्या (फिर से कोशिश करें) और गंभीर गड़बड़ी के बीच अंतर कर सके?
टेस्ट टूल को अलग-अलग करके टेस्ट करना
अगर कोई एजेंट, "मुझे एक छोटा पिज़्ज़ा चाहिए" जैसे अनुरोध के लिए, यह पता नहीं लगा पाता कि किस टूल को कॉल करना है, तो वह उपयोगकर्ता के मुश्किल सफ़र में मदद नहीं कर पाएगा.
टेस्टिंग टूल का इस्तेमाल करके, ब्राउज़र सिम्युलेशन चलाने से पहले ही अपने स्कीमा और ब्यौरों को ऑप्टिमाइज़ किया जा सकता है.
document.modelContext.executeTool(...)
कॉल की सटीक जानकारी का आकलन करना
हमारे डेमो, WebMCP zaMaker को देखें.
जब उपयोगकर्ता प्रॉम्प्ट करता है, "मुझे एक छोटा पिज़्ज़ा चाहिए," तो आपको मॉडल से ऐसा जवाब मिल सकता है जिसमें "size":"Small" आर्ग्युमेंट के साथ set_pizza_size कॉल करने का इरादा बताया गया हो.
expectedCall फ़ंक्शन, उम्मीद के मुताबिक काम करने वाले फ़ंक्शन और आर्ग्युमेंट को तय करता है. इस अप्रोच से यह पुष्टि की जाती है कि एजेंट, दिए गए स्कीमा के आधार पर उपयोगकर्ता के मकसद को पूरा करने के लिए सही टूल चुनेगा.
{
"messages": [
{
"role": "user",
"content": "I'd like a small pizza."
}
],
"expectedCall": [
{
"functionName": "set_pizza_size",
"arguments": { "size": "Small" }
}
]
}
expectedCall का इस्तेमाल, नियम पर आधारित और तय किए गए टेस्ट को पूरा करने के लिए किया जाता है:
WebMCP टूल को किसी कॉम्पोनेंट के लाइफ़साइकल से जोड़ा जा सकता है. इसका मतलब है कि आपको तब टेस्ट करना होगा, जब आपके ऐप्लिकेशन की स्थिति WebMCP की उम्मीद के मुताबिक हो. इसे मैनेज करने के लिए, टूल की पूरी सूची दें. यह सूची उस राज्य के हिसाब से होनी चाहिए जिसके लिए आपको आकलन करना है. उदाहरण के लिए, कोई उपयोगकर्ता अपने एजेंट के साथ मिलकर ब्राउज़िंग कर रहा है और WebMCP zaMaker खोलता है.
ऐप्लिकेशन स्थिति
[
...
{
"name": "add_topping",
"description": "Add one or more toppings to the pizza",
...
},
{
"name": "set_pizza_size",
"description": "Set the pizza size directly.",
"inputSchema": {
"type": "object",
"properties": {
"size": {
"type": "string",
"enum": [
"Small",
"Medium",
"Large",
"Extra Large"
],
"description": "The specific size name."
},
}
}
},
{
"name": "set_pizza_style",
"description": "Set the style of the pizza (colors/theme)",
...
},
...
]
कॉल आने का अनुमानित समय
...
"expectedCall": [
{
"functionName": "set_pizza_size",
"arguments": { "size": "Small" }
}
]
...
WebMCP खोलने पर, add_topping, set_pizza_size, और set_pizza_style टूल दिखते हैं. इनमें से किसी भी टूल की सटीक जांच करने के लिए, आपको सभी टूल शामिल करने चाहिए, ताकि एक जैसा और पूरा स्टेटस बनाया जा सके.
ध्यान दें: किसी एजेंट के पास अतिरिक्त टूल का ऐक्सेस हो सकता है. हालांकि, आपके पास यह तय करने का विकल्प होता है कि उसे कौनसे टूल का ऐक्सेस देना है.
अब आपको पता चल गया है कि एजेंट, ज़रूरत के हिसाब से सही टूल को कॉल करता है. इसलिए, अब यह जांच की जा सकती है कि टूल कॉल में सही पैरामीटर हैं या नहीं और नतीजे उम्मीद के मुताबिक हैं या नहीं. इसके दो चरण होते हैं: डिटरमिनिस्टिक टेस्ट और प्रॉबबिलिस्टिक टेस्ट.
डिटरमिनिस्टिक टेस्ट चलाना
WebMCP टूल, JavaScript या एचटीएमएल एनोटेशन के साथ बनाए जाते हैं. इसलिए, यहां दिए गए कामों को पूरा करने के लिए, डिटरमिनिस्टिक टेस्ट लिखे जा सकते हैं:
- टूल के लॉजिक की पुष्टि करें.
- पुष्टि करें कि डिपेंडेंसी को सही तरीके से कॉल किया गया हो.
- पुष्टि करें कि यूज़र इंटरफ़ेस, उम्मीद के मुताबिक अपडेट हो गया है. साथ ही, यह भी देखें कि क्या कोई अन्य साइड इफ़ेक्ट हुआ है.
- पुष्टि करें कि दिखाई गई जानकारी, अनुमानित वैल्यू से मेल खाती हो.
- जांच के पैरामीटर की पुष्टि करें.
उदाहरण के लिए, अगर आपका टूल SearchComponent फ़ंक्शन का इस्तेमाल करता है, तो SearchComponent का मॉक पास करके टेस्ट किया जा सकता है. बेहतर नतीजे पाने के लिए, उस एनवायरमेंट को सिम्युलेट करना न भूलें जिसमें टूल काम कर रहा है. यह वही तरीका है जिसका इस्तेमाल किसी दूसरे ऐप्लिकेशन इंटिग्रेशन टेस्ट को लिखने के लिए किया जाता है.
संभावित टेस्ट चलाना
अगर आपको अगले टूल को सही तरीके से कॉल करने के लिए मॉडल आउटपुट की ज़रूरत है, तो आपको evals लिखना होगा.
ऐसा हो सकता है कि लोग मॉडल से सीधे तौर पर ऐसी क्वेरी करें जिनमें यह पूछा गया हो कि टूल क्या करता है. इसके अलावा, वे ऐसी क्वेरी भी कर सकते हैं जिनमें साफ़ तौर पर यह न बताया गया हो कि टूल का इस्तेमाल किया जाना चाहिए. उदाहरण के लिए, "मेरे पिज़्ज़ा में पेपरोनी जोड़ो" एक सीधी क्वेरी है. "मुझे अपने पिज़्ज़ा में सभी तरह का मांस चाहिए" एक अस्पष्ट क्वेरी है. इसके लिए, मॉडल को यह समझना होगा कि उसे add_topping टूल की ज़रूरत है और कौनसी टॉपिंग को मांस के तौर पर तय किया जा सकता है.
अपने आकलन के लिए डेटासेट बनाते समय, ऐसी सीधी क्वेरी शामिल करें जिनसे बेसलाइन टूल के एक्ज़ीक्यूशन की जांच की जा सके. साथ ही, ऐसी ओपन-एंडेड क्वेरी शामिल करें जिनसे मॉडल की तर्क क्षमता और टूल चुनने के लॉजिक की जांच की जा सके.
अगर आपकी कोई कॉफ़ी शॉप है, तो उन उपयोगकर्ताओं की मदद की जा सकती है जिन्होंने अपने एजेंट से, पिछले महीने ऑर्डर की गई कॉफ़ी को फिर से ऑर्डर करने के लिए कहा है. पिछले ऑर्डर खोजने के लिए एक टूल लिखो, OrderHistoryService, और कॉफ़ी ऑर्डर करने के लिए दूसरा टूल लिखो. ऑर्डर के इतिहास की सेवा को टेस्ट करने के लिए, एक मॉक भेजें. इससे कॉफ़ी के प्रॉडक्ट आईडी की जानकारी मिलती है.
इस उदाहरण में, यह आकलन किया जाता है कि मॉडल को क्वेरी का मकसद समझ में आया है या नहीं. साथ ही, यह भी देखा जाता है कि मॉडल ने सही टूल चुना है या नहीं और उस टूल से कार्रवाई करने के लिए सही जानकारी मिली है या नहीं.
अगर मॉडल get_order_history को कॉल नहीं करता है, तो उसे यह नहीं पता चलेगा कि order_product के लिए item_id का इस्तेमाल कैसे करना है.
शुरू से आखिर तक की जांच
एंड-टू-एंड टेस्ट लिखें, ताकि आपको भरोसा हो कि उपयोगकर्ता और उनके एजेंट अपनी यात्राएं पूरी कर सकते हैं. अलग-अलग टूल की जांच करने के साथ-साथ, यह भी जांच की जाती है कि कई चरणों वाली कार्रवाइयां सही क्रम में की गई हैं या नहीं.
उदाहरण के लिए, मान लें कि आपकी कपड़ों की एक ऑनलाइन दुकान है. उपयोगकर्ता अपने एजेंट से पूछता है: "मुझे एक काली जैकेट और एक जोड़ी जींस खरीदनी है. क्या इस्तेमाल किए गए मटीरियल की जानकारी दी जा सकती है?"
एजेंट के तौर पर काम करने वाले एआई के साथ बातचीत करने का एक उदाहरण यहां दिया गया है:
- कपड़ों की कैटगरी पर जाएं.
- कपड़ों के किसी एक आइटम को ढूंढो (ऑर्डर ज़रूरी नहीं है).
- कोई खास आइटम ढूंढें (
search_clothes). - प्रॉडक्ट की वह जानकारी पाएं जिसमें मटीरियल की सूची (
get_product_details) शामिल हो. - अनुरोध किए गए हर आइटम के लिए, दूसरे से चौथे चरण तक की प्रोसेस दोहराएं.
जब एजेंट दूसरे चरण पर पहुंचता है, तो वह काली टी-शर्ट या जींस खोज सकता है. क्रम मायने नहीं रखता. हालांकि, बाकी के चरणों को क्रम से पूरा करना ज़रूरी है.
एजेंट के टूल को सही क्रम में कॉल करने की पुष्टि करने के लिए, एंड-टू-एंड जांच लिखें:
{
"messages": [
{
"role": "user",
"content": "I am looking to buy a black jacket and a pair of jeans.
Could you provide a breakdown of the materials used ?"
}
],
"expectedCall": [
{
"functionName": "navigate_to_category",
"arguments": { "category": "clothes" }
},
{
"unordered": [
{
"ordered": [
{
"functionName": "search_clothes",
"arguments": { "query": "black jacket" }
},
{
"functionName": "get_product_details",
"arguments": { "productId": "JACKET002" }
}
]
},
{
"ordered": [
{
"functionName": "search_clothes",
"arguments": { "query": "jeans" }
},
{
"functionName": "get_product_details",
"arguments": { "productId": "JEANS001" }
}
]
}
]
}
]
}
चेन के बीच में आने वाली गड़बड़ियों का आकलन करना
start_pizza_creator, set_pizza_style, set_pizza_size, start_checkout, add_discount_coupon, और complete_checkout. add_discount_coupon लागू नहीं हुआ, लेकिन प्रोसेस पूरी हो गई. इसका मतलब है कि उपयोगकर्ता को छूट नहीं मिली.ऐसा हो सकता है कि किसी एजेंट को एक के बाद एक कई टूल को कॉल करना पड़े. अगर इस प्रोसेस के बीच में कोई टूल काम करना बंद कर दे, तो क्या होगा? उदाहरण के लिए, किसी व्यक्ति को अपने कूपन कोड का इस्तेमाल करके पिज़्ज़ा ऑर्डर करना है:
"मुझे छोटा पेस्टो पिज़्ज़ा चाहिए. मेरे प्रोमो कोड, FreePizza का इस्तेमाल करो."
ऐसा हो सकता है कि एजेंट, add_discount_coupon को पूरा न कर पाए और पूरी कीमत वाले पिज़्ज़ा के लिए चेकआउट कर दे. add_discount_coupon टूल को आज़माने के लिए, टूल कॉल के इस क्रम को मैन्युअल तरीके से लागू किया जा सकता है. इसके लिए, मॉडल के साथ इंटरैक्ट करने की ज़रूरत नहीं है. इससे इस स्थिति को सिम्युलेट किया जा सकता है. अपने ऐप्लिकेशन को उस स्थिति में ले जाएं जहां आपको लगता है कि टूल काम नहीं करेगा. इस मामले में, यह start_checkout टूल के बाद है. इसके बाद, add_discount_coupon का आकलन अलग से किया जा सकता है.
WebMCP के साथ एक्सपेरिमेंट करना
आइसोलेशन में टूल के लिए, ईवैल्यूएशन की सुविधा का इस्तेमाल शुरू करें. साथ ही, WebMCP के साथ काम करने वाले किसी भी एजेंट की मदद से, WebMCP की सुविधा वाली अपनी साइटों का आकलन करें:
- GitHub पर मौजूद, एक्सपेरिमेंट के तौर पर उपलब्ध मूल्यांकन टूल डाउनलोड करें.
- हमारा कोर्स, एआई इवैलुएशन बनाना देखें.