WebMCP टूल की सुरक्षा

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

पब्लिश होने की तारीख: 9 जून, 2026

ब्राउज़र में चलने वाले एआई एजेंट के लिए, स्ट्रक्चर्ड टूल बनाने और उन्हें उपलब्ध कराने के लिए, वेब मॉडल कॉन्टेक्स्ट प्रोटोकॉल (WebMCP) का इस्तेमाल किया जा सकता है. इनमें एक्सटेंशन की मदद से काम करने वाले एजेंट भी शामिल हैं. एजेंट, लार्ज लैंग्वेज मॉडल (एलएलएम), नियमों, मेमोरी, और टूल का इस्तेमाल करके, उपयोगकर्ता की ओर से कार्रवाइयां करता है.

एलएलएम, सभी टेक्स्ट, निर्देशों, और उपयोगकर्ता के डेटा को टोकन के एक ही क्रम के तौर पर मानते हैं. इसलिए, वे अप्रत्यक्ष प्रॉम्प्ट इंजेक्शन के लिए संवेदनशील होते हैं. इसमें हमलावर, नुकसान पहुंचाने वाले निर्देशों को शामिल करता है. हमारी टीम ने टूल की सुरक्षा के बारे में यह दस्तावेज़ लिखा है. इससे आपको अपनी वेबसाइट और उपयोगकर्ताओं को नुकसान पहुंचाने वाले लोगों से सुरक्षित रखने में मदद मिलेगी.

कुछ मॉडल में ऐसी लेयर होती हैं जो प्रॉम्प्ट इंजेक्शन की समस्या को हल करती हैं. हालांकि, लार्ज लैंग्वेज मॉडल (एलएलएम) में सुरक्षा की गारंटी देना मुमकिन नहीं है. मॉडल, संभावनाओं पर आधारित होते हैं. यह याद रखना ज़रूरी है कि स्टेट-ऑफ़-द-आर्ट एलएलएम का इस्तेमाल करने वाले एजेंटिक सिस्टम पर, बार-बार प्रॉम्प्ट इंजेक्शन के हमले हुए हैं. साथ ही, वेब पर हमलों की संख्या बढ़ रही है.

इन चिंताओं को दूर करने के लिए, हमने WebMCP की मदद से टूल बनाने वाले लोगों को सुरक्षा के बारे में शुरुआती दिशा-निर्देश दिए हैं.

एनोटेशन के सुझावों का इस्तेमाल करना

टूल बनाते समय, आपको कुछ सुराग जोड़ने चाहिए:

  • ज़रूरत के मुताबिक untrustedContentHint का इस्तेमाल करें. अगर कोई टूल, उपयोगकर्ता का बनाया हुआ कॉन्टेंट (यूजीसी) या बाहरी सोर्स से लिया गया डेटा दिखाता है, तो उस टूल में untrustedContentHint जोड़ें. यह फ़ील्ड, पेलोड को साफ़ तौर पर 'भरोसेमंद नहीं' के तौर पर लेबल करता है. इससे आपकी साइट की अखंडता को सुरक्षित रखने में मदद मिलती है. साथ ही, एजेंट को यह सिग्नल मिलता है कि इस डेटा की बारीकी से जांच करना ज़रूरी है.
  • ऐसे टूल पर readOnlyHint का इस्तेमाल करें जो स्थिति में बदलाव नहीं करते. इससे एजेंट को यह तय करने में मदद मिलती है कि उपयोगकर्ता से पुष्टि कब करानी है.

अपने टूल को सावधानी से दिखाएं

WebMCP document.modelContext.registerTool एपीआई, एजेंट के लिए सिर्फ़ टूल की सुविधा उपलब्ध कराता है. डिफ़ॉल्ट रूप से, दूसरी वेबसाइटें या क्रॉस-ऑरिजिन iframe, आपके टूल को न तो देख सकते हैं और न ही उनसे इंटरैक्ट कर सकते हैं.

registerTool में मौजूद exposedTo विकल्प का इस्तेमाल करके, अपने टूल का ऐक्सेस कुछ खास और सुरक्षित ऑरिजिन को दिया जा सकता है. इससे, आपकी साइट पर एंबेड किए जाने पर, आपका टूल उन ऑरिजिन के लिए उपलब्ध हो जाता है. साथ ही, आपकी साइट को उस ऑरिजिन पर एंबेड किए जाने पर भी ऐसा होता है.

// https://partner.org

document.modelContext.registerTool({
  name: 'my_shared_tool',
  description: 'Shared across origins',
  // ...
}, {
  exposedTo: ['https://trusted.com', 'https://example.com']
});

अपने टूल सिर्फ़ उन ऑरिजिन के लिए एक्सपोज़ करें जिन पर आपको भरोसा है. यह खास तौर पर तब ज़रूरी होता है, जब टूल उपयोगकर्ता के डेटा को मैनेज करते हैं या उपयोगकर्ता पर किसी और तरह से असर डालते हैं.

  • getFavoriteProducts जैसे रीड-ओनली टूल से, किसी उपयोगकर्ता के बारे में जानकारी का पता चल सकता है. आपको इन टूल को सिर्फ़ उन वेबसाइटों के लिए उपलब्ध कराना चाहिए जिनके साथ आपको यह डेटा सीधे तौर पर शेयर करना है.
  • पढ़ने और लिखने का ऐक्सेस रखने वाले टूल, उपयोगकर्ता की ओर से कार्रवाई करते हैं. इन टूल को सिर्फ़ उन ऑरिजिन के लिए उपलब्ध कराया जाना चाहिए जिन पर आपको भरोसा है. ऐसा तब किया जाना चाहिए, जब वे आपके उपयोगकर्ता की ओर से कार्रवाई कर रहे हों. उदाहरण के लिए, हो सकता है कि आपको postComment को trustedExample.com के लिए उपलब्ध कराना हो, लेकिन आपको इसे evilExample.com के लिए उपलब्ध नहीं कराना हो.

वर्णों के बजट सेट करना

एजेंट के दिशा-निर्देशों का पालन करने के लिए, टूल के बारे में कम शब्दों में जानकारी दें और आउटपुट लिखें. बेहतर नतीजों के लिए, हम वर्णों की इन सीमाओं का सुझाव देते हैं:

  • हर टूल के ब्यौरे के लिए 500 वर्ण
  • हर पैरामीटर की जानकारी के लिए 150 वर्ण
  • टूल के नाम और पैरामीटर के नाम के लिए 30 वर्ण
  • हर टूल के आउटपुट के लिए 1,500 वर्णों की सीमा

ऐसा हो सकता है कि अलग-अलग एजेंट के जवाबों में कुछ अंतर हो. साथ ही, आपको उपयोगकर्ता से मिले सुझाव/राय के आधार पर, वर्णों की संख्या में बदलाव करना पड़ सकता है.

अगले चरण

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

आपको अपने ऐप्लिकेशन में WebMCP को कैसे लागू करना है? क्या आपको सुरक्षा या अन्य मामलों से जुड़ी कोई समस्या है? अगर आपने WebMCP की ऑरिजिन ट्रायल के लिए साइन अप किया है, तो हम आपके अनुभव के बारे में जानना चाहते हैं:

अगर आपको कोई एजेंट बनाना है, तो हमारा सुझाव है कि आप WebMCP के लिए एजेंट की सुरक्षा से जुड़ी बातों का ध्यान रखें लेख पढ़ें.