AgentReady
AgentReady
Make your site Agent Ready
Sign up
Open Standard v1.0

AgentReady Protocol

The open standard for agent-discoverable websites. Help browser automation agents discover, understand, and navigate your site with confidence.

Overview

Understanding why agent discoverability matters and how the protocol works.

What is the AgentReady Protocol?

The AgentReady Protocol is a set of conventions for exposing structured metadata about your website to AI agents. It combines well-known file locations, JSON-LD structured data, meta tags, and DOM attributes to create a comprehensive discovery layer.

Think of it as structured data for agent onboarding—just like Schema.org helps search crawlers understand your content, AgentReady helps AI agents understand how to navigate and interact with your site.

Why Agent Discoverability?

AI agents are increasingly being used to evaluate products, navigate documentation, and complete onboarding flows on behalf of users. Without explicit guidance, agents must guess—leading to:

  • - Missed conversion paths
  • - Incorrect information from outdated blog posts
  • - Abandoned onboarding flows
  • - Security concerns from improvised actions

Discovery Flow

How Agents Discover Your Site
1 Check /.well-known/ai-agent.json
2 Fetch agent-manifest.json
3 Follow onboarding steps
4 Use DOM hints for interactions

Agents first check for the discovery file, then fetch the full manifest with onboarding steps, canonical docs, and guardrails. DOM attributes provide additional context for interactive elements.

Discovery Specification

File locations, schemas, and conventions for agent discovery.

/.well-known/ai-agent.json

The primary discovery endpoint. Agents check this URL first to determine if a site supports the AgentReady protocol.

/.well-known/ai-agent.json
Required
{
  "schema_version": "1.0",
  "name": "Your Product Name",
  "description": "Brief description of your product for agents",
  "url": "https://yoursite.com",
  "logo_url": "https://yoursite.com/logo.png",
  "contact_email": "support@yoursite.com",

  "manifest_url": "https://yoursite.com/.well-known/agent-manifest.json",

  "capabilities": {
    "auth_methods": ["api_key", "oauth2"],
    "has_api": true,
    "has_docs": true,
    "has_widget": true
  },

  "verification": {
    "dns_txt": "agentready=abc123",
    "meta_tag": "agentready-verification"
  }
}
schema_version

Protocol version for compatibility. Currently "1.0".

manifest_url

URL to the full agent manifest with onboarding steps.

capabilities

Declares what features the site supports for agents.

verification

Optional verification methods to prove site ownership.

/.well-known/agent-manifest.json

The full manifest containing onboarding steps, canonical documentation, and agent guardrails.

/.well-known/agent-manifest.json
Required
{
  "schema_version": "1.0",
  "name": "Your Product Name",
  "description": "Help agents understand what your product does",

  "onboarding": {
    "start_url": "https://yoursite.com/signup",
    "steps": [
      {
        "id": "signup",
        "title": "Create Account",
        "url": "https://yoursite.com/signup",
        "description": "Create a free account to get started"
      },
      {
        "id": "api_key",
        "title": "Get API Key",
        "url": "https://yoursite.com/settings/api",
        "description": "Generate an API key from the settings page"
      },
      {
        "id": "quickstart",
        "title": "Follow Quickstart",
        "url": "https://yoursite.com/docs/quickstart",
        "description": "Complete the quickstart guide"
      }
    ]
  },

  "docs": {
    "canonical": [
      {
        "title": "API Reference",
        "url": "https://yoursite.com/docs/api",
        "priority": "high"
      },
      {
        "title": "Authentication",
        "url": "https://yoursite.com/docs/auth",
        "priority": "high"
      },
      {
        "title": "Examples",
        "url": "https://yoursite.com/docs/examples",
        "priority": "medium"
      }
    ],
    "avoid": [
      "https://yoursite.com/blog/*",
      "https://community.yoursite.com/*"
    ]
  },

  "guardrails": {
    "require_confirmation": [
      "delete",
      "payment",
      "subscription_change"
    ],
    "prohibited_actions": [
      "share_api_key",
      "modify_billing"
    ],
    "rate_limits": {
      "requests_per_minute": 60
    }
  },

  "prompt": "You are onboarding to {{name}}.\n\nFollow ONLY the official path:\n{{#each onboarding.steps}}\n{{@index}}. {{url}}\n{{/each}}\n\nRules:\n- Ask before destructive actions.\n- Prefer official docs over blog posts."
}

JSON-LD Structured Data

Embed agent metadata directly in your HTML using JSON-LD for pages where the widget appears.

JSON-LD in <head>
Recommended
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebApplication",
  "name": "Your Product Name",
  "url": "https://yoursite.com",
  "applicationCategory": "BusinessApplication",
  "additionalProperty": {
    "@type": "PropertyValue",
    "name": "agentready:manifest",
    "value": "https://yoursite.com/.well-known/agent-manifest.json"
  }
}
</script>

