<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-vinaysingh-awp-wellknown-00" category="std" consensus="true" submissionType="IETF">
  <front>
    <title abbrev="AWP Well-Known">The Agent Workflow Protocol (AWP) Well-Known Resource and Link Relation</title>

    <author initials="V." surname="Singh" fullname="Vinay Singh">
      <organization>Ajna.inc</organization>
      <address>
        <email>vinay@ajna.inc</email>
      </address>
    </author>
    <author initials="D." surname="McKay" fullname="Dave McKay">
      <organization>Verid.id</organization>
      <address>
        <email>dave@verid.id</email>
      </address>
    </author>

    <date year="2025" month="November" day="01"/>

    <area>ART</area>
    
    <keyword>well-known, link-relation, automation, agents, workflows, MCP</keyword>

    <abstract>


<?line 23?>

<t>This document registers a Well-Known URI, <spanx style="verb">/.well-known/awp.json</spanx>,
and a companion Link Relation Type, <spanx style="verb">awp</spanx>. The resource exposes a small,
machine-readable description of common website workflows (states,
actions, and resulting events) so automated agents can act predictably
without scraping. The format is JSON and intentionally minimal.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-vinaysingh-awp-wellknown/"/>.
      </t>
      <t>
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/vinaysingh8866/awp-wellknown-draft"/>.</t>
    </note>


  </front>

  <middle>


<?line 31?>

<section anchor="introduction"><name>Introduction</name>

<t>Automation on the Web often relies on brittle scraping. Many sites already
publish machine metadata (e.g., OpenAPI descriptions, sitemaps). This
document defines a single optional entry point — a Well-Known resource
— that advertises a compact, typed map of site workflows. Agents can use
it to perform tasks deterministically (e.g., sign in, search, checkout).</t>

<t>This document registers:</t>

<t><list style="symbols">
  <t>the Well-Known URI: <spanx style="verb">/.well-known/awp.json</spanx>, and</t>
  <t>the Link Relation Type: <spanx style="verb">awp</spanx>.</t>
</list></t>

<t>The resource is read-only and does not alter authorization; normal Web
security controls continue to apply.</t>

</section>
<section anchor="the-awp-resource"><name>The AWP Resource</name>

<t>An origin <strong>MAY</strong> expose a JSON resource at:</t>

<t>GET /.well-known/awp.json
Content-Type: application/awp+json</t>

<t>The document contains:</t>

<t><list style="symbols">
  <t><spanx style="verb">version</spanx> — semantic version (required),</t>
  <t><spanx style="verb">initial</spanx> — the starting state (required),</t>
  <t><spanx style="verb">states</spanx> — a map of state → allowed action names (required),</t>
  <t><spanx style="verb">transitions</spanx> — event-driven edges (<spanx style="verb">from</spanx>, <spanx style="verb">event</spanx>, <spanx style="verb">to</spanx>) (required),</t>
  <t><spanx style="verb">actions</spanx> — named HTTP operations with <spanx style="verb">form</spanx> bindings (required),</t>
  <t><spanx style="verb">schemas</spanx> — JSON Schema 2020-12 objects referenced by <spanx style="verb">expects/produces</spanx> (required),</t>
  <t><spanx style="verb">site</spanx> — site metadata with <spanx style="verb">name</spanx> and <spanx style="verb">baseUrl</spanx> (required),</t>
  <t><spanx style="verb">template_id</spanx> — unique identifier (optional),</t>
  <t><spanx style="verb">title</spanx> — human-readable name (optional),</t>
  <t><spanx style="verb">description</spanx> — template description (optional),</t>
  <t><spanx style="verb">openapi</spanx> — link to OpenAPI spec (optional),</t>
  <t><spanx style="verb">policies</spanx> — rate limiting and other policies (optional).</t>
</list></t>

<t>A minimal example follows:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "version": "1.0.0",
  "initial": "Anon",
  "states": {
    "Anon":          { "available": ["login"] },
    "Authenticated": { "available": ["search","checkout"] }
  },
  "transitions": [
    { "from": "Anon", "event": "login_ok", "to": "Authenticated" }
  ],
  "actions": {
    "login": {
      "form": { "method": "POST", "target": "/api/login", "contentType": "application/json" },
      "expects":  { "$ref": "#/schemas/LoginInput" },
      "emits": { "onSuccess": "login_ok", "onError": "login_failed" }
    }
  },
  "schemas": {
    "LoginInput": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "required": ["email","password"],
      "properties": {
        "email": { "type": "string", "format": "email" },
        "password": { "type": "string", "minLength": 8 }
      }
    }
  },
  "site": {
    "name": "Example Shop",
    "baseUrl": "https://shop.example.com"
  }
}
]]></sourcecode></figure>

<t>Servers <strong>MAY</strong> use RFC 6570 URI Templates in <spanx style="verb">form.target</spanx> (e.g.,
<spanx style="verb">/api/search{?q,limit,offset}</spanx>). API errors <strong>SHOULD</strong> use RFC 9457
Problem Details to allow deterministic branching by clients.</t>

</section>
<section anchor="discovery-via-link-relation"><name>Discovery via Link Relation</name>

<t>Origins <strong>SHOULD</strong> advertise the resource with:</t>

<t>Link: &lt;/.well-known/awp.json&gt;; rel="awp"</t>

<t>The <spanx style="verb">awp</spanx> relation identifies the AWP manifest for the current origin.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t><list style="symbols">
  <t>The manifest is advisory; authentication and authorization remain
unchanged.</t>
  <t>Do not place secrets or user-specific data in the manifest.</t>
  <t>Consider cache lifetimes so changes propagate appropriately.</t>
  <t>Implement normal rate-limiting/abuse controls on operational endpoints
referenced by the manifest.</t>
  <t>Cross-origin access is governed by existing Web mechanisms (e.g., CORS).</t>
</list></t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="well-known-uri-registration"><name>Well-Known URI Registration</name>

<t>IANA is requested to register the following in the “Well-Known URIs” registry:</t>

<t><list style="symbols">
  <t><strong>URI Suffix:</strong> awp.json</t>
  <t><strong>Change Controller:</strong> IETF</t>
  <t><strong>Specification Document:</strong> This document, Section 2</t>
  <t><strong>Status:</strong> permanent</t>
  <t><strong>Related Information:</strong> JSON manifest describing site workflows for automated agents.</t>
</list></t>

</section>
<section anchor="link-relation-type-registration"><name>Link Relation Type Registration</name>

<t>IANA is requested to register the following in the “Link Relation Types” registry:</t>

<t><list style="symbols">
  <t><strong>Relation Name:</strong> awp</t>
  <t><strong>Description:</strong> Identifies the Agent Workflow Protocol (AWP) manifest for this origin.</t>
  <t><strong>Reference:</strong> This document, Section 3</t>
</list></t>

</section>
</section>


  </middle>

  <back>







<?line 152?>

<section anchor="references"><name>References</name>

<t><list style="symbols">
  <t>RFC 8615 — Well-Known URIs</t>
  <t>RFC 8288 — Web Linking</t>
  <t>RFC 6570 — URI Templates</t>
  <t>RFC 9457 — Problem Details for HTTP APIs</t>
  <t>JSON Schema 2020-12 — Core &amp; Validation</t>
</list></t>

</section>


  </back>

<!-- ##markdown-source:
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
qXz/A0rQgQ+REwAA

-->

</rfc>

