<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-car-agents-txt-wellknown-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="agents-txt">AGENTS.TXT: Capability Declarations for Web Agents</title>
    <seriesInfo name="Internet-Draft" value="draft-car-agents-txt-wellknown-00"/>
    <author initials="K." surname="Cardillo" fullname="Kayla Cardillo">
      <organization>Independent</organization>
      <address>
        <email>contactkaylacard@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="12"/>
    <area>Applications and Real-Time</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>AI agents</keyword>
    <keyword>well-known URI</keyword>
    <keyword>capability declaration</keyword>
    <keyword>capability discovery</keyword>
    <keyword>MCP</keyword>
    <keyword>Model Context Protocol</keyword>
    <keyword>A2A</keyword>
    <abstract>
      <?line 73?>

<t>This document requests registration of two Well-Known URIs under the
"/.well-known/" path: "agents.txt" and "agents.json". These URIs define a
machine-readable capability declaration format: a positive statement of
what web agents CAN do on a site -- which endpoints are sanctioned for
agent use, which protocols (REST, MCP, A2A, GraphQL, WebSocket) are
supported, what authentication mechanisms are expected, and what rate
limits the site advertises.</t>
      <t>This is distinct from "robots.txt", which uses a restriction
syntax to declare what crawlers may not do. Where "robots.txt"
expresses prohibition, "agents.txt" expresses capability -- a sanctioned
channel for agent interaction that is otherwise routinely blocked by
bot detection, CAPTCHAs, and rate limiters because no positive
declaration surface exists.</t>
    </abstract>
  </front>
  <middle>
    <?line 90?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Automated AI agents increasingly interact with websites to perform
tasks on behalf of users: searching product catalogs, retrieving
structured data, executing transactions, and calling APIs. These agents
are routinely blocked by bot detection systems, CAPTCHAs, and rate
limiters because no sanctioned channel for agent interaction exists.</t>
      <t>Simultaneously, website operators have no standard mechanism to declare
which agent behaviors they support, which endpoints are designed for
machine access, or how agents should authenticate.</t>
      <t>"agents.txt" addresses this gap. It is an opt-in capability declaration
file, served at a well-known location, that communicates to AI agents:</t>
      <ul spacing="normal">
        <li>
          <t>What capabilities are available (search, browse, transact, etc.)</t>
        </li>
        <li>
          <t>Which protocols are supported (REST, MCP <xref target="MCP"/>, A2A, GraphQL, WebSocket)</t>
        </li>
        <li>
          <t>What authentication mechanisms are required (and where to obtain tokens)</t>
        </li>
        <li>
          <t>What rate limits the site declares</t>
        </li>
        <li>
          <t>Which agents are permitted and under what conditions</t>
        </li>
      </ul>
      <section anchor="relationship-to-existing-standards">
        <name>Relationship to Existing Standards</name>
        <t>"agents.txt" is complementary to, and does not replace, existing
standards:</t>
        <dl>
          <dt>robots.txt:</dt>
          <dd>
            <t>Declares crawling restrictions. "agents.txt" declares what agents
are explicitly permitted to do. Both files may coexist.</t>
          </dd>
          <dt>llms.txt <xref target="LLMSTXT"/>:</dt>
          <dd>
            <t>Provides human-readable content for LLMs to read. "agents.txt"
declares machine-callable endpoints and capabilities.</t>
          </dd>
          <dt>security.txt <xref target="RFC9116"/>:</dt>
          <dd>
            <t>Declares security vulnerability disclosure contacts. "agents.txt"
declares AI agent interaction policies.</t>
          </dd>
          <dt>OpenAPI:</dt>
          <dd>
            <t>Documents individual API endpoints in detail. "agents.txt" is a
discovery layer; it may reference OpenAPI specifications per
capability.</t>
          </dd>
          <dt>MCP (Model Context Protocol):</dt>
          <dd>
            <t>A protocol for AI tools. "agents.txt" can declare MCP endpoints,
making them discoverable without prior configuration.</t>
          </dd>
        </dl>
      </section>
      <section anchor="related-work">
        <name>Related Work</name>
        <t>The following efforts overlap with or are adjacent to this document.
None of them provide a site-side capability declaration in the form
defined here.</t>
        <dl>
          <dt>draft-srijal-agents-policy-00 (expired) <xref target="SRIJAL-AGENTS-POLICY"/>:</dt>
          <dd>
            <t>A prior Internet-Draft using the "AGENTS.TXT" name. Its design is a
