ard.json

Agentic Resource Discovery (ARD), एजेंटिक रिसॉर्स को कैटलॉग करने के लिए एक स्पेसिफ़िकेशन है. ard.json मेनिफ़ेस्ट में, किसी डोमेन पर मौजूद एजेंटिक संसाधनों के बारे में बताया जाता है. जैसे, एमसीपी सर्वर, एटूए एजेंट, और एजेंट की स्किल. इससे एआई एजेंट और रजिस्ट्री उन्हें ढूंढ पाती हैं.

Lighthouse ऑडिट कैसे काम करता है

खोजने की प्रोसेस: ऑडिट में, एआरडी के नियमों (§5.1) में बताए गए खोजने के तरीकों के आधार पर मेनिफ़ेस्ट को खोजा जाता है:

  • robots.txt में Agentmap: डायरेक्टिव की जांच की जा रही है.
  • <link rel="ard" href="..."> टैग के लिए, एचटीएमएल को स्कैन किया जा रहा है.
  • एचटीटीपी Link: <...>; rel="ard" हेडर रिस्पॉन्स की जांच की जा रही है.
  • /.well-known/ard.json एंडपॉइंट से फ़ेच किया जा रहा है.

अगर मुख्य तरीके से खोज नहीं हो पाती है, तो Lighthouse लेगसी पाथवे (जैसे, rel="ai-catalog" या /.well-known/ai-catalog.json) की जांच करता है. यहां मिलने वाले कॉन्टेंट की पुष्टि अब भी की जाती है. हालांकि, चेतावनी दी जाती है, क्योंकि स्टैंडर्ड एआरडी क्लाइंट के लिए, अब काम न करने वाले रूट के साथ काम करना ज़रूरी नहीं है.

पुष्टि करने के नियम: पुष्टि करने के लिए, ARD v0.91 कन्फ़ॉर्मेंस सुइट के JavaScript पोर्ट का इस्तेमाल किया जाता है. इसमें इन शर्तों की जांच की जाती है:

अनुपालन और पुष्टि से जुड़ी गड़बड़ियां:

  • सिंटैक्स और स्कीमा: मेनिफ़ेस्ट, मान्य JSON है और एआरडी मेनिफ़ेस्ट स्कीमा से मैच करता है. साथ ही, हर एंट्री, एआरडी एंट्री स्कीमा से मैच करती है. Lighthouse, किसी एंट्री पॉइंट के आर्टफ़ैक्ट को फ़ेच या उसकी पुष्टि नहीं करता. उदाहरण के लिए, url पर मौजूद एमसीपी सर्वर कार्ड.
  • ज़रूरी फ़ील्ड: मेनिफ़ेस्ट में एक entries कलेक्शन होता है. साथ ही, हर एंट्री में identifier, displayName, और type शामिल होता है.
  • डोमेन-ऐंकर किए गए यूआरएन: हर identifier, urn:air:<publisher>:<namespace>:<name> फ़ॉर्मैट का पालन करता है.
  • जगह की जानकारी: हर एंट्री में, url या इनलाइन data में से किसी एक की जानकारी दी जाती है. दोनों की जानकारी कभी नहीं दी जाती.
  • ट्रस्ट मेनिफ़ेस्ट का स्ट्रक्चर: जब trustManifest को शामिल किया जाता है, तो यह identity प्रॉपर्टी वाला एक ऑब्जेक्ट होता है.