Meta Tag Specification

Quick discovery via meta tags for agents that scan HTML before fetching external files.

Meta Tags in <head>
Recommended
<!-- Primary discovery -->
<meta name="agentready:manifest" content="https://yoursite.com/.well-known/agent-manifest.json">

<!-- Quick info for agents -->
<meta name="agentready:name" content="Your Product Name">
<meta name="agentready:version" content="1.0">
<meta name="agentready:start" content="https://yoursite.com/signup">

<!-- Verification -->
<meta name="agentready-verification" content="abc123">

DOM Attribute Conventions

Data attributes provide contextual hints for interactive elements, helping agents understand what actions are available.

DOM Data Attributes
Recommended
<!-- Modal triggers -->
<button data-open-modal>Open Agent Modal</button>
<button data-close-modal>Close</button>

<!-- Action hints -->
<button data-agent-action="signup">Sign Up</button>
<button data-agent-action="get-api-key">Get API Key</button>

<!-- Semantic hints -->
<form data-agent-form="signup">...</form>
<input data-agent-field="email" type="email">
<input data-agent-field="api-key" type="text" readonly>

<!-- Navigation hints -->
<nav data-agent-nav="primary">...</nav>
<a data-agent-link="docs" href="/docs">Documentation</a>

<!-- Content hints -->
<main data-agent-content="primary">...</main>
<aside data-agent-content="sidebar">...</aside>

<!-- Dangerous action warnings -->
<button data-agent-danger="true" data-agent-confirm="Are you sure?">
  Delete Account
</button>
data-open-modal

Triggers the AgentReady widget modal.

data-agent-action

Identifies the purpose of interactive elements.

data-agent-danger

Warns agents about destructive actions.

Widget Specification

Required elements, accessibility requirements, and JavaScript API for the AgentReady widget.

Required HTML Elements

The widget requires specific element IDs and structure to function properly.

Required Element IDs
Required
<!-- Modal backdrop (required) -->
<div id="backdrop" role="dialog" aria-modal="true">
  ...modal content...
</div>

<!-- Prompt display (required) -->
<pre id="modalPrompt">Your agent prompt here</pre>

<!-- Download button (required) -->
<button id="downloadManifestBtn">Download manifest</button>

<!-- Toast notification (optional but recommended) -->
<div id="toast" role="status" aria-live="polite">Done</div>
Element ID Purpose Required
#backdrop Modal container with backdrop Yes
#modalPrompt Contains the copyable agent prompt Yes
#downloadManifestBtn Triggers manifest download Yes
#toast Feedback notifications Recommended
#mobileMenuBtn Mobile menu toggle Optional
#mobileMenuPanel Mobile menu content Optional

JavaScript API Contract

The widget exposes a global window.AgentReady object for programmatic control.

window.AgentReady API
API Reference
// Open the widget modal
window.AgentReady.openModal();

// Close the widget modal
window.AgentReady.closeModal();

// Copy prompt to clipboard
window.AgentReady.copyPrompt();

// Download the manifest file
window.AgentReady.downloadManifest();

// Show toast notification
window.AgentReady.showToast("Message copied!");

// Get manifest data
const manifest = await window.AgentReady.getManifest();

// Check if widget is open
const isOpen = window.AgentReady.isModalOpen();

// Configure widget
window.AgentReady.configure({
  manifestUrl: "/.well-known/agent-manifest.json",
  theme: "light",
  position: "bottom-right"
});

ARIA Accessibility Requirements

The widget must meet WCAG 2.1 AA accessibility standards.

Modal Accessibility
  • role="dialog" on modal container
  • aria-modal="true" to trap focus
  • aria-label describing modal purpose
  • Focus trap within modal when open
  • Escape key closes modal
Interactive Elements
  • aria-label on icon buttons
  • role="status" on toast notifications
  • aria-live="polite" for dynamic content
  • Visible focus indicators on all interactive elements
  • Keyboard navigation support

Generated Artifacts

AgentReady can generate manifests in multiple formats for different agent ecosystems.

