# ARD Discovery Mechanisms
Once a publisher has written an [[AI Catalog (ai-catalog.json)|ai-catalog.json]], something has to find it. The [[Agentic Resource Discovery Specification (ARD)|ARD]] defines four ways to advertise a catalog so registries and agents can locate it. This is the static "publish" side of discovery, before any search service gets involved.
## The four mechanisms
1. **Well-known URI** (the primary one). Host the catalog at the conventional path:
```
https://<domain>/.well-known/ai-catalog.json
```
If a crawler finds nothing else, this is where it looks. Borrowed directly from how `robots.txt` and `security.txt` work.
2. **Agentmap directive.** A line in `robots.txt` that points to a catalog hosted somewhere non-standard:
```
Agentmap: https://example.com/catalog.json
```
Same idea as the `Sitemap:` directive, just for capabilities.
3. **HTML link tag.** A tag in the page `<head>` (or the equivalent HTTP `Link` header):
```html
<link rel="ai-catalog" href="/catalog.json" type="application/ai-catalog+json">
```
4. **DNS records.** Service-binding records that point at a catalog or a live search endpoint:
- `_catalog._agents.example.com` → the static manifest
- `_search._agents.example.com` → a dynamic [[Agent Registry (ARD)|Agent Registry]] search endpoint
## How an agent resolves it
The lookup order is deliberately forgiving. An agent fetches a URL, then:
1. Checks the HTTP response headers for a `Link` header with `rel="ai-catalog"`.
2. If none, and the response is HTML, parses the body for a `<link rel="ai-catalog">` tag.
3. If still nothing, falls back to `/.well-known/ai-catalog.json`.
If what it finds is `application/ai-catalog+json` with a valid `specVersion`, it treats that as the site's catalog.
## Why it's built this way
I like that this reuses patterns the web already understands. Robots directives, well-known paths, DNS service records, HTML link relations: none of it is new infrastructure. A publisher can advertise capabilities using whatever they already control, and there's no central gatekeeper deciding who gets listed. That's the same philosophy as a sitemap, applied to agents instead of pages. It's the right altitude for something that wants to work across the whole web rather than inside one vendor's walled garden.
## References
- https://agenticresourcediscovery.org/
- https://agenticresourcediscovery.org/how_to_publish/
- https://github.com/ards-project/ard-spec
## Related
- [[Agentic Resource Discovery Specification (ARD)]]
- [[AI Catalog (ai-catalog.json)]]
- [[Agent Registry (ARD)]]