<?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.35 (Ruby 4.0.2) -->


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

]>


<rfc ipr="trust200902" docName="draft-narvaneni-agent-uri-03" category="exp" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="agent-uri">The agent:// Protocol -- A URI-Based Framework for Interoperable Agents</title>

    <author initials="Y." surname="Narvaneni" fullname="Yaswanth Narvaneni">
      <organization>Independent Researcher</organization>
      <address>
        <postal>
          <city>London</city>
          <country>United Kingdom</country>
        </postal>
        <email>yaswanth+ietf@gmail.com</email>
      </address>
    </author>
    <author initials="S. P." surname="Ravi" fullname="Sai Purnima Ravi">
      <organization>Independent Researcher</organization>
      <address>
        <email>r.sai.purnima+ietf@gmail.com</email>
      </address>
    </author>

    <date year="2026" month="April" day="18"/>

    <area>Applications</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 245?>

<t>This document defines the agent:// protocol, a URI-based addressing scheme for identifying, discovering, and invoking autonomous and semi-autonomous software agents. The agent:// scheme provides a semantic layer that signals "this resource is an agent" and enables agent-specific discovery via standardized descriptors. It introduces a layered architecture with four conformance levels, allowing implementations to adopt minimal addressing (Level 0) or full descriptor-based discovery with authentication and versioning (Level 3). The protocol complements existing agent communication protocols such as Agent2Agent (A2A), Model Context Protocol (MCP), and Agent Communication Protocol (ACP) by providing the addressing and discovery layer they lack.</t>



    </abstract>



  </front>

  <middle>


<?line 249?>

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

<t>The agent ecosystem is fragmented. Protocols like <xref target="Agent2Agent"></xref> define how agents communicate. <xref target="MCP">Model Context Protocol</xref> defines how models access tools. <xref target="FIPA-ACL"></xref> and <xref target="FIPA-CNP">Contract Net Protocol</xref> define negotiation semantics. Frameworks like <xref target="LangChain"></xref>, <xref target="AutoGen"></xref>, and <xref target="SemanticKernel"></xref> provide runtime environments. Yet none of these define a universal way to <strong>address</strong> an agent -- to say "this is an agent, here is how to find it, here is what it can do."</t>

<t>The <spanx style="verb">agent://</spanx> protocol fills this gap. It is an <strong>addressing scheme</strong> that identifies a resource as an agent and enables agent-specific discovery and metadata. DNS, HTTPS, and existing transport protocols remain as-is -- <spanx style="verb">agent://</spanx> adds a semantic layer on top that signals agent identity and unlocks standardized discovery.</t>

<t>In a single sentence: <strong><spanx style="verb">agent://</spanx> is to A2A, MCP, and ACP what <spanx style="verb">https://</spanx> is to REST, GraphQL, and gRPC -- the URI scheme, separate from the application protocol.</strong> This document defines addressing and discovery only. Communication semantics are delegated to the chosen application protocol.</t>

<t>The following table illustrates how <spanx style="verb">agent://</spanx> complements rather than competes with existing protocols:</t>

<texttable title="Comparison of agent:// with Related Protocols" anchor="tab-comparison">
      <ttcol align='left'>Concern</ttcol>
      <ttcol align='left'>agent://</ttcol>
      <ttcol align='left'>HTTPS + OpenAPI</ttcol>
      <ttcol align='left'>A2A</ttcol>
      <ttcol align='left'>MCP</ttcol>
      <c>Agent addressing and identity</c>
      <c>Yes</c>
      <c>No (URL only)</c>
      <c>Partial</c>
      <c>No</c>
      <c>Transport-agnostic discovery</c>
      <c>Yes</c>
      <c>No</c>
      <c>No</c>
      <c>No</c>
      <c>Capability description</c>
      <c>Yes</c>
      <c>Yes (OpenAPI)</c>
      <c>Yes (AgentCard)</c>
      <c>Yes (tools)</c>
      <c>Communication semantics</c>
      <c>No (delegates)</c>
      <c>Yes</c>
      <c>Yes</c>
      <c>Yes</c>
      <c>Local agent invocation</c>
      <c>Yes</c>
      <c>No</c>
      <c>No</c>
      <c>Yes</c>
</texttable>

<t>The <spanx style="verb">agent://</spanx> protocol supports diverse agent deployment models through a unified addressing scheme:</t>

<t><list style="symbols">
  <t>Cloud-based agents accessible via standard web protocols</t>
  <t>Local agents running on the user's device through the <spanx style="verb">agent+local://</spanx> scheme</t>
  <t>On-premises agents within organizational boundaries</t>
  <t>Decentralized agents operating across distributed networks</t>
</list></t>

<figure title="Agent Protocol Stack Architecture" anchor="fig-protocol-stack"><artwork><![CDATA[
+--------------------+
| Agent Applications |
+--------------------+
         |
+--------------------+
|  agent:// URI      | <- Addressing, Identity, Discovery
+--------------------+
         |
+--------+-----------+----------+
|  A2A   |    MCP    | FIPA-ACL | <- Communication Protocols
+--------+-----------+----------+
         |
+--------+-----------+----------+
| HTTPS  | WebSocket |   gRPC   | <- Transport Layer
+--------+-----------+----------+
]]></artwork></figure>

<t>This document defines four conformance levels (<xref target="conformance-levels"></xref>) to support incremental adoption:</t>

<t><list style="symbols">
  <t><strong>Level 0</strong>: Use <spanx style="verb">agent+https://</spanx> as a direct invocation scheme (zero infrastructure)</t>
  <t><strong>Level 1</strong>: Publish <spanx style="verb">/.well-known/agents.json</spanx> for discovery</t>
  <t><strong>Level 2</strong>: Support resolution, caching, and multiple transports</t>
  <t><strong>Level 3</strong>: Full capability descriptors with authentication, versioning, and composition</t>
</list></t>

<section anchor="quick-start"><name>Quick Start</name>

<t>The simplest adoption path requires no infrastructure changes:</t>

<t><strong>Level 0 -- Direct Invocation:</strong></t>

<figure><artwork><![CDATA[
agent+https://example.com/my-agent?message=hello
]]></artwork></figure>

<t>This is semantically equivalent to an HTTPS request to <spanx style="verb">https://example.com/my-agent?message=hello</spanx>, but identifies the target as an agent.</t>

<t><strong>Level 1 -- Discoverable Agent:</strong></t>

<t>Publish a <spanx style="verb">/.well-known/agents.json</spanx> file on your domain:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "agents": {
    "my-agent": "https://example.com/my-agent/agent.json"
  }
}
]]></sourcecode></figure>

<t>Clients can now resolve <spanx style="verb">agent://example.com/my-agent</spanx> by fetching this registry and following the descriptor URL.</t>

<t>A reference implementation of the <spanx style="verb">agent://</spanx> protocol is available at <xref target="AGENT-URI-REPO">agent-uri reference implementation</xref> to demonstrate URI parsing, resolution, transport bindings, and descriptor handling.</t>

</section>
</section>
<section anchor="terminology"><name>Terminology</name>

<t><list style="symbols">
  <t><strong>Agent</strong>: An autonomous or semi-autonomous software entity that can receive instructions and perform actions.</t>
  <t><strong>Agent Descriptor</strong>: A machine-readable document (typically served as <spanx style="verb">agent.json</spanx>) that describes an agent's identity, capabilities, and behavior.</t>
  <t><strong>Agent Registry</strong>: A domain-level directory (<spanx style="verb">/.well-known/agents.json</spanx>) mapping agent names to descriptor URLs.</t>
  <t><strong>Skill</strong>: A discrete, named function or behavior offered by an agent, declared in the descriptor under the <spanx style="verb">skills</spanx> field with at minimum a name and description, plus optional input/output schema and metadata. This term aligns with the <xref target="AgentCard"></xref> <spanx style="verb">skills</spanx> concept. "Capability" is used as the general English term where context requires it.</t>
  <t><strong>Conformance Level</strong>: One of four progressive levels of protocol adoption (Level 0 through Level 3), as defined in <xref target="conformance-levels"></xref>.</t>
  <t><strong>Delegation Chain</strong>: An ordered list of agent identifiers representing the chain of agents that have delegated a task, expressed as signed JWT claims.</t>
  <t><strong>Invocation</strong>: The act of calling a skill on an agent with input parameters.</t>
  <t><strong>Resolution Endpoint</strong>: The <spanx style="verb">/.well-known/agents.json</spanx> URL used for agent discovery.</t>
  <t><strong>Resolver</strong>: A service or mechanism that maps an agent URI to a network endpoint or descriptor.</t>
  <t><strong>Transport Binding</strong>: A mapping from the <spanx style="verb">agent+&lt;protocol&gt;://</spanx> scheme to a concrete communication mechanism (e.g., HTTPS, WebSocket, gRPC, local IPC).</t>
</list></t>

<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 anchor="protocol-scope"><name>Protocol Scope and Layering</name>

<t>The <spanx style="verb">agent://</spanx> protocol is an addressing and discovery scheme. It defines how to identify, locate, and describe agents. It does <strong>not</strong> define communication semantics -- how agents exchange messages, manage tasks, or handle state. Those concerns belong to the communication protocol layer (e.g., <xref target="Agent2Agent"></xref>, <xref target="MCP"></xref>, <xref target="FIPA-ACL"></xref>) operating above <spanx style="verb">agent://</spanx>.</t>

<t>The protocol is designed as a layered framework:</t>

<texttable title="Protocol Layering Structure" anchor="tab-protocol-layers">
      <ttcol align='left'>Layer</ttcol>
      <ttcol align='left'>Purpose</ttcol>
      <ttcol align='left'>Conformance Level</ttcol>
      <c>URI Scheme</c>
      <c>Unique addressing and agent identity</c>
      <c>Level 0+</c>
      <c>Transport Binding</c>
      <c>Mechanism for invocation (e.g., HTTPS, WSS, gRPC, local IPC)</c>
      <c>Level 0+</c>
      <c>Agent Descriptor</c>
      <c>Self-describing agent interface and skills</c>
      <c>Level 1+</c>
      <c>Resolution Framework</c>
      <c>Maps agent URIs to endpoints via <spanx style="verb">/.well-known/agents.json</spanx></c>
      <c>Level 2+</c>
      <c>Application Semantics</c>
      <c>Shared vocabulary for skill naming and versioning</c>
      <c>Level 3</c>
</texttable>

<t>This layering allows implementations to adopt minimal or full-featured configurations, depending on their needs.</t>

<section anchor="conformance-levels"><name>Conformance Levels</name>

<t>This specification defines four conformance levels to support incremental adoption:</t>

<texttable title="Conformance Levels" anchor="tab-conformance-levels">
      <ttcol align='left'>Level</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Requirements</ttcol>
      <c>0</c>
      <c>Direct Invocation</c>
      <c>Support <spanx style="verb">agent+&lt;protocol&gt;://</spanx> URI parsing and direct transport invocation</c>
      <c>1</c>
      <c>Discoverable</c>
      <c>Level 0 + publish <spanx style="verb">/.well-known/agents.json</spanx> with agent entries pointing to descriptor URLs</c>
      <c>2</c>
      <c>Resolvable</c>
      <c>Level 1 + support the resolution algorithm (<xref target="resolution-framework"></xref>), caching, and multiple transports</c>
      <c>3</c>
      <c>Full</c>
      <c>Level 2 + descriptors with full skills, authentication, optional signing, and version aliasing</c>
</texttable>

<t>Implementations SHOULD declare their conformance level in documentation. Clients SHOULD gracefully degrade when interacting with agents at a lower conformance level.</t>

</section>
</section>
<section anchor="uri-scheme-specification"><name>URI Scheme Specification</name>

<t>The format of <spanx style="verb">agent://</spanx> URIs is:</t>

<figure title="Agent URI Format" anchor="fig-uri-format"><artwork><![CDATA[
agent://[authority]/[path]?[query]#[fragment]
agent+<protocol>://[authority]/[path]
]]></artwork></figure>

<t>Examples:</t>

<t><list style="symbols">
  <t><spanx style="verb">agent://example.com/planning/gen-iti?city=Paris</spanx></t>
  <t><spanx style="verb">agent://planner.example.com/claude?text=Hello</spanx></t>
  <t><spanx style="verb">agent+https://example.com/assistants/chatgpt?query=hello</spanx></t>
  <t><spanx style="verb">agent+grpc://inference.example.com/model/predict</spanx></t>
  <t><spanx style="verb">agent+local://examplelocalagent</spanx></t>
  <t><spanx style="verb">agent://did%3Aweb%3Aexample.com%3Aagent%3Aresearcher/get-article?doi=10.1234/example</spanx> (canonical, ABNF-conformant)</t>
  <t><spanx style="verb">agent://did:web:example.com:agent:researcher/get-article?doi=10.1234/example</spanx> (convenience form; see <xref target="did-authority"></xref>)</t>
</list></t>

<t>To resolve <spanx style="verb">agent://&lt;authority&gt;/&lt;path&gt;?&lt;query&gt;</spanx>:
1. Fetch <spanx style="verb">https://&lt;authority&gt;/.well-known/agents.json</spanx>
2. Locate <spanx style="verb">&lt;path&gt;</spanx> mapping -&gt; agent descriptor URL
3. Fetch descriptor
4. Extract <spanx style="verb">transport.endpoint</spanx> or <spanx style="verb">transport</spanx> metadata
5. Invoke using indicated method or default (GET for read-only, POST for state-changing)
6. If <spanx style="verb">agents.json</spanx> is not found and an explicit transport binding is present -&gt; invoke directly via that transport</t>

<section anchor="uri-components"><name>Components</name>

<t><list style="symbols">
  <t><strong>Authority</strong>: Uniquely identifies the agent or agent namespace (e.g., DNS hostname or <xref target="DID-CORE">Decentralized Identifier</xref>). DNS authorities follow RFC 3986 syntax directly. DID authorities require special handling because DIDs contain unreserved colons that conflict with the RFC 3986 <spanx style="verb">host [":" port]</spanx> rule; see <xref target="did-authority"></xref>.</t>
  <t><strong>Path</strong>: Specifies the agent and optionally a skill. For agents exposing multiple skills, the path SHOULD follow the convention <spanx style="verb">/&lt;agent-name&gt;/&lt;skill-id&gt;</spanx>. For single-skill agents, the path MAY be the agent name alone.</t>
  <t><strong>Query</strong>: Contains serialized parameters. Query parameters SHOULD be URL-encoded as key=value pairs. If more complex structures are needed, clients SHOULD use HTTP <spanx style="verb">POST</spanx> requests with <spanx style="verb">application/json</spanx> bodies rather than base64-encoding payloads into query parameters.</t>
  <t><strong>Fragment</strong>: Optional reference for context or a sub-skill.</t>
  <t>The optional <spanx style="verb">+&lt;protocol&gt;</spanx> indicates an explicit transport binding.</t>
  <t>If not specified, clients use resolution or fall back to HTTPS-based invocation.</t>
