ard.json

‫Agentic Resource Discovery‏ (ARD) הוא מפרט ליצירת קטלוג של משאבים לסוכנים. המניפסט ard.json מתאר משאבים של סוכנים בדומיין, כמו שרתי MCP, סוכני A2A ומיומנויות של סוכנים, כדי שסוכני AI ומרשמים יוכלו למצוא אותם.

איך פועלת הביקורת של Lighthouse

תהליך הגילוי: הבדיקה מחפשת את המניפסט על סמך מנגנוני הגילוי במפרט ה-ARD (סעיף 5.1):

  • בודקים אם יש הוראת Agentmap: בתוך robots.txt.
  • מתבצעת סריקה של HTML לאיתור תגי <link rel="ard" href="...">.
  • מתבצעת בדיקה של תגובת כותרת HTTP Link: <...>; rel="ard".
  • מתבצעת שליפה מנקודת הקצה המוכרת /.well-known/ard.json.

אם הגילוי הראשי נכשל, Lighthouse בודק נתיבים מדור קודם (כמו rel="ai-catalog" או /.well-known/ai-catalog.json). למרות שהתוכן שנמצא כאן עדיין מאומת, מוצגת אזהרה כי לקוחות ARD רגילים לא מחויבים לתמוך בנתיבים שהוצאו משימוש.

כללי אימות: האימות מתבצע באמצעות יציאת JavaScript של חבילת הכלים לבדיקת תאימות ARD v0.91, ובודק את הקריטריונים הבאים:

שגיאות תאימות ואימות:

  • תחביר וסכימה: המניפסט הוא קובץ JSON תקין שתואם לסכימת המניפסט של ARD, וכל רשומה תואמת לסכימת הרשומה של ARD. ‫Lighthouse לא מאחזר או מאמת את פריט המידע שאליו מצביע הרשומה (לדוגמה, כרטיס שרת ה-MCP בכתובת url).
  • שדות חובה: המניפסט מכיל מערך entries, וכל רשומה מכילה identifier, displayName ו-type.
  • ‫URNs עם עוגן לדומיין: כל identifier הוא בפורמט urn:air:<publisher>:<namespace>:<name>.
  • הגדרת מיקום: כל רשומה מגדירה בדיוק אחד מהשניים: url או data מוטבע, אף פעם לא את שניהם או אף אחד מהם.
  • מבנה מניפסט האמון: כשנכלל trustManifest, הוא אובייקט עם מאפיין identity.

אזהרות לגבי שיטות מומלצות:

  • שאילתות מייצגות: לכל רשומה יש מערך representativeQueries עם 2 עד 5 שאילתות לדוגמה. המרשמים בונים את אינדקס החיפוש שלהם על סמך השדות האלה, ולכן רשומה בלעדיהם לא תופיע בתוצאות החיפוש. (אם הוא קיים, הוא חייב להיות מערך של מחרוזות. כל דבר אחר הוא שגיאה).
  • סוג מדיה: type חייב להיות סוג מדיה תקין. ‫Lighthouse מציג אזהרות לגבי סוגים שהוצאו משימוש (לדוגמה, application/mcp-server+json עד application/mcp-server-card+json), סוגים סטנדרטיים עם פרמטרים חסרים או נוספים וסוגים לא מזוהים מחוץ ל-application/*. אפשר להשתמש בסוגי application/* בהתאמה אישית.
  • אוספים: מסמן שדה collections ברמה העליונה. הוא כבר לא חלק מ-ARD והמערכת מתעלמת ממנו. במקום זאת, היררכיות של מודלים בתוך entries.
  • נקודות קצה (endpoints) מדור קודם: מסמן מניפסטים שנמצאים רק במיקומים של ai-catalog מדור קודם.
  • מיקומים מפורסמים לא תקינים: מסמן כל מיקום מפורסם (קישור Agentmap:, rel="ard" או rel="ai-catalog", או כותרת Link) שלא ניתן היה לטעון כשהמניפסט נמצא במקום אחר.

לא נדרש:

  • specVersion ושדות נוספים ברמה העליונה לא משפיעים על הציון.
  • ‫capabilities הן אופציונליות ולא מקבלים עליהן ציון. אם המשאב שלכם חושף כלים או מיומנויות עם שמות, כדאי לפרט אותם (לדוגמה, ["WeatherTool", "ForecastTool"]) כדי שמאגרי מידע יוכלו לסנן אותם בלי לאחזר את פריט המידע המלא. אם הוא כלול, הוא חייב להיות מערך של מחרוזות.

קריאת טבלת התוצאות

בעמודה "רכיב" מוצג הערך Root אם יש בעיות במניפסט כולו. אם יש בעיות ברשומה, מוצג ה-displayName של הרשומה, או ה-identifier אם הוא לא זמין, או ה-Entry #n אם אף אחד מהם לא זמין. בעיה אחת בסכימה יכולה להופיע פעמיים, פעם אחת בקטע Root ופעם אחת ברשומה, בהתאם לפלט של בדיקת התאימות הרשמית.

הסבר על הציון

תוצאות הביקורת מוצגות בדרכים הבאות:

  • עבר (1): המניפסט נמצא ואין בו שגיאות או אזהרות.
  • קרדיט חלקי (0.9): המניפסט תקין אבל יש לפחות אזהרה אחת לגבי שיטות מומלצות.
  • נכשל (0): כל שגיאת תאימות, כמו קובץ JSON פגום, הפרת סכימה, URN לא חוקי, או שניהם או אף אחד מהם של 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. מתקנים את השגיאות שמופיעות בטבלת הביקורת כדי שהמניפסט יתאים לסכימה של ARD.
  3. צריך לתת לכל רשומה מזהה urn:air:... ובדיוק אחד מהמזהים url או data.
  4. אם רלוונטי, צריך להשתמש בסוג מדיה סטנדרטי של ARD במאפיין type.
  5. כדי לקבל ציון מושלם, צריך להוסיף 2 עד 5 representativeQueries לכל רשומה.