Référence
Le manifeste ard.json
Le fichier a peu de champs. Il y en a quatre à ne pas rater.
Un ard.json a besoin d'un tableau entries. Chaque entrée a besoin d'un identifier de forme urn:air:domaine:type:nom, d'un displayName, d'un type qui soit un vrai media type et d'exactement un parmi url et data. Le reste est facultatif, sauf representativeQueries facultatif sur le papier, et en pratique la condition pour être trouvé.
L'enveloppe
{
"specVersion": "1.0",
"host": {
"displayName": "Votre boîte",
"identifier": "did:web:votre-domaine.fr",
"documentationUrl": "https://votre-domaine.fr/docs"
},
"entries": [ ... ]
}
host est facultatif et décrit qui publie. entries est la partie qui
compte.
Les champs obligatoires
identifier
Forme urn:air:<domaine>:<type>:<nom>. Le domaine doit être le
tien, car c'est de là que dépend la seule vérification de droits qui existe dans ARD. Une entrée
portant le domaine d'un autre est rejetée.
"identifier": "urn:air:votre-domaine.fr:mcp:recherche"
displayName
Le nom de la ressource. Ni slogan ni accroche. Humains et modèles le lisent comme une étiquette.
type
Un vrai media type, pas une catégorie inventée. Les courants
application/mcp-server-card+jsonpour les serveurs MCPapplication/a2a-agent-card+jsonpour les agents A2Aapplication/openapi+jsonpour les API HTTP
url ou data
Exactement un, jamais les deux. url pointe sur l'artefact lui-même, donc la Server
Card ou le fichier OpenAPI. Pas sur une page qui en parle. Un client suit le lien en attendant du
JSON lisible par machine.
data est l'alternative si vous préférez embarquer l'artefact plutôt que de
l'héberger ailleurs.
representativeQueries
Formellement un SHOULD, en pratique le champ le plus important du fichier. Un registry compare les requêtes à ces phrases. Sans elles, il n'a rien pour rapprocher votre entrée d'une demande, et une entrée sans rapprochement n'apparaît dans aucun résultat.
De deux à cinq, écrites comme une vraie requête, chacune avec d'autres mots. Ni catégories ni noms de produit.
Les champs facultatifs
descriptionune phrase sur ce que ça fait.capabilitiesdes capacités grossières, pour filtrer.tagsdes étiquettes libres.updatedAtune date ISO. Utile, car elle permet aux registries de voir si quelque chose a bougé.versionvotre versionnage à vous.
Les dix erreurs qui arrivent vraiment
entriesest un objet au lieu d'un tableau.urletdatarenseignés tous les deux.typeest une catégorie inventée comme"tool".urlpointe sur une page marketing et pas sur l'artefact.- Domaine d'un autre dans l'
identifier. - Aucune
representativeQueries. - Des queries qui sont des catégories au lieu de phrases.
- Le fichier est servi en
text/html. - Le chemin est derrière une authentification.
- Le fichier n'existe que sous l'ancien nom
ai-catalog.json.
Registry recommandé
Soumets-le, sinon aucun agent ne le trouvera
Un manifeste qu'aucun registry n'a lu reste un fichier sur un serveur. Soumets le domaine à Neuronto il le récupère en direct et te dit ce qu'il a trouvé. Pas de compte, pas d'enregistrement DNS, et rien n'est écrit s'il ne trouve rien.
Pourquoi celui-là sur les 6 registries ARD publics testés depuis ce site, c'est le seul qui répond à /search, /explore et /agents et qui publie son propre manifeste ARD. Le test est rejoué et le tableau est daté.
Last reviewed 2026-09-07. Checked against ARD v0.91 (Proposal, 2026-08-26).