</list></t>

<t>Resolvers MUST preserve the port component during resolution. For example, <spanx style="verb">agent://example.com:9090/my-agent</spanx> MUST resolve against <spanx style="verb">https://example.com:9090/</spanx>, not <spanx style="verb">https://example.com/</spanx>.</t>

</section>
<section anchor="uri-abnf"><name>ABNF for <spanx style="verb">agent://</spanx> URI</name>

<t>The ABNF notation follows <xref target="RFC5234">RFC 5234</xref>. The core rules <spanx style="verb">ALPHA</spanx> and <spanx style="verb">DIGIT</spanx> are defined in <xref target="RFC5234">RFC 5234</xref> Appendix B.1. The productions <spanx style="verb">authority</spanx>, <spanx style="verb">path-abempty</spanx>, <spanx style="verb">query</spanx>, <spanx style="verb">fragment</spanx>, and their sub-rules (<spanx style="verb">userinfo</spanx>, <spanx style="verb">host</spanx>, <spanx style="verb">port</spanx>, <spanx style="verb">segment</spanx>, <spanx style="verb">pchar</spanx>, <spanx style="verb">unreserved</spanx>, <spanx style="verb">pct-encoded</spanx>, <spanx style="verb">sub-delims</spanx>) are imported from <xref target="RFC3986">RFC 3986</xref> Section 3.</t>

<figure title="ABNF Grammar for agent:// URI Scheme" anchor="fig-abnf-grammar"><sourcecode type="abnf"><![CDATA[
agent-uri      = "agent" ["+" protocol] "://" authority path-abempty
                 [ "?" query ] [ "#" fragment ]

protocol       = ALPHA *( ALPHA / DIGIT / "-" )
                 ; Registered transport binding identifier.
                 ; MUST start with a letter per URI scheme conventions.

]]></sourcecode></figure>

<t>The <spanx style="verb">agent://</spanx> scheme always requires the <spanx style="verb">://</spanx> delimiter and an authority component. The authority component MUST NOT be empty. The <spanx style="verb">hier-part</spanx> alternatives <spanx style="verb">path-absolute</spanx>, <spanx style="verb">path-rootless</spanx>, and <spanx style="verb">path-empty</spanx> from <xref target="RFC3986">RFC 3986</xref> are not used; only the <spanx style="verb">"//" authority path-abempty</spanx> form is valid for <spanx style="verb">agent://</spanx> URIs.</t>

</section>
<section anchor="did-authority"><name>DID-based Authority</name>

<t><xref target="DID-CORE">Decentralized Identifiers (DIDs)</xref> contain colons as internal separators, which conflict with the RFC 3986 <spanx style="verb">host [":" port]</spanx> rule in the <spanx style="verb">authority</spanx> production. Implementations MUST handle this as follows:</t>

<t><strong>Canonical (ABNF-conformant) form.</strong> The DID MUST be percent-encoded in the authority component. Each <spanx style="verb">:</spanx> within the DID is replaced with <spanx style="verb">%3A</spanx>:</t>

<figure><artwork><![CDATA[
agent://did%3Aweb%3Aexample.com%3Aagent%3Aresearcher/get-article
]]></artwork></figure>

<t>Standard URI parsers will correctly treat the encoded string as a single <spanx style="verb">reg-name</spanx> host.</t>

<t><strong>Convenience form (informative).</strong> Many existing tools and human-authored documents use the unencoded DID in the authority:</t>

<figure><artwork><![CDATA[
agent://did:web:example.com:agent:researcher/get-article
]]></artwork></figure>

<t>Implementations MAY accept this form on a best-effort basis by detecting the <spanx style="verb">did:</spanx> prefix and treating the entire authority as an opaque DID identifier (ignoring the RFC 3986 port rule). However, the unencoded form is not strictly ABNF-conformant and MAY be rejected by strict parsers. Serializers SHOULD emit the canonical percent-encoded form.</t>

<t><strong>Resolution of DID authorities.</strong> When the authority is a DID, Step 1 of the resolution algorithm (<xref target="resolution-algorithm"></xref>) does NOT apply directly, because a DID is not a DNS host. Resolvers MUST instead perform DID resolution per <xref target="DID-CORE">DID Core</xref> to obtain the DID Document, then extract a service endpoint of type <spanx style="verb">AgentDescriptor</spanx> (or an equivalent type). If such an endpoint is present, its URL is treated as the descriptor URL (Step 3 onward). If no suitable service endpoint is found, resolution fails.</t>

<t>Not every DID method resolves to a DNS-addressable endpoint (e.g., <spanx style="verb">did:key</spanx>, <spanx style="verb">did:pkh</spanx>). Such DIDs are valid <spanx style="verb">agent://</spanx> authorities only when coupled with an explicit transport binding (e.g., <spanx style="verb">agent+local://did%3Akey%3Az6Mk.../capability</spanx>) or when paired with out-of-band resolution infrastructure.</t>

</section>
</section>
<section anchor="resolution-framework"><name>Resolution Framework</name>

<t>Agent discovery uses a single well-known endpoint: <spanx style="verb">/.well-known/agents.json</spanx>. This file serves as the agent registry for a domain, mapping agent names to their descriptor URLs. Both single-agent and multi-agent domains use the same format -- a single-agent domain simply has one entry.</t>

<section anchor="resolution-algorithm"><name>Resolution Algorithm</name>

<t>To resolve <spanx style="verb">agent://&lt;authority&gt;/&lt;path&gt;</spanx>:</t>

<t><list style="numbers" type="1">
  <t>Construct the registry URL: <spanx style="verb">https://&lt;authority&gt;/.well-known/agents.json</spanx> (preserving port if present in the authority).</t>
  <t>Fetch the registry via HTTPS GET.</t>
  <t>Extract the first path segment as the agent name. Look up the agent name in the <spanx style="verb">agents</spanx> mapping to obtain the descriptor URL.</t>
  <t>Fetch the agent descriptor from that URL.</t>
  <t>Extract transport and endpoint metadata from the descriptor.</t>
  <t>Invoke the agent using the indicated transport, or default to HTTPS with POST (if parameters present) or GET (otherwise).</t>
</list></t>

<t>If <spanx style="verb">agents.json</spanx> is not found (HTTP 404) and the URI has an explicit transport binding (e.g., <spanx style="verb">agent+https://</spanx>), clients MAY invoke directly via that transport without a descriptor.</t>

<figure title="Agent URI Resolution Process" anchor="fig-resolution-flow"><artwork><![CDATA[
+---------+          +-------------+         +-------------+
|  Client | --URI--> |  Resolver   | -->URL->| Agent Server|
+---------+          +-------------+         +-------------+
                           |
                   (agents.json -> descriptor)

]]></artwork></figure>

<t><strong>Example <spanx style="verb">agents.json</spanx></strong>:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "agents": {
    "planner": "https://planner.example.com/agent.json",
    "translator": "https://example.com/translator/agent.json"
  }
}

]]></sourcecode></figure>

<t>A single-agent domain simply has one entry in the registry.</t>

<t>Individual agent descriptors MUST conform to the normative minimum schema in <xref target="capability-framework"></xref>. Additional application-layer metadata MAY be carried via the extension patterns of <xref target="extension-fields"></xref>.</t>

</section>
<section anchor="resolver-security"><name>Resolver Security</name>

<t>Resolvers MUST restrict fetches to HTTPS schemes. Resolvers MUST NOT follow HTTP redirects to, or resolve agent URIs whose authorities resolve to, private, loopback, link-local, or otherwise non-routable IP address ranges:</t>

<t><list style="symbols">
  <t><spanx style="verb">10.0.0.0/8</spanx>, <spanx style="verb">172.16.0.0/12</spanx>, <spanx style="verb">192.168.0.0/16</spanx> (IPv4 private)</t>
  <t><spanx style="verb">127.0.0.0/8</spanx> (IPv4 loopback)</t>
  <t><spanx style="verb">169.254.0.0/16</spanx> (IPv4 link-local, including cloud metadata endpoints)</t>
  <t><spanx style="verb">0.0.0.0/8</spanx> (IPv4 "this network")</t>
  <t><spanx style="verb">::1/128</spanx> (IPv6 loopback)</t>
  <t><spanx style="verb">fc00::/7</spanx> (IPv6 unique local)</t>
  <t><spanx style="verb">fe80::/10</spanx> (IPv6 link-local)</t>
  <t>IPv4-mapped IPv6 addresses (<spanx style="verb">::ffff:0:0/96</spanx>) MUST be unwrapped and re-checked against the IPv4 ranges above.</t>
</list></t>

<t>These checks MUST be applied at <strong>every</strong> stage of resolution:</t>

<t><list style="numbers" type="1">
  <t>When resolving the <spanx style="verb">authority</spanx> of the incoming <spanx style="verb">agent://</spanx> URI.</t>
  <t>When the descriptor URL extracted from <spanx style="verb">/.well-known/agents.json</spanx> is resolved (the <spanx style="verb">agents.json</spanx> content may be attacker-influenced).</t>
  <t>When following any HTTP redirect during descriptor or registry fetch.</t>
</list></t>

<t>Resolvers SHOULD verify TLS certificates and MAY require signed descriptors. To mitigate DNS rebinding attacks, resolvers SHOULD pin the resolved IP address for the duration of a request or implement equivalent controls.</t>

</section>
<section anchor="caching"><name>Caching</name>

<t>Resolvers that cache descriptors or registry responses MUST implement HTTP cache semantics per <xref target="RFC9111">RFC 9111</xref>. Agents at Conformance Level 2 or above SHOULD include <spanx style="verb">Cache-Control</spanx> headers in descriptor responses and SHOULD include <spanx style="verb">ETag</spanx> or <spanx style="verb">Last-Modified</spanx> headers to enable conditional requests (<spanx style="verb">If-None-Match</spanx>, <spanx style="verb">If-Modified-Since</spanx>).</t>

<t>Resolvers SHOULD also apply negative caching to 404 responses from <spanx style="verb">/.well-known/agents.json</spanx> with a short TTL to avoid unbounded upstream traffic when clients repeatedly resolve non-existent authorities.</t>

</section>
<section anchor="alternative-resolution"><name>Relationship to WebFinger and Other Discovery Protocols</name>

<t><xref target="RFC7033">WebFinger</xref> (<spanx style="verb">/.well-known/webfinger</spanx>) is the established IETF mechanism for account-centric resource discovery via a JRD. The <spanx style="verb">/.well-known/agents.json</spanx> registry defined by this document is similar in spirit but differs in important ways:</t>

<t><list style="symbols">
  <t>WebFinger is account-scoped (<spanx style="verb">acct:user@host</spanx>) and returns a JRD with typed <spanx style="verb">Link</spanx> relations.</t>
  <t><spanx style="verb">agents.json</spanx> is an authority-scoped directory of named agents resolving to descriptor URLs, optimized for the common case of a domain hosting a known set of agents.</t>
</list></t>

<t>Implementations MAY additionally support WebFinger-style resource-scoped queries, DID resolution (see <xref target="did-authority"></xref>), or proprietary resolvers. These alternative mechanisms are out of scope for this specification.</t>

<t><strong>Positioning relative to emerging IETF work.</strong> Several related IETF efforts are in progress at the time of this writing: discussions around the "Discovery of Agents, Workloads, and Named Entities" (DAWN) problem space, the proposed AI-agent-protocols working group (AIPROTO), and various Agent Name Service / Agent Identity Protocol drafts. This specification addresses the URI scheme and authority-scoped discovery layer only. It is intentionally neutral to agent <em>naming</em> and <em>identity</em> semantics: a named entity defined by future IETF work (for example, via DAWN) can be used as an <spanx style="verb">agent://</spanx> authority, and identity proofs (e.g., as proposed by Agent Identity Protocol drafts) can be layered via the descriptor's <spanx style="verb">authentication</spanx> and DID authority mechanisms. The resolution algorithm is agnostic to authority type.</t>

<t>A dynamic agent registry protocol for runtime registration and deregistration is planned as a companion specification (see <xref target="planned-companions"></xref>).</t>

</section>
</section>
<section anchor="transport-binding"><name>Transport Bindings</name>

<section anchor="explicit-transport-bindings"><name>Explicit Transport Binding</name>

<t>Use the <spanx style="verb">agent+&lt;protocol&gt;://</spanx> scheme for clarity:</t>

<texttable title="Transport Binding Formats" anchor="tab-transport-bindings">
      <ttcol align='left'>Transport</ttcol>
      <ttcol align='left'>Format</ttcol>
      <ttcol align='left'>Method</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>HTTPS</c>
      <c><spanx style="verb">agent+https://</spanx></c>
      <c>GET/POST</c>
      <c>Secure HTTP-based invocation</c>
      <c>WebSocket Secure</c>
      <c><spanx style="verb">agent+wss://</spanx></c>
      <c>NDJSON stream</c>
      <c>Real-time streaming</c>
      <c>gRPC</c>
      <c><spanx style="verb">agent+grpc://</spanx></c>
      <c>Protocol Buffers, bidi-stream</c>
      <c>High-performance inter-agent calls</c>
      <c>MQTT</c>
      <c><spanx style="verb">agent+mqtt://</spanx></c>
      <c>Pub/sub topics</c>
      <c>IoT and edge agent messaging</c>
      <c>Local</c>
      <c><spanx style="verb">agent+local://</spanx></c>
      <c>IPC/broker call</c>
      <c>Runtime-registered local agents</c>
      <c>Unix Socket</c>
      <c><spanx style="verb">agent+unix://</spanx></c>
      <c>Unix domain socket</c>
      <c>IPC for co-located agents</c>
</texttable>

<t>The <spanx style="verb">agent+&lt;transport&gt;://</spanx> scheme allows explicit declaration of transport bindings, enabling clarity, extensibility, and optimized routing. When no explicit transport is declared, clients MAY rely on resolution metadata or default to HTTPS-based invocation.</t>

<t>New transport bindings MAY be registered via the IANA registry defined in <xref target="iana-considerations"></xref>. Each registered binding MUST specify connection establishment, message framing, and error signaling conventions.</t>

</section>
<section anchor="transport-conventions"><name>Transport-Specific Conventions</name>

