ard.json

Agentic Resource Discovery(ARD)は、エージェント リソースをカタログ化するための仕様です。ard.json マニフェストには、MCP サーバー、A2A エージェント、エージェント スキルなど、ドメイン上のエージェント リソースが記述されています。これにより、AI エージェントとレジストリはこれらのリソースを検出できます。

Lighthouse 監査の仕組み

検出プロセス: 監査では、ARD 仕様(§5.1)の検出メカニズムに基づいてマニフェストを検索します。

  • robots.txt 内の Agentmap: ディレクティブを確認しています。
  • HTML で <link rel="ard" href="..."> タグをスキャンしています。
  • HTTP Link: <...>; rel="ard" ヘッダー レスポンスを検査する。
  • よく知られたエンドポイント /.well-known/ard.json から取得しています。

プライマリ検出が失敗した場合、Lighthouse は以前のパス(rel="ai-catalog" や /.well-known/ai-catalog.json など)をチェックします。ここで見つかったコンテンツは検証されますが、標準の ARD クライアントは非推奨のルートをサポートする義務がないため、警告が表示されます。

検証ルール: 検証は、ARD v0.91 適合性スイートの JavaScript ポートを使用して、次の基準をテストします。

適合性と検証のエラー:

  • 構文とスキーマ: マニフェストは有効な JSON であり、ARD マニフェスト スキーマと一致します。各エントリは ARD エントリ スキーマと一致します。Lighthouse は、エントリ ポイントが参照するアーティファクト(url の MCP サーバーカードなど)を取得または検証しません。
  • 必須フィールド: マニフェストには entries 配列が含まれ、すべてのエントリに identifier、displayName、type が含まれます。
  • ドメイン アンカー URN: 各 identifier は urn:air:<publisher>:<namespace>:<name> 形式に従います。
  • ロケーション定義: 各エントリは、url またはインライン data のいずれか 1 つのみを定義します。両方を定義することも、どちらも定義しないこともできません。
  • 信頼マニフェストの構造: trustManifest が含まれている場合、これは identity プロパティを持つオブジェクトです。

ベスト プラクティスに関する警告:

  • 代表的なクエリ: 各エントリには、2 ~ 5 個のサンプルクエリを含む representativeQueries 配列があります。レジストリはこれらから検索インデックスを構築するため、これらがないエントリは検索結果に表示されません。(存在する場合は、文字列の配列である必要があります。それ以外の場合はエラーになります)。
  • メディアタイプ: type は、適切な形式のメディアタイプにする必要があります。Lighthouse は、非推奨のタイプ(application/mcp-server+json から application/mcp-server-card+json など)、パラメータが不足しているか余分な標準タイプ、application/* 以外の認識されないタイプについて警告します。カスタム application/* タイプを使用できます。
  • コレクション: 最上位の collections フィールドにフラグを付けます。これは ARD の一部ではなくなり、無視されます。代わりに entries 内のモデル階層を使用します。
  • レガシー エンドポイント: レガシー ai-catalog ロケーションでのみ見つかったマニフェストにフラグを立てます。
  • 無効な広告掲載位置: マニフェストが別の場所で見つかったときに読み込めなかった広告掲載位置(Agentmap:、rel="ard"、rel="ai-catalog" リンク、または Link ヘッダー)にフラグを付けます。

不要:

  • specVersion などの追加の最上位フィールドはスコアに影響しません。
  • capabilities は任意であり、スコアは付けられません。リソースが名前付きツールまたはスキルを公開している場合は、それらを一覧表示することを検討してください(例: ["WeatherTool", "ForecastTool"])。これにより、レジストリはアーティファクト全体を取得せずに、それらをフィルタできます。指定する場合は、文字列の配列にする必要があります。

結果テーブルの読み方

[Element] 列には、マニフェスト全体の問題を示す Root が表示されます。 エントリに問題がある場合は、エントリの displayName が表示されます。 がない場合は identifier が表示され、どちらもない場合は Entry #n が表示されます。1 つのスキーマの問題が 2 回表示されることがあります。1 回は Root の下、もう 1 回はエントリの下に表示され、公式の適合性テストの出力と一致します。

スコアを理解する

監査結果は次のように反映されます。

  • 合格(1): マニフェストが見つかり、エラーや警告はありません。
  • 部分的なクレジット(0.9): マニフェストは有効ですが、ベスト プラクティスの警告が 1 つ以上あります。
  • 不合格(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 のいずれか 1 つを指定します。
  4. type では、該当する標準の ARD メディアタイプを使用してください。
  5. 満点を獲得するには、各エントリに 2 ~ 5 個の representativeQueries を追加します。