Skip to main content
All Guides

AI Well-Known Files

Weight: 3% of your AX score. Emerging AI-specific discovery files. None of these have a settled spec yet, but each is already published by some sites and read by some agents. Coverage scores proportionally — you don't need all of them, but every published file is a positive signal.

/.well-known/ai.txt

The Spawning ai.txt proposal is to robots.txt what GPTBot is to Googlebot — a dedicated namespace for opt-in / opt-out signals targeted specifically at AI training crawlers.

# /.well-known/ai.txt
User-Agent: *
Disallow-AI-Train: /
Disallow-AI-Index: /private/
Allow-AI-Index: /docs/

Use it to declare opt-out for training while still permitting indexing for live answer engines, or vice versa. The exact directive vocabulary is still being standardized — follow the Spawning examples for now.


/.well-known/genai.txt

genai.txt is an emerging plain-text manifest declaring how the site permits its content to be used by generative-AI systems (training, retrieval-augmented generation, summarization). It's a sibling of ai.txt with a slightly different scope.

# /.well-known/genai.txt
Policy: https://your-site.com/legal/ai-policy
Allow-Training: false
Allow-Retrieval: true
Contact: ai-policy@your-site.com

/ai-plugin.json (ChatGPT plugin)

ai-plugin.json is the legacy ChatGPT plugin manifest. OpenAI has deprecated the plugin system itself, but agents and SDKs still consume the manifest as a generic capability descriptor. Publishing it costs nothing and signals which API endpoints agents can call.

{
  "schema_version": "v1",
  "name_for_human": "Acme",
  "name_for_model": "acme",
  "description_for_human": "Search and book Acme inventory.",
  "description_for_model": "Search and book Acme inventory by location, date, and price.",
  "auth": { "type": "none" },
  "api": {
    "type": "openapi",
    "url": "https://your-site.com/.well-known/openapi.json"
  },
  "logo_url": "https://your-site.com/logo.png",
  "contact_email": "support@your-site.com",
  "legal_info_url": "https://your-site.com/legal"
}

ax-audit checks both /.well-known/ai-plugin.json and /ai-plugin.json — either path counts.


ai-plugin.json invalid

The file exists but is not valid JSON or is missing the expected shape (schema_version, name_for_model, or name_for_human). Validate the JSON syntax and confirm the manifest matches the structure shown above.


/agents.json (OpenAgents / Wildcard)

agents.json is an emerging spec from Wildcard / OpenAgents that describes a site as a callable agent — name, description, available operations, and how to invoke them. Think of it as openapi.json but framed for agent consumption rather than human developers.

{
  "name": "Acme Agent",
  "description": "Search and book Acme inventory.",
  "version": "1.0.0",
  "operations": [
    {
      "id": "search-inventory",
      "description": "Search inventory by location and date",
      "method": "GET",
      "path": "/api/inventory"
    }
  ]
}

ax-audit checks both /agents.json and /.well-known/agents.json.


agents.json invalid

The file is valid JSON but lacks the expected fields (name, operations, or agents). Add at minimum a name + operations array.


/.well-known/nlweb.json

NLWeb is a Microsoft-led proposal for letting agents interact with sites through a natural-language interface. The manifest declares the site's intent surface — what the agent can ask the site to do and how the site responds.

{
  "name": "Acme",
  "description": "Search and book Acme inventory",
  "endpoints": [
    {
      "url": "https://your-site.com/api/nlweb",
      "type": "ask"
    }
  ]
}
Status
NLWeb is early — publishing the manifest is low effort and signals you're tracking the emerging agent ecosystem, but spec details are still in flux.

nlweb.json invalid

The file exists but is not valid JSON. Validate the syntax with a JSON linter and re-deploy.