ARD : trouver des ressources pour les agents AI
Auteur : Rédaction Domeny.ForSale Publié le Mis à jour le
ARD (Agentic Resource Discovery) est une spécification ouverte pour décrire et rechercher des ressources utilisables par les agents AI. Elle aide une application à trouver un outil, un serveur MCP, un autre agent ou un ensemble d’instructions adapté à la tâche de l’utilisateur. Elle associe les descriptions de ressources publiées par leurs propriétaires à des registres qui les indexent et permettent de les rechercher. Cet article s’appuie sur la spécification ARD .
Quel problème ARD résout-il ?
Supposons que vous demandiez à un assistant : « Trouve un nom de domaine court pour une boutique de vélos ». Pour accomplir cette tâche, il doit accéder à un catalogue de domaines et savoir comment y effectuer une recherche. Dans une petite application, le développeur peut connecter l’outil approprié à l’avance. Avec des milliers de services disponibles, configurer manuellement chaque intégration et placer toutes leurs descriptions dans le contexte du modèle devient difficile.
ARD propose de rechercher les ressources en fonction du besoin. L’application envoie une requête au registre, reçoit les descriptions correspondantes et choisit les ressources à utiliser. Le contexte du modèle peut alors contenir les informations sur les ressources sélectionnées plutôt que le catalogue entier.
Il s’agit d’un mécanisme de découverte des capacités disponibles. Une fois la ressource trouvée, l’application doit encore prendre en charge le mode de communication approprié et les autorisations requises. La spécification distingue la recherche de l’utilisation ultérieure de l’outil. Principes de conception de ARD
Comment fonctionne ARD, étape par étape ?
Le processus fait intervenir l’éditeur de la ressource, le registre et l’application utilisant un agent AI.
- L’éditeur décrit la ressource. Il indique son nom, son identifiant, son type et un document décrivant ses capacités ou ses instructions d’utilisation.
- La description devient accessible sur internet. L’emplacement principal du manifeste est
/.well-known/ard.json. La spécification prévoit aussi, entre autres, des données JSON-LD intégrées, un lien HTMLrel="ard", une directiveAgentmapdansrobots.txtet des enregistrements DNS. - Le registre récupère et indexe les entrées. Il utilise leurs données pour rechercher les ressources appropriées.
- L’application décrit le besoin. Elle envoie au registre une requête en langage naturel, éventuellement accompagnée de filtres.
- L’application choisit un résultat et lit la description de la ressource. Elle peut ensuite l’utiliser conformément au protocole approprié et à ses propres règles d’accès.
Publier un manifeste ne revient donc pas à exploiter un registre. Le propriétaire d’un site peut mettre à disposition un fichier statique sans lancer son propre service de recherche. L’obligation de fournir une interface de recherche REST concerne les registres. Découverte et indexation des ressources
Que contient une entrée ARD ?
Une entrée décrit une ressource selon le modèle JSON-LD. Le manifeste ard.json regroupe ces entrées dans le tableau entries. Les principaux champs sont les suivants :
| Champ | Signification | Exigence |
|---|---|---|
identifier | Identifiant unique au format urn:air:<publisher>:<namespace>:<agent-name> | Obligatoire |
displayName | Nom lisible de la ressource | Obligatoire |
type | Type du document décrit, exprimé sous forme de type de média | Obligatoire |
url ou data | Adresse du document ou contenu du document intégré dans l’entrée | Exactement un de ces deux champs |
representativeQueries | Exemples de questions ou de consignes auxquelles la ressource répond | 2–5 exemples recommandés |
capabilities | Libellés courts des fonctions, utiles pour le filtrage | Facultatif |
Le champ url renvoie au document décrit, par exemple à une fiche de serveur ou à un fichier d’instructions. Il ne correspond pas nécessairement à l’adresse à laquelle envoyer une commande pour exécuter une tâche. L’identifiant urn:air:… permet, quant à lui, de distinguer l’identité de la ressource de l’emplacement où sa description est stockée.
Le champ representativeQueries joue un rôle particulier : le registre utilise les exemples de requêtes pour l’indexation sémantique. Sans ce champ, l’entrée peut rester structurellement valide, mais ne pas disposer des éléments nécessaires pour être trouvée par ce type de recherche. L’outil de vérification de conformité signale alors un avertissement, et non une erreur de schéma.
Modèle d’entrée et exigences relatives aux champs
Comment l’application recherche-t-elle un outil ?
Le registre fournit le point de terminaison POST /search. Pour un moteur de recherche de domaines, le corps d’une requête pourrait ressembler à ceci :
{
"query": {
"text": "trouve un domaine à vendre pour une boutique de vélos",
"filter": {
"capabilities": ["searchDomainCatalog"]
}
},
"federation": "none",
"pageSize": 5
}
Il s’agit d’un exemple de requête adressée à un registre qui a indexé la ressource appropriée. query.text décrit le besoin, tandis que le filtre limite les résultats aux entrées déclarant la fonction indiquée. pageSize limite le nombre de résultats par page.
Les registres peuvent aussi coopérer. Le paramètre federation accepte trois valeurs : none correspond à une recherche dans le propre index du registre ; auto permet au registre d’interroger d’autres registres et de combiner les résultats ; referrals renvoie également des indications sur les registres que le client peut interroger lui-même. Le mode par défaut est auto.
Interface de recherche
et
fédération des registres
Comment ARD s’articule-t-il avec MCP et les agent skills ?
Ces solutions jouent des rôles différents au sein d’un même processus :
| Élément | Rôle |
|---|---|
| ARD | Aide à trouver une ressource répondant au besoin |
| MCP | Fournit un mode de communication entre l’application AI et les outils et données mis à disposition |
| A2A | Permet la communication entre agents |
| Agent skills | Fournissent les instructions et les ressources nécessaires à une tâche précise |
ARD peut décrire des ressources représentées dans différents formats. Trouver l’entrée d’un serveur MCP ne signifie pas que l’application s’y connecte automatiquement. Elle doit prendre en charge l’intégration correspondante. Types de ressources et séparation des fonctions
Exemple avec Domeny.ForSale
Ce site propose un
manifeste ARD
. Il décrit la capacité de recherche dans le catalogue de domaines et d’articles. Le champ url renvoie aux
instructions d’utilisation du moteur de recherche
, tandis que representativeQueries inclut notamment la recherche d’un domaine pour une boutique en ligne.
Grâce à cette description, un client prenant en charge ARD peut découvrir que le site propose une ressource utile et savoir où trouver ses instructions d’utilisation. Le fichier lui-même n’effectue aucune recherche et ne prouve pas qu’un assistant donné a déjà indexé le site.
Peut-on faire confiance à la ressource trouvée ?
La correspondance avec la requête et la fiabilité sont deux questions distinctes. Le champ score renvoyé par le registre indique la pertinence sémantique sur une échelle de 0–100. Il ne constitue ni une évaluation de sécurité, ni un certificat, ni une confirmation des autorisations.
La spécification prévoit un champ facultatif trustManifest permettant de transmettre des informations destinées à vérifier l’identité et la provenance. Lorsqu’il est présent, l’identité déclarée doit être liée au domaine de l’éditeur figurant dans l’identifiant. ARD ne définit pas de procédure universelle de signature qui lui soit propre ; la vérification dépend du système de confiance indiqué.
Identité et confiance dans ARD
À la date de mise à jour de cet article, le document décrit la version 0.91, avec le statut « Proposal ». Il est préférable de fonder l’implémentation sur la spécification actuelle et les capacités du client concerné. Cela vaut également pour l’ancien nom du manifeste, ai-catalog.json, que la version actuelle remplace par le chemin ard.json.
Voir aussi : Qu’est-ce que ai-catalog.json ? · Qu’est-ce que MCP ? · Que sont les agent skills ?