strict policy file with path-based ALLOW/DISALLOW directives modeled
on "robots.txt". It expired April 2026 with no -01 revision. The
present document differs in scope (capability declaration, not
policy restriction) and structure (typed capability and agent blocks
with protocol and authentication metadata).</t>
          </dd>
          <dt>MCP server-card.json <xref target="MCP-SERVER-CARD"/>:</dt>
          <dd>
            <t>The Model Context Protocol defines a "/.well-known/mcp/server-card.json"
file describing an individual MCP server's tools and resources.
"agents.txt" operates one layer up: it declares that a site offers
capabilities, including (optionally) MCP endpoints, and points to the
MCP server-card for tool-level detail. The two are complementary.</t>
          </dd>
          <dt>A2A agent-card.json <xref target="A2A-AGENT-CARD"/>:</dt>
          <dd>
            <t>The Agent-to-Agent (A2A) protocol defines a
"/.well-known/agent-card.json" file describing the capabilities of a
single agent endpoint. "agents.txt" operates at the site level and
may reference one or more A2A agent cards via Capability blocks with
Protocol: A2A.</t>
          </dd>
          <dt>llms.txt <xref target="LLMSTXT"/>:</dt>
          <dd>
            <t>A site-level Markdown file at "/llms.txt" that summarizes site
content for LLM consumption. It is a content-summary surface, not a
capability declaration. "agents.txt" and "llms.txt" can coexist on
the same site without conflict; they answer different questions
("what content is here" vs. "what actions are sanctioned").</t>
          </dd>
        </dl>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="the-agentstxt-well-known-uri">
      <name>The "agents.txt" Well-Known URI</name>
      <section anchor="location">
        <name>Location</name>
        <t>The "agents.txt" file MUST be served at:</t>
        <artwork><![CDATA[
https://example.com/.well-known/agents.txt
]]></artwork>
        <t>Agents SHOULD also check the root path as a fallback:</t>
        <artwork><![CDATA[
https://example.com/agents.txt
]]></artwork>
        <t>The "/.well-known/agents.txt" path takes precedence when both exist.</t>
        <t>The file MUST be served over HTTPS in production deployments. HTTP
is permitted only in development or testing environments.</t>
        <t>The file MUST be served with Content-Type "text/plain; charset=utf-8".</t>
      </section>
      <section anchor="format">
        <name>Format</name>
        <t>The "agents.txt" file uses a block-based key-value format inspired by