<section anchor="transport-https"><name>HTTPS (<spanx style="verb">agent+https://</spanx>)</name>

<t>Connection is established via standard HTTPS. Requests use GET (no parameters) or POST (with <spanx style="verb">application/json</spanx> body). Responses use standard HTTP status codes. Errors follow <xref target="RFC9457">RFC 9457</xref> problem details.</t>

</section>
<section anchor="transport-wss"><name>WebSocket Secure (<spanx style="verb">agent+wss://</spanx>)</name>

<t>Connection is established via the WebSocket handshake per <xref target="RFC6455">RFC 6455</xref>. Messages are framed as newline-delimited JSON (NDJSON). Errors are sent as JSON objects with <spanx style="verb">type</spanx>, <spanx style="verb">title</spanx>, <spanx style="verb">detail</spanx>, and <spanx style="verb">status</spanx> fields within the stream.</t>

</section>
<section anchor="transport-grpc"><name>gRPC (<spanx style="verb">agent+grpc://</spanx>)</name>

<t>Connection is established via HTTP/2 with Protocol Buffer serialization. Agents SHOULD publish <spanx style="verb">.proto</spanx> service definitions alongside their descriptors. Supports unary, server-streaming, client-streaming, and bidirectional streaming patterns. Errors use standard <xref target="gRPC"></xref> status codes.</t>

</section>
<section anchor="transport-mqtt"><name>MQTT (<spanx style="verb">agent+mqtt://</spanx>)</name>

<t>Connection is established via <xref target="MQTT">MQTT 5.0</xref> broker. The agent name maps to a topic prefix (e.g., <spanx style="verb">agents/&lt;agent-name&gt;/invoke</spanx>). Request/response uses MQTT 5.0 request-response pattern with correlation data. Messages are JSON-encoded. This binding is designed for constrained IoT and edge environments.</t>

</section>
<section anchor="transport-local"><name>Local (<spanx style="verb">agent+local://</spanx>)</name>

<t>Local agents are accessed using:</t>

<figure><sourcecode type="txt"><![CDATA[
agent+local://<agent-name>

]]></sourcecode></figure>

<t><spanx style="verb">agent+local://</spanx> requires explicit user consent and origin binding. Implementations MUST prompt the user before first invocation of a local agent. The consent dialog MUST identify the requesting origin and the target agent.</t>

<t>This allows agent runtimes to register their presence using a local resolver (e.g., via IPC, sockets, or service registry). The transport mechanism is implementation-specific but common patterns include:</t>

<t><list style="symbols">
  <t>Custom protocol handler registration in the operating system</t>
  <t>Service worker mediation in browser environments</t>
  <t>Browser extension APIs bridging web content to local processes</t>
</list></t>

<t>The <spanx style="verb">agent+local://</spanx> scheme addresses the lack of standardized methods for browser-based applications to invoke locally installed agents. This enables web applications to delegate tasks to local agents that can perform privileged operations such as file system access, desktop automation, or hardware interaction. Security considerations are discussed in <xref target="security-and-privacy"></xref>.</t>

<t><strong>Local discovery.</strong> A normative local-agent discovery mechanism (the local-runtime equivalent of <spanx style="verb">/.well-known/agents.json</spanx>) is intentionally out of scope for this document. Runtimes MAY expose a list of available local agents via an implementation-specific channel (e.g., an OS service registry, a browser extension API, or a UNIX domain socket at a well-known path). A standardized local discovery protocol is planned as a companion specification (see <xref target="planned-companions"></xref>).</t>

</section>
<section anchor="transport-unix"><name>Unix Domain Socket (<spanx style="verb">agent+unix://</spanx>)</name>

<t>The <spanx style="verb">agent+unix://</spanx> binding targets co-located agents addressable via a Unix domain socket. The authority component carries the agent name; the socket path is conveyed in the descriptor's <spanx style="verb">transport.unix</spanx> value (e.g., <spanx style="verb">/var/run/agent/planner.sock</spanx>) and is NOT encoded into the URI. This keeps URIs portable across deployments.</t>

<t>Connection establishment: the client connects to the socket path referenced by the descriptor. Message framing: JSON messages delimited by newline (NDJSON) by default; implementations MAY negotiate alternative framing via the <spanx style="verb">interactionModel</spanx> selected. Error signaling: errors are JSON objects with the RFC 9457 problem-detail fields (<spanx style="verb">type</spanx>, <spanx style="verb">title</spanx>, <spanx style="verb">detail</spanx>, <spanx style="verb">status</spanx>) transported within the same NDJSON framing.</t>

<t>Access control is enforced by filesystem permissions on the socket path. <spanx style="verb">agent+unix://</spanx> SHOULD NOT be exposed to untrusted local code without additional OS-level sandboxing.</t>

</section>
</section>
<section anchor="fallback-behavior"><name>Default Fallback Behavior</name>

<t>If the protocol is omitted (i.e., <spanx style="verb">agent://</spanx> is used), clients:</t>

<t><list style="numbers" type="1">
  <t>Fetch <spanx style="verb">/.well-known/agents.json</spanx> from the authority</t>
  <t>Look up the agent and retrieve its descriptor</t>
  <t>Use the <spanx style="verb">transport</spanx> or <spanx style="verb">endpoint</spanx> hints from the descriptor</t>
</list></t>

<t>If the registry is not found, clients MAY fall back to:</t>

<t><list style="symbols">
  <t><spanx style="verb">HTTPS</spanx> (default transport protocol)</t>
  <t>HTTP <spanx style="verb">POST</spanx> if payload present, otherwise <spanx style="verb">GET</spanx></t>
</list></t>

<ul empty="true"><li>
  <t>Note: This fallback behavior is provided for convenience and basic interoperability, but production systems SHOULD prefer explicit transport bindings or resolver-based discovery for robustness and clarity.</t>
</li></ul>

<t>Clients SHOULD prefer explicit transport bindings (<spanx style="verb">agent+https://</spanx>) where available, and fall back to resolution-based discovery (<spanx style="verb">agent://</spanx>) when agent transport metadata is reliably available. Explicit binding reduces resolution ambiguity and improves latency.</t>

</section>
<section anchor="usecases-and-recommendations"><name>Use Cases and Recommended Bindings</name>

<t>The following table outlines some use cases and recommended bindings:</t>

<texttable title="Recommended Bindings for Common Use Cases" anchor="tab-use-cases">
      <ttcol align='left'>Use Case</ttcol>
      <ttcol align='left'>Recommended Binding</ttcol>
      <c>Agent with known HTTPS endpoint</c>
      <c><spanx style="verb">agent+https://</spanx></c>
      <c>High-performance inter-agent calls</c>
      <c><spanx style="verb">agent+grpc://</spanx></c>
      <c>Real-time streaming responses</c>
      <c><spanx style="verb">agent+wss://</spanx></c>
      <c>IoT / edge agent</c>
      <c><spanx style="verb">agent+mqtt://</spanx></c>
      <c>Local runtime agent</c>
      <c><spanx style="verb">agent+local://</spanx></c>
      <c>Dynamic/multi-transport agents</c>
      <c><spanx style="verb">agent://</spanx> with agents.json</c>
</texttable>

</section>
</section>
<section anchor="capability-framework"><name>Descriptor Framework</name>

<t>Agents SHOULD expose a descriptor document (typically <spanx style="verb">agent.json</spanx>) at a URL referenced from the domain's <spanx style="verb">/.well-known/agents.json</spanx> registry.</t>

<t>The field naming in this specification aligns with <xref target="AgentCard"></xref>. An agent's declared functions are carried in a <spanx style="verb">skills</spanx> array. Where the English word "capability" is used in prose, it refers to the general concept; the JSON field name is always <spanx style="verb">skills</spanx>.</t>

<section anchor="descriptor-schema"><name>Normative Descriptor Schema</name>

<t>Agent descriptors MUST conform to the following minimum schema. A complete JSON Schema is provided in <xref target="appendix-json-schema"></xref>.</t>

<section anchor="required-fields"><name>Required Fields</name>

<t>An agent descriptor MUST include:</t>

<t><list style="symbols">
  <t><spanx style="verb">name</spanx> (string): The agent's identifier.</t>
  <t><spanx style="verb">version</spanx> (string): The agent's version, following <xref target="SemVer"></xref>.</t>
  <t><spanx style="verb">skills</spanx> (array): One or more skill objects, each with at minimum <spanx style="verb">id</spanx> (string), <spanx style="verb">name</spanx> (string), and <spanx style="verb">description</spanx> (string).</t>
</list></t>

</section>
<section anchor="recommended-fields"><name>Recommended Fields</name>

<t>An agent descriptor SHOULD include:</t>

<t><list style="symbols">
  <t><spanx style="verb">description</spanx> (string): Human-readable description of the agent.</t>
  <t><spanx style="verb">url</spanx> (string, URI): The agent's canonical <spanx style="verb">agent://</spanx> URI.</t>
  <t><spanx style="verb">transport</spanx> (object): Transport metadata. The object MUST contain at least one of the following keys: <spanx style="verb">endpoint</spanx> (a default URI for the agent), or one of the per-transport keys <spanx style="verb">https</spanx>, <spanx style="verb">wss</spanx>, <spanx style="verb">grpc</spanx>, <spanx style="verb">mqtt</spanx>, <spanx style="verb">local</spanx>, <spanx style="verb">unix</spanx>. Each value is a URI appropriate to that transport. The <spanx style="verb">endpoint</spanx> key carries the default transport when an <spanx style="verb">agent://</spanx> URI has no explicit <spanx style="verb">+protocol</spanx> binding.</t>
  <t><spanx style="verb">authentication</spanx> (object): Authentication metadata; see <xref target="authentication"></xref>.</t>
  <t><spanx style="verb">provider</spanx> (object): Organization information with <spanx style="verb">organization</spanx> (string) and optional <spanx style="verb">url</spanx> (string).</t>
  <t><spanx style="verb">conformanceLevel</spanx> (integer): The conformance level (0-3) implemented by this agent, as defined in <xref target="conformance-levels"></xref>. Enables machine-readable feature detection.</t>
</list></t>

</section>
<section anchor="optional-fields"><name>Optional Fields</name>

<t>An agent descriptor MAY include:</t>

<t><list style="symbols">
  <t><spanx style="verb">status</spanx> (string): One of <spanx style="verb">"active"</spanx>, <spanx style="verb">"deprecated"</spanx>, <spanx style="verb">"experimental"</spanx>. Defaults to <spanx style="verb">"active"</spanx> if omitted. For deprecation with a sunset date, also serve the <spanx style="verb">Sunset</spanx> HTTP response header per <xref target="RFC8594">RFC 8594</xref>.</t>
  <t><spanx style="verb">supportedVersions</spanx> (object): OPTIONAL map of older version strings to their endpoint paths, useful for static discovery of historical versions. Live version signaling on the wire SHOULD use the HTTP <spanx style="verb">Link</spanx> response header with <spanx style="verb">rel="predecessor-version"</spanx>/<spanx style="verb">rel="successor-version"</spanx> and the <spanx style="verb">Sunset</spanx> header per <xref target="RFC8594">RFC 8594</xref>; <spanx style="verb">supportedVersions</spanx> is purely informational and MUST NOT be the sole mechanism for deprecation signaling.</t>
  <t><spanx style="verb">documentationUrl</spanx> (string, URI): Human-readable documentation URL for the agent.</t>
  <t><spanx style="verb">environment</spanx> (string): Deployment environment hint. Values aligned with the <xref target="OTEL-GENAI">OpenTelemetry semantic conventions</xref> <spanx style="verb">deployment.environment</spanx> attribute are RECOMMENDED (e.g., <spanx style="verb">"production"</spanx>, <spanx style="verb">"staging"</spanx>, <spanx style="verb">"development"</spanx>, <spanx style="verb">"preview"</spanx>, <spanx style="verb">"sandbox"</spanx>).</t>
  <t><spanx style="verb">interactionModel</spanx> (array of strings): One or more communication protocol identifiers the agent speaks. Registered values include <spanx style="verb">agent2agent</spanx>, <spanx style="verb">mcp</spanx>, <spanx style="verb">fipa-acl</spanx>, <spanx style="verb">openapi</spanx>. Additional values MUST be registered via the IANA registry (<xref target="iana-interaction-registry"></xref>). A client negotiates with the agent to select one.</t>
</list></t>

</section>
<section anchor="skill-fields"><name>Skill Fields</name>

<t>Each entry in the <spanx style="verb">skills</spanx> array MUST include <spanx style="verb">id</spanx>, <spanx style="verb">name</spanx>, and <spanx style="verb">description</spanx>. Each entry MAY additionally include:</t>

<t><list style="symbols">
  <t><spanx style="verb">version</spanx> (string): Skill-specific version (SemVer).</t>
  <t><spanx style="verb">tags</spanx> (array of strings): Classification tags for discovery.</t>
  <t><spanx style="verb">input</spanx> (object): JSON Schema describing the input format.</t>
  <t><spanx style="verb">output</spanx> (object): JSON Schema describing the output format.</t>
  <t><spanx style="verb">contentTypes</spanx> (object): With <spanx style="verb">accepts</spanx> and <spanx style="verb">produces</spanx> arrays of MIME types (mirroring HTTP <spanx style="verb">Accept</spanx> / <spanx style="verb">Content-Type</spanx> semantics).</t>
  <t><spanx style="verb">streaming</spanx> (boolean): Whether the skill supports streaming responses. A skill MAY indicate the streaming format via the <spanx style="verb">streamingFormat</spanx> field with values such as <spanx style="verb">"sse"</spanx>, <spanx style="verb">"ndjson"</spanx>, or <spanx style="verb">"grpc-stream"</spanx>.</t>
  <t><spanx style="verb">idempotent</spanx> (boolean): Whether the skill is safe to retry without side effects. When set, clients SHOULD use the <spanx style="verb">Idempotency-Key</spanx> HTTP header per <xref target="I-D.ietf-httpapi-idempotency-key-header">draft-ietf-httpapi-idempotency-key-header</xref>.</t>
  <t><spanx style="verb">status</spanx> (string): Skill lifecycle status (<spanx style="verb">"active"</spanx>, <spanx style="verb">"deprecated"</spanx>, <spanx style="verb">"experimental"</spanx>), independent of the agent-level <spanx style="verb">status</spanx>.</t>
  <t><spanx style="verb">authentication</spanx> (object): Per-skill authentication requirements overriding the agent-level <spanx style="verb">authentication</spanx>.</t>
  <t><spanx style="verb">depends</spanx> (array of objects): Declarative references to other agents this skill may invoke. Each entry is an object <spanx style="verb">{uri, relation?, versionConstraint?}</spanx>. The <spanx style="verb">uri</spanx> is a canonical <spanx style="verb">agent://</spanx> URI; <spanx style="verb">relation</spanx> is a typed relationship (e.g., <spanx style="verb">"invokes"</spanx>, <spanx style="verb">"enriches"</spanx>); <spanx style="verb">versionConstraint</spanx> is a SemVer range string. The field is purely declarative -- clients MUST NOT pre-invoke or pre-resolve dependencies based solely on this field. Agents SHOULD publish acyclic dependency graphs. Tooling that transitively resolves <spanx style="verb">depends</spanx> chains (e.g., topology analyzers, cost estimators) MUST detect and reject cycles, and SHOULD bound traversal depth (a limit of 16 is RECOMMENDED).</t>
</list></t>

<t>Application-level behavioral metadata (quantitative latency, pricing, underlying model information, determinism/variability hints, multimodal I/O details, commerce terms, performance SLAs) is intentionally out of scope. See <xref target="extension-fields"></xref> for the recommended way to carry such metadata via JSON-LD <spanx style="verb">@context</spanx> referencing external vocabularies such as <eref target="https://schema.org">schema.org</eref> and the <xref target="OTEL-GENAI">OpenTelemetry semantic conventions for Generative AI</xref>.</t>

</section>
</section>
<section anchor="extension-fields"><name>Extension Fields</name>

<t>The <spanx style="verb">agent://</spanx> protocol intentionally limits its normative vocabulary to fields required for agent addressing, discovery, capability registration, and transport-level concerns. Commerce, performance analytics, multimodal content negotiation, organizational metadata, and other application-level concerns are <strong>out of scope</strong>. These are well-served by existing vocabularies.</t>

<t>Descriptors MAY carry extension fields from external vocabularies. Two patterns are RECOMMENDED:</t>

<section anchor="extension-json-ld"><name>Pattern 1: JSON-LD Context Layering</name>

<t>Descriptors MAY include a top-level <spanx style="verb">@context</spanx> field referencing one or more published JSON-LD contexts. Extension fields MAY then use terms defined in those contexts. Implementations that do not understand a given <spanx style="verb">@context</spanx> MUST ignore unrecognized fields (permitted by <spanx style="verb">additionalProperties: true</spanx> on the top-level schema).</t>

<figure title="Extension via schema.org" anchor="fig-ext-schemaorg"><sourcecode type="json"><![CDATA[
{
  "@context": [
    "https://agent-uri.org/context/v1",
    "https://schema.org"
  ],
  "name": "planner.example.com",
  "version": "3.1.4",
  "skills": [{ "id": "gen-iti", "name": "Generate Itinerary", "description": "..." }],
  "offers": {
    "@type": "Offer",
    "priceSpecification": {
      "@type": "UnitPriceSpecification",
      "price": 0.01,
      "priceCurrency": "USD",
      "unitText": "per invocation"
    }
  }
}

]]></sourcecode></figure>

<t>Pricing, product information, organization details, ratings, reviews, and similar commerce or metadata fields SHOULD use schema.org terms rather than <spanx style="verb">agent://</spanx>-specific fields.</t>

</section>
<section anchor="extension-agentcard"><name>Pattern 2: AgentCard Co-existence</name>

<t>This specification's <spanx style="verb">skills</spanx> array is designed to align with <xref target="AgentCard"></xref>'s <spanx style="verb">skills</spanx>. Implementations that bridge to <xref target="Agent2Agent"></xref> SHOULD carry additional AgentCard-specific fields (such as <spanx style="verb">defaultInputModes</spanx>, <spanx style="verb">defaultOutputModes</spanx>) under an <spanx style="verb">x-a2a-</spanx> prefix rather than at the top level, to preserve clear namespace boundaries.</t>

</section>
<section anchor="extension-vendor"><name>Pattern 3: Vendor Namespaces</name>

<t>Vendor-specific fields SHOULD be namespaced under a <spanx style="verb">x-&lt;vendor&gt;</spanx> prefix (note: the <spanx style="verb">X-</spanx> prefix deprecation in <xref target="RFC6648">RFC 6648</xref> applies to HTTP headers, not to JSON field names; the <spanx style="verb">x-</spanx> convention is widely used in OpenAPI, schema.org, and similar JSON schemas to signal vendor extensions). Example: <spanx style="verb">"x-acme-latency-p95-ms": 120</spanx>.</t>

</section>
<section anchor="what-agent-does-not-define"><name>What agent:// does NOT define</name>

<t>The following are NOT normatively defined by this specification and MUST be layered via the extension patterns above when needed:</t>

<t><list style="symbols">
  <t>Pricing, billing, commerce terms (use schema.org <spanx style="verb">Offer</spanx> / <spanx style="verb">PriceSpecification</spanx>)</t>
  <t>Quantitative latency or SLA metrics (use <xref target="OTEL-GENAI">OpenTelemetry semantic conventions</xref> or schema.org <spanx style="verb">QuantitativeValue</spanx>)</t>
  <t>Underlying model or framework identifiers (use schema.org <spanx style="verb">SoftwareApplication</spanx> or vendor-specific contexts)</t>
  <t>Human-oriented ratings, reviews, endorsements (use schema.org <spanx style="verb">Review</spanx> / <spanx style="verb">AggregateRating</spanx>)</t>
  <t>Service-level quality assurances (use domain-specific SLA vocabularies)</t>
  <t>User-interface metadata (icons, colors, preferred languages) (use AgentCard extensions or vendor namespaces)</t>
</list></t>

<t>This sharper scope is deliberate: <spanx style="verb">agent://</spanx> is an addressing and discovery layer. Application semantics belong at higher layers.</t>

</section>
</section>
<section anchor="content-negotiation"><name>Content Negotiation</name>

<t>Agent descriptors SHOULD include input/output schemas (e.g., JSON Schema) and MAY document content negotiation support via the <spanx style="verb">contentTypes</spanx> field on each skill. This allows clients to understand and negotiate payload encoding, enabling interoperability across ecosystems that use JSON, <xref target="JSON-LD11">JSON-LD 1.1</xref>, RDF/XML, <xref target="FIPA-ACL"></xref>, or other formats.</t>

<t>Clients MAY use standard negotiation mechanisms such as <spanx style="verb">Content-Type</spanx> and <spanx style="verb">Accept</spanx> headers (in HTTP), or envelope metadata (in protocols like <xref target="JSON-RPC"></xref> etc.).</t>

<t>When content negotiation fails or the requested format is not supported, agents SHOULD respond with HTTP <spanx style="verb">406 Not Acceptable</spanx> or equivalent, and MAY include supported formats in the response metadata.</t>

</section>
<section anchor="version-negotiation"><name>Version Negotiation</name>

<t>Clients SHOULD specify the requested descriptor version using the standard HTTP content-negotiation <spanx style="verb">profile</spanx> parameter on the <spanx style="verb">Accept</spanx> header (<xref target="RFC6906">RFC 6906</xref>):</t>

<figure><sourcecode type="http"><![CDATA[
Accept: application/agent+json; profile="https://agent-uri.org/profile/v3"
]]></sourcecode></figure>

<t>This is the canonical negotiation mechanism. Servers MAY additionally accept version specification via URI path segment (e.g., <spanx style="verb">/v3/</spanx>) or query parameter (e.g., <spanx style="verb">?version=3.1.4</spanx>), but these are conveniences; the <spanx style="verb">Accept; profile=</spanx> form takes precedence when present. If the <spanx style="verb">Accept; profile=</spanx> value conflicts with a path-segment or query version, servers MUST honor the <spanx style="verb">Accept; profile=</spanx> value and SHOULD return <spanx style="verb">406 Not Acceptable</spanx> when they cannot satisfy it.</t>

<t>If no version is specified, servers SHOULD return the latest version and SHOULD indicate the selected version via <spanx style="verb">Content-Type: application/agent+json; profile="..."</spanx>. Major version increments indicate breaking changes; clients SHOULD only auto-upgrade within the same major version.</t>

<t>Deprecation of older versions SHOULD use the <spanx style="verb">Sunset</spanx> HTTP response header (<xref target="RFC8594">RFC 8594</xref>) to signal the retirement date, and SHOULD use <spanx style="verb">Link: &lt;...&gt;; rel="successor-version"</spanx> to point at replacements.</t>

</section>
<section anchor="descriptor-format"><name>Descriptor Format</name>

<t>All published descriptors MUST use media type <spanx style="verb">application/agent+json</spanx> (or JSON-LD profile).</t>

<t>Descriptors MAY use the <xref target="AgentCard"></xref> schema (as defined by the Agent2Agent protocol) as one possible format. Any format other than AgentCard SHOULD be expressed in <xref target="JSON-LD11">JSON-LD 1.1</xref> to enable semantic discovery.</t>

<t><xref target="JSON-LD11">JSON-LD 1.1</xref> support is an extension point for semantic interoperability. Descriptors MAY include a <spanx style="verb">@context</spanx> field referencing a published JSON-LD context document that maps descriptor fields to IRIs. When a context is provided, the context URL SHOULD be dereferenceable. A standard JSON-LD context for agent:// descriptors is planned as a companion specification. Implementations SHOULD NOT rely on JSON-LD processing for core resolution or invocation.</t>

<t>The <spanx style="verb">/.well-known/agents.json</spanx> registry enumerates all available agents under a domain. The individual descriptor files serve as the canonical source of truth for each agent.</t>

</section>
</section>
<section anchor="cross-cutting"><name>Cross-Cutting Conventions</name>

<t>This section covers transport-level conventions that apply regardless of the communication protocol in use. Interaction patterns (request/response, streaming, deferred response, delegated invocation, asynchronous events) and their semantics -- message formats, task lifecycles, state machines -- are defined by the communication-layer protocol (e.g., <xref target="Agent2Agent"></xref>, <xref target="MCP"></xref>), not by <spanx style="verb">agent://</spanx>.</t>

<section anchor="correlation"><name>Correlation and Session Metadata</name>

<t>For cross-agent correlation and stateful interactions, clients and agents SHOULD use established W3C and IETF conventions rather than bespoke headers:</t>

<t><list style="symbols">
  <t><strong>Distributed tracing</strong>: use the W3C <xref target="W3C-TRACE-CONTEXT">Trace Context</xref> <spanx style="verb">traceparent</spanx> and <spanx style="verb">tracestate</spanx> headers.</t>
  <t><strong>Correlation baggage</strong> (session IDs, user IDs, and other propagated key-value data): use the W3C <xref target="W3C-BAGGAGE">Baggage</xref> header. For cross-agent correlation, the <spanx style="verb">session.id</spanx> and <spanx style="verb">enduser.id</spanx> keys align with the <xref target="OTEL-GENAI">OpenTelemetry semantic conventions</xref>. Application-level task identifiers MAY be carried under a vendor-prefixed key (e.g., <spanx style="verb">example.task.id</spanx>) or under an <spanx style="verb">x-</spanx> prefixed header by mutual agreement; this specification does not register a normative task-id key.</t>
  <t><strong>Idempotency</strong>: when a skill's <spanx style="verb">idempotent</spanx> field is <spanx style="verb">true</spanx>, clients SHOULD include the <spanx style="verb">Idempotency-Key</spanx> header per <xref target="I-D.ietf-httpapi-idempotency-key-header">draft-ietf-httpapi-idempotency-key-header</xref> to enable safe retry.</t>
  <t><strong>Asynchronous invocation</strong>: use the standard HTTP idiom of <spanx style="verb">202 Accepted</spanx> + <spanx style="verb">Location: &lt;poll-url&gt;</spanx> per <xref target="RFC9110">RFC 9110</xref> Section 15.3.3. Richer task lifecycles (cancellation, progress, state machines) are defined by the communication protocol in use.</t>
</list></t>

<t><strong>Example</strong>:</t>

<figure><sourcecode type="http"><![CDATA[
GET /tasks/1234 HTTP/1.1
Host: planner.example.com
traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
baggage: session.id=abcde-12345

]]></sourcecode></figure>

<t>This specification does not register new correlation headers. Deployments that require application-specific headers (beyond <spanx style="verb">traceparent</spanx>/<spanx style="verb">tracestate</spanx>/<spanx style="verb">baggage</spanx>/<spanx style="verb">Idempotency-Key</spanx>) SHOULD use namespaced headers per implementer-specific registries.</t>

</section>
<section anchor="multi-tenancy"><name>Multi-Tenancy</name>

<t>Multi-tenant deployments SHOULD follow the pattern established by <xref target="RFC8414">RFC 8414</xref> (path insertion of tenant components after the well-known suffix): each tenant exposes its own registry at <spanx style="verb">/.well-known/agents.json/&lt;tenant&gt;</spanx>. Path-prefix namespacing inside a single shared <spanx style="verb">agents.json</spanx> document (e.g., <spanx style="verb">"tenant-a/agent-1": "..."</spanx>) is permitted but is NOT RECOMMENDED for large multi-tenant domains because the entire registry must be fetched to locate one tenant's entry.</t>

</section>
</section>
<section anchor="error-handling"><name>Error Handling</name>

<t>Implementations SHOULD return errors using standard HTTP status codes along with structured JSON error responses conforming to <xref target="RFC9457">RFC 9457</xref> ("Problem Details for HTTP APIs").</t>

<section anchor="agent-errors"><name>Agent Errors</name>

<t>Recommended HTTP status codes for agent errors:</t>

<texttable title="Recommended HTTP status codes" anchor="tab-http-status-codes">
      <ttcol align='left'>Status Code</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c>400</c>
      <c>Bad Request (e.g., invalid parameters)</c>
      <c>401</c>
      <c>Unauthorized</c>
      <c>403</c>
      <c>Forbidden</c>
      <c>404</c>
      <c>Skill or resource not found</c>
      <c>406</c>
      <c>Not Acceptable (content negotiation failure)</c>
      <c>409</c>
      <c>Conflict (e.g., state mismatch)</c>
      <c>410</c>
      <c>Gone (agent deprecated or decommissioned)</c>
      <c>429</c>
      <c>Too Many Requests (rate limiting)</c>
      <c>500</c>
      <c>Internal Server Error</c>
      <c>503</c>
      <c>Service Unavailable</c>
</texttable>

<t>When returning <spanx style="verb">429</spanx> (Too Many Requests) or <spanx style="verb">503</spanx> (Service Unavailable), agents SHOULD follow the runtime rate-limit signaling conventions defined by <xref target="I-D.ietf-httpapi-ratelimit-headers">draft-ietf-httpapi-ratelimit-headers</xref> (the <spanx style="verb">RateLimit</spanx> and <spanx style="verb">RateLimit-Policy</spanx> structured-field headers) and SHOULD include a <spanx style="verb">Retry-After</spanx> header per <xref target="RFC9110">RFC 9110</xref>.</t>

<t>Static advertisement of rate-limit policy at the descriptor level is out of scope; implementations needing to advertise limits before invocation SHOULD do so via an extension field referencing the IETF rate-limit-headers structured-field syntax.</t>

<t>Example:</t>

<figure title="Example HTTP Error Response" anchor="fig-error-response"><sourcecode type="http"><![CDATA[
HTTP/1.1 404 Not Found
Content-Type: application/problem+json

{
  "type": "https://example.com/errors/skill-not-found",
  "title": "Skill Not Found",
  "status": 404,
  "detail": "The requested skill 'gen-iti' was not found.",
  "instance": "/planner/gen-iti"
}

]]></sourcecode></figure>

</section>
<section anchor="resolution-errors"><name>Resolution Errors</name>

<t>Resolvers SHOULD distinguish the following error conditions:</t>

<t><list style="symbols">
  <t><strong>DNS resolution failure</strong>: The authority cannot be resolved to an IP address.</t>
  <t><strong>Registry not found</strong>: <spanx style="verb">/.well-known/agents.json</spanx> returns HTTP 404.</t>
  <t><strong>Agent not found</strong>: The agent name is not present in the registry.</t>
  <t><strong>Descriptor fetch failure</strong>: The descriptor URL from the registry is unreachable or returns an error.</t>
  <t><strong>SSRF violation</strong>: The resolved IP address falls within a private or loopback range.</t>
</list></t>

<t>Resolvers SHOULD surface these errors with sufficient detail for clients to distinguish between misconfiguration and genuine unavailability.</t>

</section>
<section anchor="non-http-errors"><name>Non-HTTP Transport Errors</name>

<t>For non-HTTP transports (e.g., WebSockets, gRPC), agents SHOULD return structured errors using JSON structures with <spanx style="verb">type</spanx>, <spanx style="verb">title</spanx>, <spanx style="verb">detail</spanx>, and <spanx style="verb">status</spanx> fields, encapsulated within the transport's native message envelope. Where applicable, implementations SHOULD align with existing conventions such as:</t>

<t><list style="symbols">
  <t>JSON-RPC <spanx style="verb">error</spanx> objects (<spanx style="verb">code</spanx>, <spanx style="verb">message</spanx>, <spanx style="verb">data</spanx>)</t>
  <t>gRPC status codes</t>
  <t><xref target="OPENAPI-3.1">OpenAPI</xref> or REST error payloads</t>
</list></t>

<t>Application-level error vocabularies are out of scope for this specification. Clients SHOULD parse and utilize structured error responses produced by the communication-layer protocol in use.</t>

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

<section anchor="authentication"><name>Authentication</name>

<t>Agents SHOULD reuse existing IETF authentication and authorization infrastructure rather than defining new mechanisms. Descriptors advertise their authentication requirements through either:</t>

<t><list style="symbols">
  <t><strong>OAuth 2.0 Authorization Server Metadata</strong> per <xref target="RFC8414">RFC 8414</xref> -- the descriptor carries an <spanx style="verb">authorizationServer</spanx> URI pointing at the issuer; clients dereference <spanx style="verb">&lt;issuer&gt;/.well-known/oauth-authorization-server</spanx> to discover the token endpoint, supported grant types, scopes, and keys.</t>
  <t><strong>OAuth 2.0 Protected Resource Metadata</strong> per <xref target="RFC9728">RFC 9728</xref> -- the descriptor carries a <spanx style="verb">protectedResourceMetadata</spanx> URI that points at the agent's own protected-resource metadata document.</t>
  <t><strong>HTTP Authentication Schemes</strong> per <xref target="RFC9110">RFC 9110</xref> Section 11 -- the descriptor's <spanx style="verb">schemes</spanx> array lists values from the IANA HTTP Authentication Scheme Registry (<spanx style="verb">Bearer</spanx>, <spanx style="verb">Mutual</spanx>, <spanx style="verb">Digest</spanx>, ...).</t>
</list></t>

<t>Token usage follows <xref target="RFC6750">RFC 6750</xref> for bearer tokens and <xref target="RFC8705">RFC 8705</xref> for mutual-TLS-bound tokens. The <spanx style="verb">authentication</spanx> field on a descriptor has the following shape:</t>

<figure title="Authentication Descriptor Example" anchor="fig-auth-descriptor"><sourcecode type="json"><![CDATA[
{
  "authentication": {
    "schemes": ["Bearer"],
    "authorizationServer": "https://auth.example.com",
    "protectedResourceMetadata": "https://agent.example.com/.well-known/oauth-protected-resource",
    "jwksUri": "https://agent.example.com/.well-known/jwks.json"
  }
}

]]></sourcecode></figure>

<t>Either <spanx style="verb">authorizationServer</spanx> or <spanx style="verb">protectedResourceMetadata</spanx> (or both) SHOULD be present when OAuth 2.0 is in use. Clients MUST prefer the metadata documents over any fields embedded directly in the descriptor. For deployments that do not use OAuth and do not use DID-based authorities, the descriptor MAY directly carry <spanx style="verb">jwksUri</spanx> (URL of a JWK Set per <xref target="RFC7517">RFC 7517</xref>) or an inline <spanx style="verb">jwks</spanx> object; this is the third permitted path for signature-verification key discovery (see <xref target="descriptor-signing"></xref>). Implementations MAY additionally carry an <xref target="OPENAPI-3.1">OpenAPI 3.1</xref> <spanx style="verb">securitySchemes</spanx> object under the <spanx style="verb">x-openapi-security</spanx> extension key for tooling that consumes OpenAPI natively.</t>

<t>For non-HTTP transports (e.g., WebSocket, gRPC), agents SHOULD leverage native authentication mechanisms and document them in the descriptor via the extension-field patterns of <xref target="extension-fields"></xref>.</t>

</section>
<section anchor="delegation-chains"><name>Delegation</name>

<t>For agent-to-agent delegation, this specification does not define a new mechanism. Implementations SHOULD use <strong>OAuth 2.0 Token Exchange</strong> per <xref target="RFC8693">RFC 8693</xref>, which already supports multi-hop delegation via the nested <spanx style="verb">act</spanx> (actor) claim. A single signed token carries the full delegation chain compactly and verifiably:</t>

<t><list style="symbols">
  <t>Each delegating principal appears as a nested <spanx style="verb">act</spanx> claim inside the token.</t>
  <t>The token's <spanx style="verb">iss</spanx>, <spanx style="verb">sub</spanx>, <spanx style="verb">aud</spanx>, <spanx style="verb">iat</spanx>, <spanx style="verb">exp</spanx>, <spanx style="verb">nbf</spanx>, <spanx style="verb">jti</spanx> claims follow <xref target="RFC7519">RFC 7519</xref> semantics.</t>
  <t>JWT validation follows <xref target="RFC8725">RFC 8725</xref> best current practice, including algorithm restriction and replay protection via <spanx style="verb">jti</spanx>.</t>
  <t>Scope restriction uses the <spanx style="verb">scope</spanx> claim per <xref target="RFC9068">RFC 9068</xref>.</t>
</list></t>

<t>This specification adds one recommendation on top of RFC 8693:</t>

<t><strong>Monotonic scope narrowing.</strong> When <spanx style="verb">act</spanx> claims are nested, the <spanx style="verb">scope</spanx> of each inner (downstream) actor SHOULD be a subset of the <spanx style="verb">scope</spanx> of the outer (upstream) actor. Verifiers SHOULD reject tokens where a nested actor appears to carry broader scope than its delegator. This aligns with the attenuation principle of capability-based security.</t>

<t>Scope comparison semantics are deployment-defined: most deployments treat <spanx style="verb">scope</spanx> as a space-delimited bag of tokens and apply set-inclusion, but some deployments encode hierarchical scopes (e.g., <spanx style="verb">billing.read.*</spanx>) or use opaque scope identifiers that require out-of-band comparison logic. Verifiers MUST document their scope-comparison policy, and SHOULD reject tokens whose scope structure they cannot compare.</t>

<t>Delegation tokens SHOULD be carried in the <spanx style="verb">Authorization</spanx> header using the <spanx style="verb">Bearer</spanx> scheme per <xref target="RFC6750">RFC 6750</xref>. No separate <spanx style="verb">Delegation-Chain</spanx> header is defined by this specification.</t>

</section>
<section anchor="descriptor-signing"><name>Descriptor Signing</name>

<t>Agent descriptors served over HTTP SHOULD be integrity-protected using <strong>HTTP Message Signatures</strong> per <xref target="RFC9421">RFC 9421</xref>. The signature covers at minimum the <spanx style="verb">@status</spanx>, <spanx style="verb">content-type</spanx>, <spanx style="verb">content-digest</spanx>, and the selected representation headers, using the <spanx style="verb">Signature-Input</spanx> and <spanx style="verb">Signature</spanx> response headers. The <spanx style="verb">Content-Digest</spanx> header (<xref target="RFC9530">RFC 9530</xref>) carries the digest of the descriptor body.</t>

<t>The default signature algorithm is <spanx style="verb">ecdsa-p256-sha256</spanx>. Verifiers MUST refuse to accept unsigned descriptors when the resolver or client policy requires signed descriptors. Key material is discovered in order of precedence from: (1) the descriptor's <spanx style="verb">authentication.authorizationServer</spanx> metadata (<spanx style="verb">jwks_uri</spanx> per <xref target="RFC8414">RFC 8414</xref>); (2) the descriptor's <spanx style="verb">authentication.jwksUri</spanx> or inline <spanx style="verb">authentication.jwks</spanx>; (3) for <xref target="DID-CORE">DID-based</xref> authorities, the corresponding DID Document's verification methods.</t>

<t>In-document signing (detached JWS or JWS JSON Serialization per <xref target="RFC7515">RFC 7515</xref>) is permitted for deployments that cannot use HTTP Message Signatures (e.g., descriptors distributed out of band). When used, the signed payload MUST be the descriptor canonicalized per JSON Canonicalization Scheme (<xref target="RFC8785">RFC 8785</xref>) and the serialized JWS MUST be carried alongside the descriptor rather than inlined.</t>

</section>
<section anchor="local-agent-security"><name>Local Agent Security</name>

<t>The <spanx style="verb">agent+local://</spanx> scheme requires special security handling. The consent flow for local agent invocation:</t>

<t><list style="numbers" type="1">
  <t>A web application or client requests invocation of <spanx style="verb">agent+local://&lt;agent-name&gt;/&lt;skill&gt;</spanx>.</t>
  <t>The browser or runtime MUST display a user consent dialog identifying the requesting origin and the target agent.</t>
  <t>The user approves or denies the request.</t>
  <t>If approved, the runtime establishes an IPC channel to the local agent.</t>
  <t>The runtime mediates all subsequent invocations for this origin-agent pair until the user revokes consent.</t>
</list></t>

<t>Browsers and runtimes MUST enforce same-origin policy for local agent access. Consent grants SHOULD be scoped to specific capabilities and SHOULD be revocable.</t>

</section>
<section anchor="resolver-security-considerations"><name>Resolver Implementation Security</name>

<t>Resolvers MUST use HTTPS with certificate validation. Resolvers SHOULD validate descriptor integrity using <spanx style="verb">ETag</spanx>/<spanx style="verb">Last-Modified</spanx> for caching. If signature metadata is present, resolvers SHOULD verify signatures per the descriptor's signing scheme. See also <xref target="resolver-security"></xref> for SSRF protections.</t>

</section>
<section anchor="resolution-threats"><name>Resolution Security Threats</name>

<t>Implementations SHOULD be aware of the following threats to the resolution mechanism:</t>

<t><list style="symbols">
  <t><strong>Registry poisoning</strong>: If <spanx style="verb">/.well-known/agents.json</spanx> is compromised, an attacker could redirect all agent resolution to malicious endpoints. Descriptor signing (<xref target="descriptor-signing"></xref>) mitigates this but is currently OPTIONAL. Production deployments SHOULD sign descriptors.</t>
  <t><strong>Descriptor substitution</strong>: A malicious descriptor URL could return a modified descriptor with altered endpoints or capabilities. Clients SHOULD validate descriptor integrity via <spanx style="verb">ETag</spanx> or signatures when available.</t>
  <t><strong>Open redirect</strong>: A malicious <spanx style="verb">agents.json</spanx> could point to arbitrary URLs. Resolvers SHOULD validate that descriptor URLs use HTTPS and do not redirect to unexpected domains.</t>
  <t><strong>Confused deputy via <spanx style="verb">depends</spanx></strong>: An agent's <spanx style="verb">depends</spanx> field could reference malicious agents, causing legitimate agents to invoke attacker-controlled endpoints. Orchestrators SHOULD validate dependency chains and MAY restrict <spanx style="verb">depends</spanx> to trusted domains.</t>
</list></t>

</section>
<section anchor="privacy"><name>Privacy</name>

<t>Agents SHOULD minimize data retention and SHOULD expose revoke/delete interfaces for user data where applicable.</t>

<t>Agents SHOULD adhere to privacy best practices, including:</t>

<t><list style="symbols">
  <t>Data minimization (collect only necessary data)</t>
  <t>Explicit consent and revocation mechanisms</t>
  <t>Clear logging/audit trails</t>
  <t>Ethical AI guidelines, including bias detection and fairness assessments as they evolve</t>
</list></t>

</section>
<section anchor="compliance-and-regulatory-considerations"><name>Compliance and Regulatory Considerations</name>

<t>Implementers SHOULD ensure compliance with relevant legal frameworks (e.g., GDPR, CCPA) of the jurisdictions where the agent is hosted. Agents processing sensitive data SHOULD provide audit trails and explicit consent mechanisms clearly documented in capability descriptors.</t>

</section>
</section>
<section anchor="extensibility"><name>Extensibility</name>

<t>The protocol supports extension via:</t>

<t><list style="symbols">
  <t>New transport bindings (registered via <xref target="iana-transport-registry"></xref>)</t>
  <t>New interaction model identifiers (registered via <xref target="iana-interaction-registry"></xref>)</t>
  <t>Extended agent descriptor fields via JSON-LD contexts and vendor namespaces (see <xref target="extension-fields"></xref>)</t>
  <t>Companion specifications for functionality out of scope for the addressing layer</t>
</list></t>

<t>Extension proposals SHOULD be documented clearly, and ideally reviewed through established processes such as community forums, dedicated working groups, or public registries to ensure transparency and interoperability.</t>

<section anchor="scope-limits"><name>Intentional Scope Limits</name>

<t>The following concerns are explicitly <strong>out of scope</strong> for this specification and are delegated to existing vocabularies or companion specifications:</t>

<t><list style="symbols">
  <t><strong>Commerce and pricing</strong> -- use schema.org <spanx style="verb">Offer</spanx> and <spanx style="verb">PriceSpecification</spanx> via <xref target="extension-fields"></xref>.</t>
  <t><strong>Quantitative performance metrics</strong> -- use domain-specific observability protocols (e.g., OpenTelemetry semantic conventions).</t>
  <t><strong>Underlying model or framework identification</strong> -- use schema.org <spanx style="verb">SoftwareApplication</spanx> or vendor contexts.</t>
  <t><strong>Orchestration semantics</strong> (task lifecycles beyond the minimal async pattern, state machines, compensation) -- use the communication-layer protocol in use (e.g., <xref target="Agent2Agent"></xref>).</t>
  <t><strong>UI metadata</strong> (icons, colors, sample prompts, user-facing language preferences) -- use AgentCard extensions or vendor namespaces.</t>
  <t><strong>Commerce contracts, SLAs, legal terms</strong> -- use domain-specific vocabularies.</t>
</list></t>

<t>This sharper scope is intentional. Keeping the addressing and discovery layer small allows it to interoperate cleanly with evolving application-layer protocols without forcing implementers to adopt opinionated vocabulary for concerns they do not have.</t>

</section>
<section anchor="planned-companions"><name>Planned Companion Specifications</name>

<t>The following are planned as separate companion specifications:</t>

<t><list style="symbols">
  <t><strong>Dynamic Agent Registry Protocol</strong>: A protocol for runtime agent registration and deregistration, enabling cloud-native environments with auto-scaling agents.</t>
  <t><strong>Local Agent Discovery Protocol</strong>: A standardized local-runtime discovery mechanism (the local equivalent of <spanx style="verb">/.well-known/agents.json</spanx>) for browsers, desktop runtimes, and embedded environments.</t>
  <t><strong>Binary Encoding (CBOR)</strong>: An <spanx style="verb">application/agent+cbor</spanx> media type for constrained IoT and edge environments requiring compact descriptor encoding.</t>
  <t><strong>JSON-LD Context for agent descriptors</strong>: A published context document mapping descriptor fields to stable IRIs for semantic interoperability.</t>
</list></t>

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

<t>This document requests the following IANA registrations.</t>

<section anchor="uri-scheme-registration-template"><name>URI Scheme Registration Template</name>

<t><list style="symbols">
  <t><strong>Scheme Name</strong>: <spanx style="verb">agent</spanx></t>
  <t><strong>Status</strong>: Provisional</t>
  <t><strong>Applications/Protocols That Use This Scheme</strong>:
The <spanx style="verb">agent</spanx> URI scheme identifies and enables discovery of autonomous or semi-autonomous software agents across systems. It provides a transport-agnostic addressing and discovery layer that complements communication protocols such as A2A, MCP, and ACP. The scheme is compatible with existing schemes such as <spanx style="verb">https</spanx> and <spanx style="verb">did</spanx> where appropriate.</t>
  <t><strong>Contact</strong>:
agent:// Specification Maintainers <eref target="mailto:iana@agent-uri.org">iana@agent-uri.org</eref></t>
  <t><strong>Change Controller</strong>:
The authors or a relevant standards body such as the IETF if adopted.</t>
  <t><strong>References</strong>:
This document (Internet-Draft): <em>agent:// Protocol -- A URI-Based Framework for Interoperable Agents</em>
<xref target="RFC3986"></xref> - Uniform Resource Identifier (URI): Generic Syntax
<xref target="RFC7595">RFC 7595</xref> - Guidelines and Registration Procedures for URI Schemes</t>
  <t><strong>URI Syntax</strong>:
The general form of an <spanx style="verb">agent</spanx> URI is:</t>
</list></t>

<figure><sourcecode type="txt"><![CDATA[
agent[+<protocol>]://<authority>/<path>[?<query>][#<fragment>]

]]></sourcecode></figure>

<t><list style="symbols">
  <t><strong>Related Registrations:</strong>
  <list style="symbols">
      <t>Well-Known URIs (<xref target="iana-well-known"></xref>): <spanx style="verb">/.well-known/agents.json</spanx></t>
      <t>Media Type (<xref target="iana-mediatype"></xref>): <spanx style="verb">application/agent+json</spanx></t>
      <t>Transport Bindings Registry (<xref target="iana-transport-registry"></xref>)</t>
      <t>Interaction Models Registry (<xref target="iana-interaction-registry"></xref>)</t>
    </list></t>
</list></t>

<t>Where:
- <spanx style="verb">authority</spanx> is typically a domain name or Decentralized Identifier (DID)
- <spanx style="verb">path</spanx> identifies the agent and optionally a skill
- <spanx style="verb">query</spanx> includes serialized key-value parameters
- <spanx style="verb">fragment</spanx> MAY reference a sub-skill or context
- The optional <spanx style="verb">+&lt;protocol&gt;</spanx> segment indicates an explicit transport binding (e.g., <spanx style="verb">agent+https://</spanx>)</t>

<t>Detailed ABNF is specified in <xref target="uri-abnf"></xref> of this document.</t>

<t><list style="symbols">
  <t><strong>Security Considerations</strong>:
The <spanx style="verb">agent</spanx> scheme does not introduce new transport-layer vulnerabilities but inherits risks from underlying protocols such as HTTP, WebSocket, gRPC, or local execution environments. Implementers are advised to apply standard authentication and authorization measures. See <xref target="security-and-privacy"></xref> for guidance.</t>
</list></t>

</section>
<section anchor="iana-well-known"><name>Well-Known URI Registrations</name>

<t>This document registers the following Well-Known URIs per <xref target="RFC8615">RFC 8615</xref>:</t>

<t><list style="numbers" type="1">
  <t><strong>URI Suffix:</strong> agents.json
<strong>Change Controller:</strong> The authors or IETF if adopted.
<strong>Status:</strong> provisional
<strong>Reference:</strong> This document.
<strong>Related Information:</strong> Provides a registry mapping of agent names to descriptor URLs. Both single-agent and multi-agent domains use this format. Accessible only via HTTPS.</t>
</list></t>

<t>Agent health and liveness signaling is intentionally NOT registered as a well-known URI. Deployments SHOULD use conventional health endpoints (<spanx style="verb">/health</spanx>, <spanx style="verb">/healthz</spanx>, <spanx style="verb">/readyz</spanx>), the <eref target="https://github.com/grpc/grpc/blob/master/doc/health-checking.md">gRPC Health Checking Protocol</eref> for gRPC transport, or <spanx style="verb">application/health+json</spanx> per <xref target="I-D.inadarei-api-health-check">draft-inadarei-api-health-check</xref>. Health-check output is dynamic and does not fit the static-discovery semantics of well-known URIs.</t>

</section>
<section anchor="iana-mediatype"><name>Media Type Registration for application/agent+json</name>

<t>Per <xref target="RFC6838">RFC 6838</xref>:</t>

<t>Type name: application
Subtype name: agent+json
Required parameters: none
Optional parameters: profile (a URI identifying a JSON-LD context document; follows <xref target="RFC6906">RFC 6906</xref>)
Encoding considerations: 8bit; uses UTF-8 encoded JSON
Security considerations: Carries metadata that can affect network routing and authorization; publishers SHOULD serve only over HTTPS and validate signatures or ETags.
Interoperability considerations: Compatible with JSON-LD 1.1 and plain JSON processors. The <spanx style="verb">+json</spanx> structured syntax suffix per RFC 6838 Section 4.2.8 allows generic JSON processors to parse the content.
Fragment identifier considerations: Fragment identifiers for <spanx style="verb">application/agent+json</spanx> documents follow <xref target="RFC6901">JSON Pointer</xref> syntax per RFC 6901. This differs from the semantic fragment use in <spanx style="verb">agent://</spanx> URIs (<xref target="uri-components"></xref>), which MAY identify a sub-skill or context; agent URI fragments are not evaluated against the descriptor document.
Published specification: This document
Applications that use this media type: Agent resolvers and runtimes using the <spanx style="verb">agent://</spanx> protocol.
Magic number(s): N/A
File extension(s): .agent.json
Macintosh file type code(s): N/A
Restrictions on usage: None
Additional information: None
Person &amp; email address to contact for further information: agent:// Specification Maintainers <eref target="mailto:iana@agent-uri.org">iana@agent-uri.org</eref>
Intended usage: COMMON
Author/Change controller: IETF if standardized; author for independent submissions.</t>

<t>The <spanx style="verb">profile</spanx> parameter usage follows the concept in <xref target="RFC6906">RFC 6906</xref> (Profiles), and media type registration procedures follow <xref target="RFC6838">RFC 6838</xref>.</t>

</section>
<section anchor="iana-transport-registry"><name>Transport Bindings Registry</name>

<t>This document establishes a new IANA registry: "Agent URI Transport Bindings".</t>

<t><list style="symbols">
  <t><strong>Registration Procedure</strong>: Specification Required</t>
  <t><strong>Reference</strong>: This document</t>
</list></t>

<t>Each entry MUST specify:</t>

<t><list style="symbols">
  <t><strong>Protocol identifier</strong> (e.g., <spanx style="verb">https</spanx>, <spanx style="verb">grpc</spanx>)</t>
  <t><strong>URI format</strong> (the full <spanx style="verb">agent+&lt;protocol&gt;://</spanx> scheme form)</t>
  <t><strong>Connection mechanism</strong> (how a session is established)</t>
  <t><strong>Message framing</strong> (the wire-level payload structure)</t>
  <t><strong>Error signaling</strong> (how errors are communicated on this transport)</t>
  <t><strong>Specification reference</strong> (a stable normative document)</t>
</list></t>

<t>Initial entries:</t>

<texttable title="Initial Transport Bindings Registry" anchor="tab-transport-registry">
      <ttcol align='left'>Protocol</ttcol>
      <ttcol align='left'>Format</ttcol>
      <ttcol align='left'>Connection</ttcol>
      <ttcol align='left'>Framing</ttcol>
      <ttcol align='left'>Error Signaling</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>https</c>
      <c><spanx style="verb">agent+https://</spanx></c>
      <c>HTTPS</c>
      <c>HTTP req/resp</c>
      <c>HTTP status + 9457</c>
      <c><xref target="RFC9110">RFC 9110</xref></c>
      <c>wss</c>
      <c><spanx style="verb">agent+wss://</spanx></c>
      <c>WS handshake</c>
      <c>NDJSON</c>
      <c>JSON error</c>
      <c><xref target="RFC6455">RFC 6455</xref></c>
      <c>grpc</c>
      <c><spanx style="verb">agent+grpc://</spanx></c>
      <c>HTTP/2 + TLS</c>
      <c>Protobuf</c>
      <c>gRPC status codes</c>
      <c><xref target="gRPC"></xref></c>
      <c>mqtt</c>
      <c><spanx style="verb">agent+mqtt://</spanx></c>
      <c>MQTT 5.0</c>
      <c>JSON over topics</c>
      <c>MQTT reason codes</c>
      <c><xref target="MQTT">MQTT 5.0</xref></c>
      <c>local</c>
      <c><spanx style="verb">agent+local://</spanx></c>
      <c>IPC (impl.)</c>
      <c>JSON</c>
      <c>JSON error</c>
      <c>This document</c>
      <c>unix</c>
      <c><spanx style="verb">agent+unix://</spanx></c>
      <c>Unix socket</c>
      <c>NDJSON</c>
      <c>JSON error</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="iana-interaction-registry"><name>Interaction Models Registry</name>

<t>This document establishes a new IANA registry: "Agent Interaction Models".</t>

<t><list style="symbols">
  <t><strong>Registration Procedure</strong>: Expert Review</t>
  <t><strong>Reference</strong>: This document</t>
</list></t>

<t>Initial entries:</t>

<texttable title="Initial Interaction Models Registry" anchor="tab-interaction-registry">
      <ttcol align='left'>Model</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>agent2agent</c>
      <c><xref target="Agent2Agent"></xref></c>
      <c>mcp</c>
      <c><xref target="MCP"></xref></c>
      <c>fipa-acl</c>
      <c><xref target="FIPA-ACL"></xref></c>
      <c>openapi</c>
      <c><xref target="OPENAPI-3.1">OpenAPI</xref></c>
</texttable>

<t>This specification does NOT register new HTTP header fields. Version negotiation uses the standard <spanx style="verb">Accept; profile=</spanx> parameter per <xref target="RFC6906">RFC 6906</xref>. Trace correlation uses <xref target="W3C-TRACE-CONTEXT">W3C Trace Context</xref> (<spanx style="verb">traceparent</spanx>, <spanx style="verb">tracestate</spanx>). Session and task correlation use <xref target="W3C-BAGGAGE">W3C Baggage</xref>. Delegation tokens use the standard <spanx style="verb">Authorization</spanx> header per <xref target="RFC6750">RFC 6750</xref>. Idempotency uses <spanx style="verb">Idempotency-Key</spanx> per <xref target="I-D.ietf-httpapi-idempotency-key-header">draft-ietf-httpapi-idempotency-key-header</xref>. Rate limits use <spanx style="verb">RateLimit</spanx> and <spanx style="verb">RateLimit-Policy</spanx> per <xref target="I-D.ietf-httpapi-ratelimit-headers">draft-ietf-httpapi-ratelimit-headers</xref>.</t>

</section>
</section>
<section anchor="example-agent-descriptor"><name>Appendix A. Example Agent Descriptor</name>

<t>Following is an example of a complete agent descriptor. Note that <spanx style="verb">input</spanx> and <spanx style="verb">output</spanx> fields use JSON Schema format:</t>

<figure title="Example Agent Descriptor" anchor="fig-agent-descriptor"><sourcecode type="json"><![CDATA[
{
  "name": "planner.example.com",
  "description": "Agent helps in researching & planning itineraries",
  "url": "agent://planner.example.com/",
  "status": "active",
  "conformanceLevel": 3,
  "environment": "production",
  "provider": {
    "organization": "Example AI Org",
    "url": "https://example.com"
  },
  "documentationUrl": "https://planner.example.com/docs",
  "interactionModel": ["agent2agent", "mcp"],
  "version": "3.1.4",
  "supportedVersions": {
    "3.0.0": "/v3/",
    "2.1.2": "/olderversion/v2.1.2/"
  },
  "transport": {
    "endpoint": "https://planner.example.com/api",
    "https": "https://planner.example.com/api",
    "wss": "wss://planner.example.com/ws"
  },
  "skills": [
    {
      "id": "gen-iti",
      "name": "Generate Itinerary",
      "version": "2.1.5",
      "description": "Creates a travel itinerary for a given city.",
      "tags": ["travel", "planning"],
      "input": {
        "type": "object",
        "properties": { "city": { "type": "string" } },
        "required": ["city"]
      },
      "output": {
        "type": "object",
        "properties": { "itinerary": { "type": "array" } }
      },
      "streaming": true,
      "streamingFormat": "sse",
      "idempotent": true,
      "contentTypes": {
        "accepts": ["application/json", "application/ld+json"],
        "produces": ["application/json"]
      },
      "depends": [
        {
          "uri": "agent://translator.example.com/translate",
          "relation": "invokes",
          "versionConstraint": "^2.0.0"
        }
      ]
    }
  ],
  "authentication": {
    "schemes": ["Bearer"],
    "authorizationServer": "https://auth.example.com",
    "protectedResourceMetadata": "https://planner.example.com/.well-known/oauth-protected-resource"
  }
}

]]></sourcecode></figure>

<t>Descriptors MAY additionally include a JSON-LD <spanx style="verb">@context</spanx> field to support semantic querying and graph-based processing. When present, a published JSON-LD context document SHOULD be available at the referenced URL.</t>

</section>
<section anchor="use-cases"><name>Appendix B. Use Cases</name>

<t><list style="symbols">
  <t>Coordinating tasks across agents from different vendors</t>
  <t>Enabling discovery and invocation in agent marketplaces</t>
  <t>Facilitating human-in-the-loop workflows with agent transparency</t>
  <t>Building knowledge-based agents that invoke retrieval agents</t>
  <t>Real-time collaboration among specialized agents</t>
  <t>Browser-to-local-agent delegation for privileged operations and desktop automation</t>
  <t>Consistent addressing for agents across network boundaries and security contexts</t>
  <t>High-performance agent-to-agent communication via gRPC transport</t>
  <t>IoT and edge agent networks using MQTT transport</t>
</list></t>

</section>
<section anchor="reference-implementation"><name>Appendix C. Reference Implementation</name>

<t>A reference implementation of the <spanx style="verb">agent://</spanx> protocol is available to guide implementers, demonstrating the following functionalities:</t>

<t><list style="symbols">
  <t>URI parsing and resolution (<spanx style="verb">agents.json</spanx>, <spanx style="verb">.well-known</spanx> endpoints)</t>
  <t>Transport bindings including HTTPS, WebSocket, gRPC, MQTT, and Local IPC</t>
  <t>Agent descriptor discovery, caching, and validation</t>
  <t>OAuth 2.0 Token Exchange (RFC 8693) act-claim delegation examples</t>
  <t>Error handling, payload negotiation, and versioning patterns</t>
  <t>Security examples covering OAuth2, JWT, and mutual TLS (mTLS)</t>
</list></t>

<t>The implementation is open-source and maintained at:</t>

<t><xref target="AGENT-URI-REPO">agent-uri reference implementation</xref></t>

<t>Implementers are encouraged to use this as a starting point or reference during their implementation efforts.</t>

</section>
<section anchor="appendix-json-schema"><name>Appendix D. Normative JSON Schema</name>

<t>The normative JSON Schema for agent descriptors is available at:</t>

<figure><artwork><![CDATA[
https://agent-uri.org/schemas/agent-descriptor.schema.json
]]></artwork></figure>

<t>A copy is included in the reference implementation repository under <spanx style="verb">docs/rfc/schemas/agent-descriptor.schema.json</spanx>. See <xref target="descriptor-schema"></xref> for a prose description of required, recommended, and optional fields.</t>

<t>A JSON Schema for the <spanx style="verb">agents.json</spanx> registry format is also provided at <spanx style="verb">docs/rfc/schemas/agents-registry.schema.json</spanx>.</t>

</section>
<section anchor="appendix-conformance"><name>Appendix E. Conformance Level Requirements</name>

<t>Detailed requirements per conformance level:</t>

<t><strong>Level 0 (Direct Invocation):</strong></t>

<t><list style="symbols">
  <t>MUST support parsing <spanx style="verb">agent+&lt;protocol&gt;://</spanx> URIs</t>
  <t>MUST support at least one transport binding (typically HTTPS)</t>
  <t>No descriptor or resolution infrastructure required</t>
</list></t>

<t><strong>Level 1 (Discoverable):</strong></t>

<t><list style="symbols">
  <t>All Level 0 requirements</t>
  <t>MUST publish <spanx style="verb">/.well-known/agents.json</spanx> with at least one agent entry</t>
  <t>Agent descriptors MUST include the required fields: <spanx style="verb">name</spanx>, <spanx style="verb">version</spanx>, <spanx style="verb">skills</spanx></t>
</list></t>

<t><strong>Level 2 (Resolvable):</strong></t>

<t><list style="symbols">
  <t>All Level 1 requirements</t>
  <t>MUST implement the resolution algorithm (<xref target="resolution-algorithm"></xref>)</t>
  <t>MUST respect <spanx style="verb">Cache-Control</spanx> headers on descriptor responses</t>
  <t>SHOULD support conditional requests (<spanx style="verb">If-None-Match</spanx>, <spanx style="verb">If-Modified-Since</spanx>)</t>
  <t>MAY support multiple transport bindings</t>
</list></t>

<t><strong>Level 3 (Full):</strong></t>

<t><list style="symbols">
  <t>All Level 2 requirements</t>
  <t>Descriptors SHOULD include recommended fields (<spanx style="verb">description</spanx>, <spanx style="verb">url</spanx>, <spanx style="verb">transport</spanx>, <spanx style="verb">authentication</spanx>, <spanx style="verb">provider</spanx>)</t>
  <t>SHOULD support version negotiation via <spanx style="verb">Accept: application/agent+json; profile="..."</spanx> per <xref target="RFC6906">RFC 6906</xref></t>
  <t>MAY sign descriptors via HTTP Message Signatures (<xref target="RFC9421">RFC 9421</xref>)</t>
  <t>MAY carry delegation via OAuth 2.0 Token Exchange nested <spanx style="verb">act</spanx> claim per <xref target="RFC8693">RFC 8693</xref></t>
</list></t>

</section>
<section anchor="appendix-quickstart"><name>Appendix F. Quick-Start Guide</name>

<section anchor="minimal-agent-setup-level-1"><name>Minimal Agent Setup (Level 1)</name>

<t><strong>Step 1:</strong> Create an agent descriptor file (<spanx style="verb">agent.json</spanx>):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "name": "my-agent",
  "version": "1.0.0",
  "skills": [
    {
      "id": "hello",
      "name": "Hello",
      "description": "Returns a greeting"
    }
  ]
}

]]></sourcecode></figure>

<t><strong>Step 2:</strong> Create <spanx style="verb">/.well-known/agents.json</spanx> on your domain:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "agents": {
    "my-agent": "https://example.com/my-agent/agent.json"
  }
}

]]></sourcecode></figure>

<t><strong>Step 3:</strong> Serve the agent descriptor at the URL referenced above.</t>

<t><strong>Step 4:</strong> Clients can now discover your agent:</t>

<figure><artwork><![CDATA[
# Resolve the agent
GET https://example.com/.well-known/agents.json

# Fetch the descriptor
GET https://example.com/my-agent/agent.json

# Invoke the skill
POST https://example.com/my-agent/hello
Content-Type: application/json

{"name": "World"}
]]></artwork></figure>

<t>Using the reference implementation:</t>

<figure><sourcecode type="python"><![CDATA[
from agent_uri import AgentClient

client = AgentClient()
result = client.invoke("agent://example.com/my-agent/hello", params={"name": "World"})
]]></sourcecode></figure>

</section>
</section>
<section anchor="appendix-comparison"><name>Appendix G. Comparison with Related Protocols</name>

<section anchor="agent-vs-https-openapi"><name>agent:// vs HTTPS + OpenAPI</name>

<t><xref target="OPENAPI-3.1">OpenAPI</xref> describes REST APIs. <spanx style="verb">agent://</spanx> adds agent identity signaling (the scheme itself says "this is an agent") and transport abstraction (the same URI can resolve to HTTPS, gRPC, or local IPC). The two layers are complementary: a skill's invocation surface MAY be described in OpenAPI and referenced from the descriptor.</t>

</section>
<section anchor="agent-vs-agent2agent-a2a"><name>agent:// vs Agent2Agent (A2A)</name>

<t><xref target="Agent2Agent">A2A</xref> (by Google) defines a communication protocol for agent-to-agent interaction with task lifecycle management, streaming, and push notifications. <spanx style="verb">agent://</spanx> complements A2A by providing the addressing and discovery layer: the descriptor's <spanx style="verb">skills</spanx> array aligns with AgentCard's <spanx style="verb">skills</spanx>, enabling bidirectional mapping; the <spanx style="verb">interactionModel</spanx> array signals A2A compatibility.</t>

</section>
<section anchor="agent-vs-model-context-protocol-mcp"><name>agent:// vs Model Context Protocol (MCP)</name>

<t>MCP (by Anthropic) defines how language models access tools, resources, and prompts. <spanx style="verb">agent://</spanx> operates at a different layer: it addresses agents rather than tools. An agent may internally use MCP to access tools, while being addressable via <spanx style="verb">agent://</spanx> and communicating with other agents via A2A.</t>

</section>
<section anchor="agent-vs-agent-communication-protocol-acp"><name>agent:// vs Agent Communication Protocol (ACP)</name>

<t><xref target="ACP"></xref> (by IBM/BeeAI) focuses on standardized agent-to-agent message exchange. Like A2A, it defines communication semantics. <spanx style="verb">agent://</spanx> provides the addressing and discovery layer that enables clients and agents to find ACP-compatible agents in the first place.</t>

</section>
</section>
<section numbered="false" anchor="acknowledgements"><name>Acknowledgements</name>

<t>This draft reflects observations and aspirations drawn from emerging agent ecosystems. It builds on publicly available research, community discussions, and early experimentation with agent-oriented protocols. The authors thank all contributors and reviewers who have provided feedback across previous drafts. It is intended as a foundation for future refinement and collaboration.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC3986">
  <front>
    <title>Uniform Resource Identifier (URI): Generic Syntax</title>
    <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <author fullname="L. Masinter" initials="L." surname="Masinter"/>
    <date month="January" year="2005"/>
    <abstract>
      <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="66"/>
  <seriesInfo name="RFC" value="3986"/>
  <seriesInfo name="DOI" value="10.17487/RFC3986"/>
</reference>
<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="RFC5234">
  <front>
    <title>Augmented BNF for Syntax Specifications: ABNF</title>
    <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
    <author fullname="P. Overell" initials="P." surname="Overell"/>
    <date month="January" year="2008"/>
    <abstract>
      <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="68"/>
  <seriesInfo name="RFC" value="5234"/>
  <seriesInfo name="DOI" value="10.17487/RFC5234"/>
</reference>
<reference anchor="RFC6750">
  <front>
    <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="D. Hardt" initials="D." surname="Hardt"/>
    <date month="October" year="2012"/>
    <abstract>
      <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6750"/>
  <seriesInfo name="DOI" value="10.17487/RFC6750"/>
</reference>
<reference anchor="RFC6838">
  <front>
    <title>Media Type Specifications and Registration Procedures</title>
    <author fullname="N. Freed" initials="N." surname="Freed"/>
    <author fullname="J. Klensin" initials="J." surname="Klensin"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="January" year="2013"/>
    <abstract>
      <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="13"/>
  <seriesInfo name="RFC" value="6838"/>
  <seriesInfo name="DOI" value="10.17487/RFC6838"/>
</reference>
<reference anchor="RFC6906">
  <front>
    <title>The 'profile' Link Relation Type</title>
    <author fullname="E. Wilde" initials="E." surname="Wilde"/>
    <date month="March" year="2013"/>
    <abstract>
      <t>This specification defines the 'profile' link relation type that allows resource representations to indicate that they are following one or more profiles. A profile is defined not to alter the semantics of the resource representation itself, but to allow clients to learn about additional semantics (constraints, conventions, extensions) that are associated with the resource representation, in addition to those defined by the media type and possibly other mechanisms.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6906"/>
  <seriesInfo name="DOI" value="10.17487/RFC6906"/>
</reference>
<reference anchor="RFC7519">
  <front>
    <title>JSON Web Token (JWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7519"/>
  <seriesInfo name="DOI" value="10.17487/RFC7519"/>
</reference>
<reference anchor="RFC7595">
  <front>
    <title>Guidelines and Registration Procedures for URI Schemes</title>
    <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <author fullname="T. Hardie" initials="T." surname="Hardie"/>
    <date month="June" year="2015"/>
    <abstract>
      <t>This document updates the guidelines and recommendations, as well as the IANA registration processes, for the definition of Uniform Resource Identifier (URI) schemes. It obsoletes RFC 4395.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="35"/>
  <seriesInfo name="RFC" value="7595"/>
  <seriesInfo name="DOI" value="10.17487/RFC7595"/>
</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="RFC8414">
  <front>
    <title>OAuth 2.0 Authorization Server Metadata</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <date month="June" year="2018"/>
    <abstract>
      <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8414"/>
  <seriesInfo name="DOI" value="10.17487/RFC8414"/>
</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="RFC8725">
  <front>
    <title>JSON Web Token Best Current Practices</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="D. Hardt" initials="D." surname="Hardt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="225"/>
  <seriesInfo name="RFC" value="8725"/>
  <seriesInfo name="DOI" value="10.17487/RFC8725"/>
</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>
<reference anchor="RFC9111">
  <front>
    <title>HTTP Caching</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 defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
      <t>This document obsoletes RFC 7234.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="98"/>
  <seriesInfo name="RFC" value="9111"/>
  <seriesInfo name="DOI" value="10.17487/RFC9111"/>
</reference>
<reference anchor="RFC9421">
  <front>
    <title>HTTP Message Signatures</title>
    <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <author fullname="M. Sporny" initials="M." surname="Sporny"/>
    <date month="February" year="2024"/>
    <abstract>
      <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9421"/>
  <seriesInfo name="DOI" value="10.17487/RFC9421"/>
</reference>
<reference anchor="RFC9457">
  <front>
    <title>Problem Details for HTTP APIs</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="E. Wilde" initials="E." surname="Wilde"/>
    <author fullname="S. Dalal" initials="S." surname="Dalal"/>
    <date month="July" year="2023"/>
    <abstract>
      <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
      <t>This document obsoletes RFC 7807.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9457"/>
  <seriesInfo name="DOI" value="10.17487/RFC9457"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC6455">
  <front>
    <title>The WebSocket Protocol</title>
    <author fullname="I. Fette" initials="I." surname="Fette"/>
    <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
    <date month="December" year="2011"/>
    <abstract>
      <t>The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code. The security model used for this is the origin-based security model commonly used by web browsers. The protocol consists of an opening handshake followed by basic message framing, layered over TCP. The goal of this technology is to provide a mechanism for browser-based applications that need two-way communication with servers that does not rely on opening multiple HTTP connections (e.g., using XMLHttpRequest or s and long polling). [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6455"/>
  <seriesInfo name="DOI" value="10.17487/RFC6455"/>
</reference>
<reference anchor="RFC6648">
  <front>
    <title>Deprecating the "X-" Prefix and Similar Constructs in Application Protocols</title>
    <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
    <author fullname="D. Crocker" initials="D." surname="Crocker"/>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="June" year="2012"/>
    <abstract>
      <t>Historically, designers and implementers of application protocols have often distinguished between standardized and unstandardized parameters by prefixing the names of unstandardized parameters with the string "X-" or similar constructs. In practice, that convention causes more problems than it solves. Therefore, this document deprecates the convention for newly defined parameters with textual (as opposed to numerical) names in application protocols. This memo documents an Internet Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="178"/>
  <seriesInfo name="RFC" value="6648"/>
  <seriesInfo name="DOI" value="10.17487/RFC6648"/>
</reference>
<reference anchor="RFC6901">
  <front>
    <title>JavaScript Object Notation (JSON) Pointer</title>
    <author fullname="P. Bryan" initials="P." role="editor" surname="Bryan"/>
    <author fullname="K. Zyp" initials="K." surname="Zyp"/>
    <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
    <date month="April" year="2013"/>
    <abstract>
      <t>JSON Pointer defines a string syntax for identifying a specific value within a JavaScript Object Notation (JSON) document.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6901"/>
  <seriesInfo name="DOI" value="10.17487/RFC6901"/>
</reference>
<reference anchor="RFC7033">
  <front>
    <title>WebFinger</title>
    <author fullname="P. Jones" initials="P." surname="Jones"/>
    <author fullname="G. Salgueiro" initials="G." surname="Salgueiro"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Smarr" initials="J." surname="Smarr"/>
    <date month="September" year="2013"/>
    <abstract>
      <t>This specification defines the WebFinger protocol, which can be used to discover information about people or other entities on the Internet using standard HTTP methods. WebFinger discovers information for a URI that might not be usable as a locator otherwise, such as account or email URIs.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7033"/>
  <seriesInfo name="DOI" value="10.17487/RFC7033"/>
</reference>
<reference anchor="RFC7515">
  <front>
    <title>JSON Web Signature (JWS)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7515"/>
  <seriesInfo name="DOI" value="10.17487/RFC7515"/>
</reference>
<reference anchor="RFC7517">
  <front>
    <title>JSON Web Key (JWK)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7517"/>
  <seriesInfo name="DOI" value="10.17487/RFC7517"/>
</reference>
<reference anchor="RFC8594">
  <front>
    <title>The Sunset HTTP Header Field</title>
    <author fullname="E. Wilde" initials="E." surname="Wilde"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This specification defines the Sunset HTTP response header field, which indicates that a URI is likely to become unresponsive at a specified point in the future. It also defines a sunset link relation type that allows linking to resources providing information about an upcoming resource or service sunset.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8594"/>
  <seriesInfo name="DOI" value="10.17487/RFC8594"/>
</reference>
<reference anchor="RFC8693">
  <front>
    <title>OAuth 2.0 Token Exchange</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
    <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
    <date month="January" year="2020"/>
    <abstract>
      <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8693"/>
  <seriesInfo name="DOI" value="10.17487/RFC8693"/>
</reference>
<reference anchor="RFC8705">
  <front>
    <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>This document describes OAuth client authentication and certificate-bound access and refresh tokens using mutual Transport Layer Security (TLS) authentication with X.509 certificates. OAuth clients are provided a mechanism for authentication to the authorization server using mutual TLS, based on either self-signed certificates or public key infrastructure (PKI). OAuth authorization servers are provided a mechanism for binding access tokens to a client's mutual-TLS certificate, and OAuth protected resources are provided a method for ensuring that such an access token presented to it was issued to the client presenting the token.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8705"/>
  <seriesInfo name="DOI" value="10.17487/RFC8705"/>
</reference>
<reference anchor="RFC8785">
  <front>
    <title>JSON Canonicalization Scheme (JCS)</title>
    <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
    <author fullname="B. Jordan" initials="B." surname="Jordan"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
      <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8785"/>
  <seriesInfo name="DOI" value="10.17487/RFC8785"/>
</reference>
<reference anchor="RFC9068">
  <front>
    <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
    <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
    <date month="October" year="2021"/>
    <abstract>
      <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9068"/>
  <seriesInfo name="DOI" value="10.17487/RFC9068"/>
</reference>
<reference anchor="RFC9530">
  <front>
    <title>Digest Fields</title>
    <author fullname="R. Polli" initials="R." surname="Polli"/>
    <author fullname="L. Pardue" initials="L." surname="Pardue"/>
    <date month="February" year="2024"/>
    <abstract>
      <t>This document defines HTTP fields that support integrity digests. The Content-Digest field can be used for the integrity of HTTP message content. The Repr-Digest field can be used for the integrity of HTTP representations. Want-Content-Digest and Want-Repr-Digest can be used to indicate a sender's interest and preferences for receiving the respective Integrity fields.</t>
      <t>This document obsoletes RFC 3230 and the Digest and Want-Digest HTTP fields.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9530"/>
  <seriesInfo name="DOI" value="10.17487/RFC9530"/>
</reference>
<reference anchor="RFC9728">
  <front>
    <title>OAuth 2.0 Protected Resource Metadata</title>
    <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
    <author fullname="P. Hunt" initials="P." surname="Hunt"/>
    <author fullname="A. Parecki" initials="A." surname="Parecki"/>
    <date month="April" year="2025"/>
    <abstract>
      <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9728"/>
  <seriesInfo name="DOI" value="10.17487/RFC9728"/>
</reference>

<reference anchor="OPENAPI-3.1" target="https://spec.openapis.org/oas/latest.html">
  <front>
    <title>OpenAPI Specification v3.1.0</title>
    <author initials="" surname="OpenAPI Initiative">
      <organization></organization>
    </author>
    <date year="2024" month="October"/>
  </front>
</reference>
<reference anchor="W3C-BAGGAGE" target="https://www.w3.org/TR/baggage/">
  <front>
    <title>Baggage - W3C Candidate Recommendation</title>
    <author initials="" surname="W3C Distributed Tracing Working Group">
      <organization></organization>
    </author>
    <date year="2024"/>
  </front>
  <seriesInfo name="W3C" value="Candidate Recommendation"/>
</reference>
<reference anchor="OTEL-GENAI" target="https://opentelemetry.io/docs/specs/semconv/gen-ai/">
  <front>
    <title>OpenTelemetry Semantic Conventions for Generative AI Systems</title>
    <author initials="" surname="OpenTelemetry Authors">
      <organization></organization>
    </author>
    <date year="2025"/>
  </front>
</reference>
<reference anchor="I-D.ietf-httpapi-ratelimit-headers" target="https://datatracker.ietf.org/doc/draft-ietf-httpapi-ratelimit-headers/">
  <front>
    <title>RateLimit header fields for HTTP</title>
    <author initials="R." surname="Polli">
      <organization></organization>
    </author>
    <author initials="A." surname="Martinez">
      <organization></organization>
    </author>
    <date year="2025"/>
  </front>
</reference>
<reference anchor="I-D.ietf-httpapi-idempotency-key-header" target="https://datatracker.ietf.org/doc/draft-ietf-httpapi-idempotency-key-header/">
  <front>
    <title>The Idempotency-Key HTTP Header Field</title>
    <author initials="J." surname="Young">
      <organization></organization>
    </author>
    <date year="2024"/>
  </front>
</reference>
<reference anchor="I-D.inadarei-api-health-check" target="https://datatracker.ietf.org/doc/draft-inadarei-api-health-check/">
  <front>
    <title>Health Check Response Format for HTTP APIs</title>
    <author initials="I." surname="Nadareishvili">
      <organization></organization>
    </author>
    <date year="2024"/>
  </front>
</reference>
<reference anchor="JSON-LD11" target="https://www.w3.org/TR/json-ld11/">
  <front>
    <title>JSON-LD 1.1: A JSON-based Serialization for Linked Data</title>
    <author initials="M." surname="Sporny">
      <organization></organization>
    </author>
    <author initials="D." surname="Longley">
      <organization></organization>
    </author>
    <author initials="G." surname="Kellogg">
      <organization></organization>
    </author>
    <author initials="M." surname="Lanthaler">
      <organization></organization>
    </author>
    <author initials="P." surname="Champin">
      <organization></organization>
    </author>
    <author initials="N." surname="Lindstrom">
      <organization></organization>
    </author>
    <date year="2020" month="July"/>
  </front>
  <seriesInfo name="W3C" value="Recommendation"/>
</reference>
<reference anchor="DID-CORE" target="https://www.w3.org/TR/did-core/">
  <front>
    <title>Decentralized Identifiers (DIDs) v1.0</title>
    <author initials="M." surname="Sporny">
      <organization></organization>
    </author>
    <author initials="D." surname="Longley">
      <organization></organization>
    </author>
    <author initials="M." surname="Sabadello">
      <organization></organization>
    </author>
    <author initials="D." surname="Reed">
      <organization></organization>
    </author>
    <author initials="O." surname="Steele">
      <organization></organization>
    </author>
    <author initials="C." surname="Allen">
      <organization></organization>
    </author>
    <date year="2022" month="July"/>
  </front>
  <seriesInfo name="W3C" value="Recommendation"/>
</reference>
<reference anchor="W3C-TRACE-CONTEXT" target="https://www.w3.org/TR/trace-context/">
  <front>
    <title>Trace Context - W3C Recommendation</title>
    <author initials="" surname="W3C Distributed Tracing Working Group">
      <organization></organization>
    </author>
    <date year="2025" month="April"/>
  </front>
  <seriesInfo name="W3C" value="Recommendation"/>
</reference>
<reference anchor="SemVer" target="https://semver.org/">
  <front>
    <title>Semantic Versioning 2.0.0</title>
    <author initials="T." surname="Preston-Werner">
      <organization></organization>
    </author>
    <date year="2013"/>
  </front>
</reference>
<reference anchor="Agent2Agent" target="https://github.com/google/A2A">
  <front>
    <title>Agent2Agent Protocol</title>
    <author initials="" surname="Google LLC">
      <organization></organization>
    </author>
    <date year="2025" month="April"/>
  </front>
</reference>
<reference anchor="AgentCard" target="https://github.com/google/A2A/blob/main/specification/json/a2a.json">
  <front>
    <title>Agent Card Schema from Agent2Agent Protocol</title>
    <author initials="" surname="Google LLC">
      <organization></organization>
    </author>
    <date year="2025" month="April"/>
  </front>
</reference>
<reference anchor="MCP" target="https://modelcontextprotocol.io/specification/">
  <front>
    <title>Model Context Protocol (MCP)</title>
    <author initials="" surname="Anthropic PBC">
      <organization></organization>
    </author>
    <date year="2025" month="March"/>
  </front>
</reference>
<reference anchor="LangChain" target="https://python.langchain.com/v0.3/docs/">
  <front>
    <title>LangChain Documentation</title>
    <author initials="" surname="LangChain Team">
      <organization></organization>
    </author>
    <date year="2024"/>
  </front>
</reference>
<reference anchor="SemanticKernel" target="https://github.com/microsoft/semantic-kernel">
  <front>
    <title>Semantic Kernel SDK</title>
    <author initials="" surname="Microsoft">
      <organization></organization>
    </author>
    <date year="2024"/>
  </front>
</reference>
<reference anchor="AutoGen" target="https://microsoft.github.io/autogen/">
  <front>
    <title>AutoGen: Enabling LLM Applications with Multi-Agent Conversations</title>
    <author initials="" surname="Microsoft Research">
      <organization></organization>
    </author>
    <date year="2024"/>
  </front>
</reference>
<reference anchor="JSON-RPC" target="https://www.jsonrpc.org/specification">
  <front>
    <title>JSON-RPC 2.0 Specification</title>
    <author initials="" surname="JSON-RPC Working Group">
      <organization></organization>
    </author>
    <date year="2013" month="January" day="04"/>
  </front>
</reference>
<reference anchor="gRPC" target="https://grpc.io/docs/">
  <front>
    <title>gRPC: A High Performance, Open Source Universal RPC Framework</title>
    <author initials="" surname="Cloud Native Computing Foundation">
      <organization></organization>
    </author>
    <date year="2024"/>
  </front>
</reference>
<reference anchor="MQTT" target="https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html">
  <front>
    <title>MQTT Version 5.0 - OASIS Standard</title>
    <author initials="" surname="OASIS">
      <organization></organization>
    </author>
    <date year="2019" month="March"/>
  </front>
</reference>
<reference anchor="ACP" target="https://github.com/i-am-bee/beeai-platform">
  <front>
    <title>Agent Communication Protocol</title>
    <author initials="" surname="IBM / BeeAI">
      <organization></organization>
    </author>
    <date year="2025"/>
  </front>
</reference>
<reference anchor="FIPA-ACL" target="http://www.fipa.org/specs/fipa00061/SC00061G.html">
  <front>
    <title>FIPA ACL Message Structure Specification</title>
    <author initials="" surname="Foundation for Intelligent Physical Agents">
      <organization></organization>
    </author>
    <date year="2002"/>
  </front>
</reference>
<reference anchor="FIPA-CNP" target="http://www.fipa.org/specs/fipa00029/SC00029H.html">
  <front>
    <title>FIPA Contract Net Interaction Protocol Specification</title>
    <author initials="" surname="Foundation for Intelligent Physical Agents">
      <organization></organization>
    </author>
    <date year="2002"/>
  </front>
</reference>
<reference anchor="AGENT-URI-REPO" target="https://github.com/agent-uri/agent-uri">
  <front>
    <title>Agent URI Protocol Reference Implementation</title>
    <author initials="Y." surname="Narvaneni">
      <organization></organization>
    </author>
    <author initials="S. P." surname="Ravi">
      <organization></organization>
    </author>
    <date year="2025"/>
  </front>
</reference>


    </references>

</references>



  </back>

<!-- ##markdown-source:
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

-->

</rfc>

