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 のスコアには影響しません。
修正方法
監査に合格するには、次の手順に沿って対応してください。
/.well-known/ard.jsonでマニフェストを配信するか、rel=ardにリンクしてください。ai-catalog.jsonまたはrel=ai-catalogを使用している場合は、新しい名前に移行してください。- マニフェストが ARD スキーマと一致するように、監査テーブルに表示されているエラーを修正します。
- すべてのエントリに
urn:air:...識別子と、urlまたはdataのいずれか 1 つを指定します。 typeでは、該当する標準の ARD メディアタイプを使用してください。- 満点を獲得するには、各エントリに 2 ~ 5 個の
representativeQueriesを追加します。