OpenAI Plugin
ai-plugin.json
ChatGPT Plugins
{
  "schema_version": "v1",
  "name_for_human": "Your Product",
  "name_for_model": "your_product",
  "description_for_human": "Description for users",
  "description_for_model": "Description for the AI model",
  "auth": {
    "type": "none"
  },
  "api": {
    "type": "openapi",
    "url": "https://yoursite.com/openapi.yaml"
  },
  "logo_url": "https://yoursite.com/logo.png",
  "contact_email": "support@yoursite.com",
  "legal_info_url": "https://yoursite.com/legal"
}
MCP Server
mcp-server.json
Model Context Protocol
{
  "name": "your-product",
  "version": "1.0.0",
  "description": "Your product description",
  "tools": [
    {
      "name": "get_started",
      "description": "Navigate to signup page",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "get_api_key",
      "description": "Navigate to API key settings",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
  ],
  "resources": [
    {
      "uri": "docs://quickstart",
      "name": "Quickstart Guide",
      "mimeType": "text/markdown"
    }
  ]
}
Claude Code Skill
SKILL.md
Claude Code
---
name: your-product-onboarding
description: Onboard to Your Product
allowed-tools: [Bash, Read, WebFetch]
---

# Your Product Onboarding

## When to Use
Use this skill when the user wants to set up
or integrate with Your Product.

## Steps
1. Navigate to https://yoursite.com/signup
2. Create account with user's email
3. Go to https://yoursite.com/settings/api
4. Generate and save API key
5. Follow https://yoursite.com/docs/quickstart

## Guardrails
- Always confirm before creating accounts
- Never share API keys in logs
- Prefer official docs over blog posts
Wild Card AI
agents.json
agents.json
{
  "agents": [
    {
      "name": "Your Product Assistant",
      "description": "Helps users onboard to Your Product",
      "instructions": "Follow the official onboarding path...",
      "capabilities": ["navigate", "form_fill", "read"],
      "endpoints": {
        "signup": "https://yoursite.com/signup",
        "api_key": "https://yoursite.com/settings/api",
        "docs": "https://yoursite.com/docs"
      },
      "auth_required": false
    }
  ]
}
OpenAPI Specification
openapi.yaml
REST APIs
openapi: 3.0.0
info:
  title: Your Product API
  version: 1.0.0
  description: API for Your Product

servers:
  - url: https://api.yoursite.com/v1

paths:
  /users:
    post:
      summary: Create user account
      operationId: createUser
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  format: email
      responses:
        '201':
          description: User created

  /api-keys:
    post:
      summary: Generate API key
      operationId: createApiKey
      security:
        - bearerAuth: []
      responses:
        '201':
          description: API key generated

Implementation Guide

Step-by-step instructions for adding AgentReady to your site.

1

Create the discovery file

Add /.well-known/ai-agent.json to your site's public directory.

# Create the .well-known directory
mkdir -p public/.well-known

# Create the discovery file
cat > public/.well-known/ai-agent.json << 'EOF'
{
  "schema_version": "1.0",
  "name": "Your Product",
  "manifest_url": "https://yoursite.com/.well-known/agent-manifest.json"
}
EOF
2

Create the agent manifest

Define your onboarding steps, canonical docs, and guardrails.

# Create the manifest file
cat > public/.well-known/agent-manifest.json << 'EOF'
{
  "schema_version": "1.0",
  "name": "Your Product",
  "onboarding": {
    "start_url": "https://yoursite.com/signup",
    "steps": [
      {"id": "signup", "title": "Sign Up", "url": "/signup"},
      {"id": "api", "title": "Get API Key", "url": "/settings/api"},
      {"id": "docs", "title": "Read Docs", "url": "/docs/quickstart"}
    ]
  }
}
EOF
3

Add meta tags to your HTML

Include discovery meta tags in your page's <head>.

<head>
  <!-- Existing meta tags... -->

  <!-- AgentReady discovery -->
  <meta name="agentready:manifest"
        content="https://yoursite.com/.well-known/agent-manifest.json">
  <meta name="agentready:name" content="Your Product">
  <meta name="agentready:version" content="1.0">
</head>
4

Add the widget snippet

Include the AgentReady widget script before your closing </body> tag.

<!-- AgentReady Widget -->
<script
  src="https://cdn.agentready.me/widget.js"
  data-manifest="/.well-known/agent-manifest.json"
  data-position="bottom-right"
  async
></script>
5

Test your implementation

Verify that agents can discover your manifest and the widget functions correctly.

# Test discovery endpoint
curl -s https://yoursite.com/.well-known/ai-agent.json | jq

# Test manifest endpoint
curl -s https://yoursite.com/.well-known/agent-manifest.json | jq

# Validate with AgentReady scanner
npx agentready-cli scan https://yoursite.com

Version History

Protocol versions and changes over time.

v1.0
Initial Release
Current

The initial release of the AgentReady Protocol includes:

  • Discovery specification with ai-agent.json and agent-manifest.json
  • JSON-LD structured data format
  • Meta tag specification for quick discovery
  • DOM attribute conventions for interactive elements
  • Widget specification with JavaScript API
  • Export formats: OpenAI Plugin, MCP, Claude Code Skill, agents.json, OpenAPI
Contributing to the Protocol

The AgentReady Protocol is an open standard. We welcome feedback and contributions from the community. View the specification on GitHub to propose changes or report issues.

Ready to make your site Agent Ready?

Run a free scan to see how agents currently experience your site.