What is ARD? Resource discovery for AI

Author: Published Updated

ARD (Agentic Resource Discovery) is an open specification for describing and finding resources that AI agents can use. It helps an application find a tool, an MCP server, another agent or a set of instructions suited to the user’s task. It connects resource descriptions published by their owners with registries that index them and provide search. This article is based on the ARD specification .

What problem does ARD solve?

Suppose you ask an assistant: “Find a short domain name for a bicycle shop.” To complete the task, it needs access to a domain catalogue and instructions on how to search it. In a small application, a developer can connect the appropriate tool in advance. With thousands of services available, manually configuring each integration and including every description in the model’s context becomes difficult.

ARD proposes finding resources as needed. The application sends a query to a registry, receives matching descriptions and chooses which resource to use. Information about the selected resources can then enter the model’s context, rather than the entire catalogue.

This is a mechanism for discovering capabilities. After finding a resource, the application still needs to support the appropriate communication method and handle the required permissions. The specification separates discovery from subsequent tool use. ARD design principles

How does ARD work, step by step?

The process involves a resource publisher, a registry and an application using an AI agent.

  1. The publisher describes the resource. They provide its name, identifier, type and a document describing its capabilities or usage instructions.
  2. The description becomes available online. The primary location for the manifest is /.well-known/ard.json. The specification also supports methods including embedded JSON-LD data, an HTML link with rel="ard", an Agentmap directive in robots.txt and DNS records.
  3. The registry retrieves and indexes entries. It uses their data to find suitable resources.
  4. The application describes what it needs. It sends the registry a natural-language query, optionally with filters.
  5. The application selects a result and reads the resource description. It can then use the resource according to the appropriate protocol and its own access policies.

Publishing a manifest is therefore different from running a registry. A website owner can provide a static file without running their own search service. The requirement to provide a REST search interface applies to registries. Resource discovery and indexing

What does an ARD entry contain?

An entry describes a resource using the JSON-LD model. The ard.json manifest groups these entries in the entries array. The main fields are:

FieldMeaningRequirement
identifierA unique identifier in the form urn:air:<publisher>:<namespace>:<agent-name>Required
displayNameA human-readable resource nameRequired
typeThe type of the described document, expressed as a media typeRequired
url or dataThe document’s address or its content embedded in the entryExactly one of these fields
representativeQueriesExample questions or commands that the resource can address2–5 examples recommended
capabilitiesShort capability labels useful for filteringOptional

The url field points to the described document, such as a server card or an instruction file. It is not necessarily the address to which a task execution request is sent. The urn:air:… identifier, meanwhile, distinguishes the resource’s identity from the location where its description is stored.

representativeQueries has a particular role: the registry uses the example queries for semantic indexing. Without this field, an entry may remain structurally valid but lack the information needed to be found through semantic search. In that case, the conformance checker reports a warning rather than a schema error. Entry model and field requirements

How does an application search for a tool?

The registry provides a POST /search endpoint. An example request body for a domain search tool might look like this:

{
  "query": {
    "text": "find a domain for sale for a bicycle shop",
    "filter": {
      "capabilities": ["searchDomainCatalog"]
    }
  },
  "federation": "none",
  "pageSize": 5
}

This is an example query to a registry that has indexed a suitable resource. query.text describes the need, while the filter restricts results to entries declaring the specified capability. pageSize limits the number of results per page.

Registries can also work together. The federation parameter accepts three values: none means searching the registry’s own index; auto allows the registry to query other registries and merge the results; and referrals also returns references to registries that the client can search itself. The default mode is auto. Search interface and registry federation

How does ARD relate to MCP and agent skills?

These solutions have different roles within the same process:

ComponentRole
ARDHelps find a resource that meets a need
MCPProvides a way for an AI application to communicate with available tools and data
A2AEnables communication between agents
Agent skillsProvide instructions and materials needed for a specific task

ARD can describe resources represented in different formats. Finding an entry for an MCP server does not automatically establish a connection to that server. The application must support the appropriate integration. Resource types and separation of responsibilities

An example from Domeny.ForSale

This site provides an ARD manifest . It describes a skill for searching the catalogue of domains and articles. The url field points to instructions for using the search tool , and representativeQueries includes queries such as finding a domain for an online shop.

This description lets a client that supports ARD discover that the site provides a useful resource and learn where to find instructions for using it. The file itself does not perform searches, nor does it prove that any particular assistant has already indexed the site.

Can you trust a discovered resource?

Matching a query and being trustworthy are separate matters. The score returned by the registry, on a scale of 0–100, indicates semantic relevance. It is not a security rating, a certificate or confirmation of permissions.

The specification provides an optional trustManifest field for sharing information used to verify identity and provenance. When it is present, the declared identity must be linked to the publisher’s domain recorded in the identifier. ARD does not define its own universal signing procedure; verification depends on the specified trust system. Identity and trust in ARD

As of this article’s latest update, the document describes version 0.91 with “Proposal” status. Implementations should be based on the current specification and the capabilities of the particular client. This also applies to the older manifest name ai-catalog.json, which the current version replaces with the path ard.json.

See also: What is ai-catalog.json? · What is MCP? · What are agent skills?

Read also

Learn how PHP-FPM handles PHP requests, how it differs from a web server, and how to tune processes for traffic and hosting resources.
Learn how BIND, open-source DNS server software, handles domains, how its two roles differ and when running it yourself makes sense.
Learn what Poland’s REGON register and identification number mean, how they differ from NIP and KRS, and how to check a business’s details.