सबसे सही तरीके से जुड़ी चेतावनियां:

  • Representative queries: हर एंट्री में दो से पांच सैंपल क्वेरी के साथ एक representativeQueries कलेक्शन होता है. रजिस्ट्री, इनसे अपना Search इंडेक्स बनाती हैं. इसलिए, इनके बिना कोई एंट्री, खोज के नतीजों में नहीं दिखेगी. (अगर यह मौजूद है, तो यह स्ट्रिंग का कलेक्शन होना चाहिए. इसके अलावा, कुछ और होने पर गड़बड़ी का मैसेज दिखेगा.)
  • मीडिया टाइप: type सही फ़ॉर्मैट में होना चाहिए. Lighthouse, बंद किए जा चुके टाइप (उदाहरण के लिए, application/mcp-server+json से application/mcp-server-card+json), ऐसे स्टैंडर्ड टाइप जिनमें पैरामीटर मौजूद नहीं हैं या अतिरिक्त पैरामीटर हैं, और application/* के बाहर मौजूद ऐसे टाइप जिनके बारे में जानकारी नहीं है उनके बारे में चेतावनी देता है. कस्टम application/* टाइप इस्तेमाल किए जा सकते हैं.
  • कलेक्शन: यह टॉप-लेवल collections फ़ील्ड को फ़्लैग करता है. यह अब एआरडी का हिस्सा नहीं है और इसे अनदेखा कर दिया गया है. इसके बजाय, entries में मॉडल की हैरारकी मौजूद है.
  • लेगसी एंडपॉइंट: यह उन फ़्लैग मेनिफ़ेस्ट को फ़्लैग करता है जो सिर्फ़ लेगसी ai-catalog जगहों पर मिलते हैं.
  • विज्ञापन में मौजूद ऐसी जगहें जो काम नहीं कर रही हैं: विज्ञापन में मौजूद ऐसी किसी भी जगह (Agentmap:, rel="ard" या rel="ai-catalog" लिंक या Link हेडर) को फ़्लैग करता है जिसे मेनिफ़ेस्ट के कहीं और मिलने पर लोड नहीं किया जा सका.

ज़रूरी नहीं है:

  • specVersion और अन्य अतिरिक्त टॉप-लेवल फ़ील्ड से स्कोर पर कोई असर नहीं पड़ता.
  • capabilities को भरना ज़रूरी नहीं है और इसके लिए कोई स्कोर नहीं दिया जाता. अगर आपके संसाधन में टूल या स्किल के नाम शामिल हैं, तो उन्हें सूची में शामिल करें. उदाहरण के लिए, ["WeatherTool", "ForecastTool"]. इससे रजिस्ट्री, पूरे आर्टफ़ैक्ट को फ़ेच किए बिना ही उन्हें फ़िल्टर कर सकती हैं. अगर इसे शामिल किया जाता है, तो यह स्ट्रिंग का कलेक्शन होना चाहिए.

नतीजों की टेबल को पढ़ना

एलिमेंट कॉलम में, मेनिफ़ेस्ट से जुड़ी समस्याओं के लिए Root दिखता है. किसी एंट्री में समस्या होने पर, यह एंट्री का displayName दिखाता है. अगर यह उपलब्ध नहीं है, तो identifier दिखाता है. अगर दोनों उपलब्ध नहीं हैं, तो Entry #n दिखाता है. स्कीमा से जुड़ी कोई समस्या दो बार दिख सकती है. एक बार Root में और एक बार एंट्री में. यह समस्या, आधिकारिक तौर पर किए जाने वाले कंफ़ॉर्मेंस टेस्ट के आउटपुट से मैच करती है.

अपने स्कोर को समझना

ऑडिट के नतीजे इन तरीकों से दिखते हैं:

  • पास (1): मेनिफ़ेस्ट मिल गया है. इसमें कोई गड़बड़ी या चेतावनी नहीं है.
  • कुछ क्रेडिट (0.9): मेनिफ़ेस्ट मान्य है, लेकिन इसमें सबसे सही तरीके से जुड़ी कम से कम एक चेतावनी है.
  • फ़ेल (0): नियमों का पालन न करने से जुड़ी कोई भी गड़बड़ी. जैसे, गलत फ़ॉर्मैट वाला JSON, स्कीमा का उल्लंघन, अमान्य यूआरएन या url/data में से दोनों या कोई भी नहीं. अगर मेनिफ़ेस्ट का विज्ञापन (robots.txt, rel="ard" या rel="ai-catalog" लिंक या Link हेडर के ज़रिए) दिखाया गया था, लेकिन उसे लोड नहीं किया जा सका, तो भी ऑडिट फ़ेल हो जाता है.
  • लागू नहीं: किसी भी तरीके से मेनिफ़ेस्ट नहीं मिला. इससे आपके Lighthouse स्कोर पर कोई असर नहीं पड़ता.

कैसे ठीक करें

ऑडिट पास करने के लिए, ये काम करें:

  1. अपने मेनिफ़ेस्ट को /.well-known/ard.json पर दिखाएं या rel=ard की मदद से इसे लिंक करें. अगर ai-catalog.json या rel=ai-catalog का इस्तेमाल किया जा रहा है, तो नए नामों पर स्विच करें.
  2. ऑडिट टेबल में मौजूद सभी गड़बड़ियों को ठीक करें, ताकि मेनिफ़ेस्ट, एआरडी स्कीमा से मैच हो सके.
  3. हर एंट्री को एक urn:air:... आइडेंटिफ़ायर दें. साथ ही, url या data में से कोई एक दें.
  4. जहां लागू हो वहां type में स्टैंडर्ड एआरडी मीडिया टाइप का इस्तेमाल करें.
  5. परफ़ेक्ट स्कोर पाने के लिए, हर एंट्री में दो से पांच representativeQueries जोड़ें.