"robots.txt". Each line contains a key, a colon, and a value. Lines
beginning with "#" are comments. Indented lines (two or more spaces,
or one or more tabs) belong to the preceding block.</t>
        <t>A minimal "agents.txt" file:</t>
        <artwork><![CDATA[
# agents.txt
Spec-Version: 1.0
Site-Name: Example Store
Site-URL: https://example.com

Capability: product-search
  Endpoint: https://example.com/api/search
  Method: GET
  Protocol: REST
  Auth: none
  Rate-Limit: 60/minute
  Description: Search the product catalog

Allow: /api/*
Disallow: /admin/*

Agent: *
]]></artwork>
      </section>
      <section anchor="header-fields">
        <name>Header Fields</name>
        <dl>
          <dt>Spec-Version (REQUIRED):</dt>
          <dd>
            <t>The specification version. MUST be "1.0" for documents conforming
to this specification.</t>
          </dd>
          <dt>Generated-At (OPTIONAL):</dt>
          <dd>
            <t>ISO 8601 timestamp of when the file was generated.</t>
          </dd>
          <dt>Declaration-Type (OPTIONAL):</dt>
          <dd>
            <t>One of "platform" or "agent". Default: "platform". A platform
declaration states what agents may do on this site (the standard
case). An agent declaration, published by an agent operator at the
operator's own domain, states what the operator's agent does on
external platforms.</t>
          </dd>
          <dt>Operates-On (OPTIONAL):</dt>
          <dd>
            <t>URL of a platform this agent operates on. MAY appear multiple
times. Expected when Declaration-Type is "agent"; not used in
platform declarations.</t>
          </dd>
        </dl>
      </section>
      <section anchor="site-fields">
        <name>Site Fields</name>
        <dl>
          <dt>Site-Name (REQUIRED):</dt>
          <dd>
            <t>Human-readable name of the site or service.</t>
          </dd>
          <dt>Site-URL (REQUIRED):</dt>
          <dd>
            <t>Canonical HTTPS URL of the site.</t>
          </dd>
          <dt>Site-Description (OPTIONAL):</dt>
          <dd>
            <t>Brief description of the site.</t>
          </dd>
          <dt>Site-Contact (OPTIONAL):</dt>
          <dd>
            <t>Contact email address for agent-related inquiries.</t>
          </dd>
          <dt>Site-Privacy-Policy (OPTIONAL):</dt>
          <dd>
            <t>URL of the site's privacy policy.</t>
          </dd>
        </dl>
      </section>
      <section anchor="capability-blocks">
        <name>Capability Blocks</name>
        <t>A Capability block declares a single action available to agents.
Capability identifiers MUST consist of lowercase letters, digits, and
hyphens only.</t>
        <dl>
          <dt>Capability (REQUIRED):</dt>
          <dd>
            <t>Identifier for this capability.</t>
          </dd>
          <dt>Endpoint (REQUIRED):</dt>
          <dd>
            <t>Full HTTPS URL of the endpoint.</t>
          </dd>
          <dt>Protocol (REQUIRED):</dt>
          <dd>
            <t>The interaction protocol. One of: REST, MCP, A2A, GraphQL, WebSocket.</t>
          </dd>
          <dt>Method (OPTIONAL):</dt>
          <dd>
            <t>HTTP method for REST endpoints. Default: GET.</t>
          </dd>
          <dt>Auth (OPTIONAL):</dt>
          <dd>
            <t>Authentication type. One of: none, api-key, bearer-token, oauth2,
hmac. Default: none. Servers MUST NOT include actual credentials in
this field.</t>
          </dd>
          <dt>Auth-Endpoint (OPTIONAL):</dt>
          <dd>
            <t>URL where agents obtain authentication tokens. MUST be present when
Auth is "bearer-token" or "oauth2".</t>
          </dd>
          <dt>Auth-Docs (OPTIONAL):</dt>
          <dd>
            <t>URL of human-readable documentation describing the authentication
flow for this capability.</t>
          </dd>
          <dt>Scopes (OPTIONAL):</dt>
          <dd>
            <t>Comma-separated list of OAuth2 scopes required by this capability.</t>
          </dd>
          <dt>Rate-Limit (OPTIONAL):</dt>
          <dd>
            <t>Advisory rate limit in the format "N/window" where window is one of:
second, minute, hour, day. Agents SHOULD respect declared limits.
Servers MUST enforce limits independently.</t>
          </dd>
          <dt>Description (OPTIONAL):</dt>
          <dd>
            <t>Human-readable description of the capability.</t>
          </dd>
          <dt>OpenAPI (OPTIONAL):</dt>
          <dd>
            <t>URL to an OpenAPI specification document describing the endpoint.</t>
          </dd>
          <dt>Param (OPTIONAL):</dt>
          <dd>
            <t>Declares one parameter of a REST endpoint. MAY appear multiple
times within a Capability block. The value uses the form:</t>
          </dd>
        </dl>
        <artwork><![CDATA[
name (location, type[, required]) [- description]
]]></artwork>
        <t>: where "location" is one of "query", "path", "header", or "body";
  "type" is one of "string", "integer", "number", or "boolean"; the
  literal token "required", when present, marks the parameter as
  required; and the free-text description after "-" is optional.
  Example:</t>
        <artwork><![CDATA[
Param: q (query, string, required) - Search query
]]></artwork>
        <t>Fields not defined in this document MUST be ignored by parsers, to
permit forward-compatible extension.</t>
      </section>
      <section anchor="access-control-fields">
        <name>Access Control Fields</name>
        <dl>
          <dt>Allow (OPTIONAL):</dt>
          <dd>
            <t>Glob pattern for paths agents may access. Semantics follow
"robots.txt" conventions.</t>
          </dd>
          <dt>Disallow (OPTIONAL):</dt>
          <dd>
            <t>Glob pattern for paths agents MUST NOT access.</t>
          </dd>
        </dl>
        <t>More specific patterns take precedence over less specific patterns.
When no access control is declared, only paths referenced by
capabilities are implicitly permitted.</t>
      </section>
      <section anchor="agent-policy-blocks">
        <name>Agent Policy Blocks</name>
        <t>Agent blocks declare per-agent policies. The wildcard "*" declares the
default policy for all agents.</t>
        <artwork><![CDATA[
Agent: *

Agent: claude
  Rate-Limit: 200/minute
  Capabilities: product-search, store-assistant
]]></artwork>
        <t>Agent identifiers SHOULD match the first token of the agent's
User-Agent header (case-insensitive).</t>
        <dl>
          <dt>Capabilities (OPTIONAL within an Agent block):</dt>
          <dd>
            <t>Comma-separated list of capability identifiers this agent is
permitted to use. If omitted, all declared capabilities are
permitted.</t>
          </dd>
          <dt>Agent-Declaration (OPTIONAL within an Agent block):</dt>
          <dd>
            <t>URL of the agent operator's own "agents.txt" file (a declaration
with Declaration-Type "agent"). Enables cross-referencing between a
platform's grant of capabilities and the agent operator's published
statement of what the agent does and where it operates.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="the-agentsjson-well-known-uri">
      <name>The "agents.json" Well-Known URI</name>
      <section anchor="location-1">
        <name>Location</name>
        <t>The JSON companion file MUST be served at:</t>
        <artwork><![CDATA[
https://example.com/.well-known/agents.json
]]></artwork>
        <t>The file MUST be served with Content-Type "application/json; charset=utf-8".</t>
      </section>
      <section anchor="format-1">
        <name>Format</name>
        <t>The JSON format contains equivalent information to "agents.txt" in a
typed JSON structure suitable for direct consumption by programmatic
clients. The "agents.txt" file MAY reference the JSON file via:</t>
        <artwork><![CDATA[
Agents-JSON: https://example.com/.well-known/agents.json
]]></artwork>
        <t>A minimal "agents.json" document:</t>
        <sourcecode type="json"><![CDATA[
{
  "specVersion": "1.0",
  "generatedAt": "2026-02-01T00:00:00.000Z",
  "site": {
    "name": "Example Store",
    "url": "https://example.com"
  },
  "capabilities": [
    {
      "id": "product-search",
      "description": "Search the product catalog",
      "endpoint": "https://example.com/api/search",
      "method": "GET",
      "protocol": "REST",
      "auth": { "type": "none" },
      "rateLimit": { "requests": 60, "window": "minute" }
    }
  ],
  "access": {
    "allow": ["/api/*"],
    "disallow": ["/admin/*"]
  },
  "agents": {
    "*": {}
  }
}
]]></sourcecode>
        <t>Field semantics are identical to those defined in Section 2 for the
text format.</t>
      </section>
    </section>
    <section anchor="agent-behavior">
      <name>Agent Behavior</name>
      <section anchor="discovery">
        <name>Discovery</name>
        <t>Agents SHOULD fetch "/.well-known/agents.txt" and/or
"/.well-known/agents.json" before interacting with an unfamiliar site.</t>
        <t>Agents SHOULD prefer the JSON format when both are available, as it
is more precisely typed and unambiguous.</t>
        <t>Agents SHOULD cache the capability declaration for the duration
declared by the HTTP Cache-Control header. Implementations SHOULD
use a minimum cache TTL of 60 seconds to reduce server load.</t>
      </section>
      <section anchor="identification">
        <name>Identification</name>
        <t>Agents SHOULD identify themselves via the User-Agent HTTP header when
calling capability endpoints. The agent name in the User-Agent header
is matched (case-insensitively) against Agent blocks to apply
per-agent policies.</t>
      </section>
      <section anchor="rate-limiting">
        <name>Rate Limiting</name>
        <t>Agents SHOULD respect Rate-Limit declarations as advisory limits.
Servers MUST enforce rate limits independently and MUST NOT rely on
agents to self-enforce.</t>
      </section>
    </section>
    <section anchor="server-behavior">
      <name>Server Behavior</name>
      <section anchor="caching">
        <name>Caching</name>
        <t>Servers SHOULD serve "agents.txt" and "agents.json" with appropriate
Cache-Control headers. A max-age of 300 seconds (5 minutes) is
RECOMMENDED for most deployments.</t>
      </section>
      <section anchor="cors">
        <name>CORS</name>
        <t>Servers SHOULD include the following headers to permit cross-origin
discovery:</t>
        <artwork><![CDATA[
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, OPTIONS
]]></artwork>
      </section>
      <section anchor="security-considerations">
        <name>Security Considerations</name>
        <t>Capability declarations MUST NOT include actual credentials, API keys,
tokens, or secrets of any kind. The Auth and Auth-Endpoint fields
describe mechanisms only.</t>
        <t>Servers MUST enforce all declared restrictions (rate limits, access
control, agent policies) independently of the declarations in
"agents.txt". The file is advisory to agents; it is not a trust
boundary.</t>
        <t>Agents MUST validate that capability endpoints use HTTPS before
sending authentication credentials.</t>
        <t>Site owners SHOULD review their capability declarations periodically
to ensure they accurately reflect current server capabilities and
access policies.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="well-known-uri-registration-agentstxt">
        <name>Well-Known URI Registration: "agents.txt"</name>
        <t>This document requests registration of the following Well-Known URI
in the "Well-Known URIs" registry established by <xref target="RFC8615"/>:</t>
        <dl>
          <dt>URI suffix:</dt>
          <dd>
            <t>agents.txt</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>Kayla Cardillo</t>
          </dd>
          <dt>Specification document(s):</dt>
          <dd>
            <t>This document.</t>
          </dd>
          <dt>Related information:</dt>
          <dd>
            <t>Text-format capability declaration file for AI agent discovery.</t>
          </dd>
        </dl>
      </section>
      <section anchor="well-known-uri-registration-agentsjson">
        <name>Well-Known URI Registration: "agents.json"</name>
        <dl>
          <dt>URI suffix:</dt>
          <dd>
            <t>agents.json</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>Kayla Cardillo</t>
          </dd>
          <dt>Specification document(s):</dt>
          <dd>
            <t>This document.</t>
          </dd>
          <dt>Related information:</dt>
          <dd>
            <t>JSON-format capability declaration file for AI agent discovery.
Companion format to agents.txt.</t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8615">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9116">
          <front>
            <title>A File Format to Aid in Security Vulnerability Disclosure</title>
            <author initials="E." surname="Foudil">
              <organization/>
            </author>
            <author initials="Y." surname="Shafranovich">
              <organization/>
            </author>
            <date year="2022" month="April"/>
          </front>
        </reference>
        <reference anchor="ROBOTS" target="https://www.rfc-editor.org/rfc/rfc9309">
          <front>
            <title>Robots Exclusion Protocol</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="September"/>
          </front>
        </reference>
        <reference anchor="LLMSTXT" target="https://llmstxt.org">
          <front>
            <title>llms.txt</title>
            <author>
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="SRIJAL-AGENTS-POLICY" target="https://datatracker.ietf.org/doc/draft-srijal-agents-policy/">
          <front>
            <title>AGENTS.TXT: Strict Policy File for Automated Clients</title>
            <author>
              <organization/>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-srijal-agents-policy-00 (expired)"/>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/specification">
          <front>
            <title>Model Context Protocol</title>
            <author>
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="MCP-SERVER-CARD" target="https://modelcontextprotocol.io">
          <front>
            <title>Model Context Protocol Server Card</title>
            <author>
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="A2A-AGENT-CARD" target="https://a2aproject.github.io/">
          <front>
            <title>A2A Agent Card</title>
            <author>
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 531?>

<section anchor="example-e-commerce-site">
      <name>Example: E-Commerce Site</name>
      <artwork><![CDATA[
# agents.txt
Spec-Version: 1.0
Generated-At: 2026-02-01T00:00:00Z
Site-Name: Outdoor Supply Co.
Site-URL: https://outdoorsupply.example
Site-Description: Gear for outdoor adventures
Site-Contact: agents@outdoorsupply.example

Capability: product-search
  Endpoint: https://outdoorsupply.example/api/search
  Method: GET
  Protocol: REST
  Auth: none
  Rate-Limit: 60/minute
  Description: Search the product catalog
  Param: q (query, string, required) - Search query
  Param: limit (query, integer) - Max results, default 20
  Param: category (query, string) - Filter by category

Capability: store-assistant
  Endpoint: https://outdoorsupply.example/mcp
  Protocol: MCP
  Auth: bearer-token
  Auth-Endpoint: https://outdoorsupply.example/auth/token
  Description: Full store interaction via MCP

Allow: /api/*
Allow: /mcp
Disallow: /admin/*
Disallow: /internal/*

Agent: *
Agent: claude
  Rate-Limit: 200/minute
  Capabilities: product-search, store-assistant
]]></artwork>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The "agents.txt" format draws on the design of "robots.txt"
<xref target="ROBOTS"/>, "security.txt" <xref target="RFC9116"/>, and OpenAPI for structural
inspiration. The MCP protocol reference is to the Model Context
Protocol specification.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
XXxDAAA=

-->

</rfc>
