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


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

]>


<rfc ipr="trust200902" docName="draft-narvaneni-agent-uri-01" 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>

    <date year="2025" month="April" day="21"/>

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

    <abstract>


<?line 172?>

<t>This document defines the <spanx style="verb">agent://</spanx> protocol, a URI template-based framework as described in RFC 6570 for addressing, invoking, and interoperating with autonomous and semi-autonomous software agents. It introduces a layered architecture that supports minimal implementations (addressing and transport) and extensible features (capability discovery, contracts, orchestration). The protocol aims to foster interoperability among agents across ecosystems, platforms, and modalities, enabling composable and collaborative intelligent systems.</t>



    </abstract>



  </front>

  <middle>


<?line 176?>

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

<t>The rise of intelligent software agents necessitates a standardized way to identify, invoke, and coordinate them across diverse platforms. While protocols like <xref target="RFC9110">HTTP</xref> provide a transport mechanism for static APIs, agents differ significantly in behavior, output variability, and interaction patterns. The <spanx style="verb">agent://</spanx> proposes a URI scheme and resolution model designed to complement existing agent communication protocols and libraries like <xref target="Agent2Agent"></xref>, <xref target="FIPA-ACL"></xref>, <xref target="FIPA-CNP">Contract Net Protocol</xref>, <xref target="LangChain"></xref>, <xref target="MCP">Model Context Protocol</xref>, <xref target="AutoGen"></xref>, <xref target="SemanticKernel"></xref> etc. It serves as an addressing and discovery layer that works alongside these communication protocol.</t>

<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>

<t>This flexibility addresses a critical gap in current agent ecosystems, enabling applications (including browsers) to discover and invoke agents consistently regardless of where they're hosted. By providing standardized URI<xref target="RFC6570"></xref> patterns for both remote and local agents, the protocol simplifies previously complex integration scenarios like browser-to-local-agent delegation for privileged operations.</t>

<figure title="Agent Protocol Stack Architecture" anchor="fig-protocol-stack"><artwork><![CDATA[
+------------------+
| Agent Applications|
+------------------+
       <-> 
+------------------+
|   agent:// URI   | <- Addressing, Resolution, Discovery
+------------------+
       <-> 
+------------------+  +------------------+
|  Agent2Agent     |  |    CNP,. etc     | <- Communication Protocols
+------------------+  +------------------+
        <->                   <-> 
+------------------+  +------------------+
| Transport Layer  |  | Transport Layer  | <- HTTP, WebSockets, etc.
+------------------+  +------------------+
]]></artwork></figure>

<t>The <spanx style="verb">agent://</spanx> protocol supports:</t>

<t><list style="symbols">
  <t>Unique and resolvable addressing of agents</t>
  <t>Optional self-describing capabilities</t>
  <t>Consistent invocation semantics over existing transports</t>
  <t>Progressive support for advanced patterns like delegation, collaboration, and orchestration</t>
</list></t>

<t>This document outlines the specification for the <spanx style="verb">agent://</spanx> protocol, beginning with its URI scheme and extending through capability description, transport bindings, and extensibility patterns.</t>

<t>A reference implementation of the <spanx style="verb">agent://</spanx> protocol is available to demonstrate resolution, transport bindings, capability discovery, and orchestration patterns. Implementers and adopters can find this example implementation at: <xref target="AGENT-URI-REPO"></xref></t>

</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 (agent.json)</strong>: A machine-readable document that describes an agent's identity, capabilities, and behavior.</t>
  <t><strong>Capability</strong>: A self-contained function or behavior an agent offers.</t>
  <t><strong>Resolver</strong>: A service or mechanism that maps a URI to a network endpoint or metadata.</t>
  <t><strong>Invocation</strong>: The act of calling a capability on an agent with input parameters.</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 
RFC 2119, 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 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'>Mandatory</ttcol>
      <c>URI Scheme</c>
      <c>Unique addressing</c>
      <c>Yes</c>
      <c>Transport Binding</c>
      <c>Mechanism for invocation (e.g., HTTP, WSS, Matrix, IPC)</c>
      <c>Yes</c>
      <c>Agent Descriptor</c>
      <c>Self-describing agent interface</c>
      <c>Optional</c>
      <c>Resolution Framework</c>
      <c>Maps agent URIs to endpoints</c>
      <c>Optional</c>
      <c>Application Semantics</c>
      <c>Shared vocab for capability naming</c>
      <c>Optional</c>
</texttable>

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

</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+local://examplelocalagent</spanx></t>
  <t><spanx style="verb">agent://did:web:example.com:agent:researcher/get-article?doi=...</spanx></t>
</list></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 or DID).</t>
  <t><strong>Path</strong>: Specifies the agent being invoked. The <spanx style="verb">[path]</spanx> is opaque to <spanx style="verb">agent://</spanx> and can represent either a namespace or direct capability.</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 sub-capability.</t>
  <t>The optional <spanx style="verb">+&lt;protocol&gt;</spanx> indicates explicit transport binding.</t>
  <t>If not specified, clients use resolution or fall back to HTTPS-based invocation.</t>
</list></t>

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

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

protocol       = 1*( ALPHA / DIGIT / "-" )
authority      = [ userinfo "@" ] host [ ":" port ]
                 ; <authority, defined in RFC3986, Section 3.2>
path           = path-abempty    
                 ; begins with "/" or is empty.
                 ; Defined in RFC3986, Section 3.3
query          = *( pchar / "/" / "?" )
                 ; <query, defined in RFC3986, Section 3.4>
fragment       = *( pchar / "/" / "?" )
                 ; <fragment, defined in RFC3986, Section 3.5>

pchar          = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved     = ALPHA / DIGIT / "-" / "." / "_" / "~"
pct-encoded    = "%" HEXDIG HEXDIG
sub-delims     = "!" / "$" / "&" / "'" / "(" / ")" /
                 "*" / "+" / "," / ";" / "="

; Character sets like pchar, unreserved, etc. are defined in RFC3986

]]></sourcecode></figure>

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

<t>Every agent MAY expose a self-describing document at:</t>

<figure><sourcecode type="txt"><![CDATA[
<scheme>://<domain>/<path-to-agent>/agent.json

]]></sourcecode></figure>

<t>If a single agent is deployed at the top level then it should be under <spanx style="verb">/.well-known</spanx> to be compatible with Agent2Agent protocol.</t>

<t><list style="symbols">
  <t><spanx style="verb">/.well-known/agent.json</spanx> -- For single-agent deployments (compatible with Agent2Agent)</t>
  <t><spanx style="verb">/.well-known/agents.json</spanx> -- For multi-agent domains (maps agent names -&gt; descriptors)</t>
</list></t>

<t>This descriptor is OPTIONAL but RECOMMENDED. It enables capability discovery, transport resolution, and compatibility with ecosystem tools.</t>

<t>When present, the descriptor MAY use the <xref target="AgentCard"></xref> (as defined by Agent2Agent protocol by Google as of April 2025) schema as one possible format, or any equivalent <xref target="JSON-LD11"></xref> based structure that expresses the agent's identity, capabilities, and behavioral metadata.</t>

<t>If the agent is deployed at a subdomain (e.g., <spanx style="verb">planner.example.org</spanx>), the agent descriptor SHOULD be published at <spanx style="verb">/.well-known/agent.json</spanx> on that domain.</t>

<section anchor="ecosystem-registries"><name>Ecosystem Registries</name>

<t>Domains MAY publish:</t>

<figure><sourcecode type="txt"><![CDATA[
https://<domain>/.well-known/agents.json

]]></sourcecode></figure>

<t>This file should map agent names to their <spanx style="verb">agent.json</spanx> URLs for simplified enumeration. It is OPTIONAL but RECOMMENDED for better ecosystem interoperability.</t>

<t>Implementations MAY support resolution of agent URIs via:</t>

<t><list style="symbols">
  <t>Static resolution maps</t>
  <t>DID resolution</t>
  <t>WebFinger or custom resolvers</t>
</list></t>

<t>Resolvers SHOULD support caching and capability introspection where applicable.</t>

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

]]></artwork></figure>

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

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

]]></sourcecode></figure>

<t>Agents SHOULD use standard HTTP caching mechanisms (<spanx style="verb">Cache-Control</spanx>, <spanx style="verb">ETag</spanx>, <spanx style="verb">Last-Modified</spanx>) to enable efficient resolution and minimize unnecessary descriptor fetches. Clients SHOULD respect these headers and cache descriptors appropriately</t>

</section>
<section anchor="trust-anchors"><name>Trust Anchors</name>

<t>Domains MAY use trust anchors (e.g., DNSSEC, HTTPS certificates, or DID-based verification) to enhance identity assurance.</t>

<t>A practical example of URI resolution, agent descriptor fetching, and caching strategies is included in the reference implementation available at: <xref target="AGENT-URI-REPO"></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'>Description</ttcol>
      <c>HTTPS</c>
      <c><spanx style="verb">agent+https://</spanx></c>
      <c>Secure HTTP-based invocation</c>
      <c>WebSocket Secure</c>
      <c><spanx style="verb">agent+wss://</spanx></c>
      <c>Real-time streaming</c>
      <c>Local</c>
      <c><spanx style="verb">agent+local://</spanx></c>
      <c>Runtime-registered local agents</c>
      <c>Unix Socket</c>
      <c><spanx style="verb">agent+unix://</spanx></c>
      <c>IPC for co-located agents</c>
      <c>Matrix</c>
      <c><spanx style="verb">agent+matrix://</spanx></c>
      <c>Decentralized real-time transport</c>
</texttable>

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

<t>This flexibility ensures the protocol can adapt to different performance, privacy, or coordination requirements while remaining consistent at the addressing and invocation layer.</t>

<t>Local agents should be accessed using:</t>

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

]]></sourcecode></figure>

<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.</t>

<t>The <spanx style="verb">agent+local://</spanx> scheme specifically addresses the current 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 - capabilities that are typically restricted in browser environments. Security considerations for such invocations are discussed in <xref target="security-and-privacy"></xref>.</t>

</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>Check <spanx style="verb">.well-known/agents.json</spanx> (if available)</t>
  <t>Retrieve the agent descriptor at <spanx style="verb">agent.json</spanx> for the specified path</t>
  <t>Use the <spanx style="verb">transport</spanx> or <spanx style="verb">endpoint</spanx> hints from the descriptor</t>
</list></t>

<t>If nothing is 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 (agent+https://) where available, and fall back to resolution-based discovery (agent://) 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>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 agent.json</c>
      <c>Inter-agent calls within a known context</c>
      <c><spanx style="verb">agent://</spanx> or agent+matrix://</c>
</texttable>

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

<t>Agents SHOULD expose a descriptor document at:</t>

<figure><sourcecode type="txt"><![CDATA[
<agent-base-path>/agent.json

]]></sourcecode></figure>

<t>This descriptor MAY follow:</t>

<t><list style="symbols">
  <t>The AgentCard structure (as defined by Google's Agent2Agent protocol as of April 2025), or another equivalent format</t>
  <t>Any format other than AgentCard SHOULD be expressed in <xref target="JSON-LD11"></xref> to enable semantic discovery</t>
</list></t>

<t>Agent descriptors SHOULD include:</t>

<t><list style="symbols">
  <t>Agent name and version
  <list style="symbols">
      <t>MAY include <spanx style="verb">supportedVersions</spanx> indicating the list of older versions and their end-points.</t>
      <t>Versioning should follow <xref target="SemVer"></xref> or later</t>
      <t>Clients SHOULD verify compatibility based on documented major, minor, and patch versions</t>
    </list></t>
  <t>Human-readable description</t>
  <t>Input/output schemas (e.g., JSON Schema)</t>
  <t>Capability list with IDs, descriptions, tags, version</t>
  <t>Optional behavioral metadata (e.g., <spanx style="verb">isDeterministic</spanx>, <spanx style="verb">expectedOutputVariability</spanx>, <spanx style="verb">requiresContext: boolean</spanx>, <spanx style="verb">memoryEnabled: boolean</spanx>, <spanx style="verb">responseLatency: "low" | "medium" | "high"</spanx>, <spanx style="verb">confidenceEstimation: boolean</spanx>)
  <list style="symbols">
      <t><spanx style="verb">isDeterministic</spanx> (boolean): Indicates whether repeated calls with identical inputs yield identical outputs.</t>
      <t><spanx style="verb">expectedOutputVariability</spanx>: indicates typical variability in outputs, similar to temperature setting</t>
      <t><spanx style="verb">responseLatency</spanx>: Expected response time.</t>
      <t><spanx style="verb">requiresContext</spanx> (boolean): Indicates whether the input needs context or the agent can work on its own</t>
      <t><spanx style="verb">memoryEnabled</spanx> (boolean): Indicates whether the agent will remember the interactions</t>
    </list></t>
  <t>Optional transport or invocation hints</t>
  <t>Optional authentication or permission requirements</t>
  <t>Optional state management practices</t>
  <t>Optional <spanx style="verb">interactionModel</spanx> to indicate a way to interact (e.g. <spanx style="verb">agent2agent</spanx>, <spanx style="verb">fipa-acl</spanx>, <spanx style="verb">kqml</spanx>, <spanx style="verb">contract-net</spanx>, <spanx style="verb">emergent</spanx> etc). If mentioned, the message payload SHOULD follow the model's defined parameters if any.</t>
</list></t>

<t>Agents MAY expose <spanx style="verb">inputFormats</spanx> and <spanx style="verb">outputFormats</spanx> per capability using standard MIME types (e.g., <spanx style="verb">application/json</spanx>, <spanx style="verb">application/ld+json</spanx>, <spanx style="verb">application/fipa-acl</spanx>).</t>

<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 per capability. This allows clients to understand and negotiate payload encoding, enabling interoperability across ecosystems that use JSON, <xref target="JSON-LD11"></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 Accept headers (in HTTP), or envelope metadata (in protocols like <xref target="JSON-RPC"></xref>, <xref target="Matrix"></xref>, etc.).</t>

<t>Implementations MAY advertise protocol compatility via metadata fields such as <spanx style="verb">interactionModel</spanx>, <spanx style="verb">orchestration</spanx>, or supported <spanx style="verb">envelopeSchemas</spanx> etc. These metadata fields enable clients and agent runtimes to interoperate across heterogeneous ecosystems and communication models.</t>

<t>This extensibility ensures <spanx style="verb">agent://</spanx> can serve as a unifying addressing and invocation layer, bridging agents that follow established standards, platform-specific conventions, or learned behaviors in dynamic environments.</t>

<t>If an <spanx style="verb">agent.json</spanx> is provided, it SHOULD contain at least: <spanx style="verb">name</spanx>, <spanx style="verb">version</spanx>, and one or more capabilities.</t>

<t>Clients SHOULD explicitly specify the agent version either as a URI path segment, query parameter (<spanx style="verb">?version=3.1.4</spanx>), or HTTP header (<spanx style="verb">X-Agent-Version</spanx>). If omitted, servers SHOULD assume the latest version. Agents MUST document their preferred method for version negotiation clearly in their descriptor.</t>

<t>While <spanx style="verb">.well-known/agents.json</spanx> MAY be used to enumerate all available agents under a domain, the individual <spanx style="verb">agent.json</spanx> files serve as the canonical source of truth.</t>

<t>Expressing descriptors in <xref target="JSON-LD11"></xref> enables semantic interoperability and supports alignment with common web-based data models.</t>

<t>Implementers MAY choose to embed, proxy, or map to other protocols within the <spanx style="verb">agent.json</spanx> descriptor or transport bindings, allowing for seamless orchestration and hybrid deployments.</t>

</section>
<section anchor="interaction-patterns-interaction-patterns"><name>Interaction Patterns        {# interaction-patterns}</name>

<t>Supported interaction types include:</t>

<t><list style="symbols">
  <t>Request/Response (synchronous)</t>
  <t>Deferred response (polling or webhook) SHOULD include a <spanx style="verb">taskId</spanx> and polling interval hint.</t>
  <t>Streaming responses (e.g., Server-Sent Events, WebSocket). Streaming responses over <spanx style="verb">agent+wss://</spanx> SHOULD use newline-delimited JSON (NDJSON)</t>
  <t>Delegated invocation (calling other agents on behalf of user)</t>
  <t>Asynchronous event notifications via HTTP webhooks or WebSockets. Event notifications if available SHOULD include event types, payloads, and identifiers.</t>
</list></t>

<t>All interaction patterns (e.g., streaming, event-driven, polling) are transport-agnostic but MAY impose format constraints (e.g., NDJSON over WebSockets).</t>

<t>Agents SHOULD include status and confidence metadata in responses where applicable.</t>

<section anchor="stateful-interactions-stateful-interactions"><name>Stateful Interactions        {# stateful-interactions}</name>

<t>The <spanx style="verb">agent://</spanx> protocol leverages HTTP's established mechanisms for state management. Clients and agents SHOULD use standard HTTP headers or query parameters to pass identifiers such as <spanx style="verb">sessionId</spanx> or <spanx style="verb">taskId</spanx>. Agents MAY maintain state across interactions using these identifiers. Clients and agents SHOULD agree on session semantics via capability descriptors or invocation headers.</t>

<t>Non-HTTP transports SHOULD include session or task identifiers within message envelopes (e.g., JSON-RPC headers, WebSocket message metadata, Matrix events). These fields SHOULD follow naming conventions similar to <spanx style="verb">sessionId</spanx>, <spanx style="verb">taskId</spanx>, etc.</t>

<t>When the transport lacks a native header mechanism, agents SHOULD extract session information from the body or envelope metadata.</t>

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

<section anchor="recommended-practices"><name>Recommended practices:</name>

<t><list style="symbols">
  <t>Use HTTP headers (e.g., <spanx style="verb">X-Session-ID</spanx>, <spanx style="verb">X-Task-ID</spanx>) or query parameters for session and task identifiers.</t>
  <t>Clearly document state identifiers and their expected lifecycle in the agent's descriptor (agent.json).</t>
</list></t>

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

<figure><sourcecode type="http"><![CDATA[
GET /tasks/1234 HTTP/1.1
Host: planner.example.com
X-Session-ID: abcde-12345

]]></sourcecode></figure>

</section>
</section>
<section anchor="orchestration-patterns"><name>Orchestration Patterns</name>

<t>Agents MAY invoke other agents as part of delegated or composite tasks. Agents SHOULD explicitly provide orchestration workflows, delegation chains, or composite interactions either in their <spanx style="verb">agent.json</spanx> or in their response metadata.</t>

</section>
<section anchor="typical-interaction-flows"><name>Typical Interaction Flows</name>

<section anchor="client-agent-interaction"><name>Client-to-Agent Interaction</name>

<t>A typical user-driven invocation of an agent using the <spanx style="verb">agent://</spanx> protocol follows these steps:</t>

<figure title="Client-to-Agent Interaction Flow" anchor="fig-client-interaction"><sourcecode type="art"><![CDATA[
+--------+       +-----------+       +-------------+
|  User  |  -->  |  Client   |  -->  |  Agent Host |
+--------+       +-----------+       +-------------+
     |                |                    |
     | Initiates      |                    |
     | intent (e.g.,  |                    |
     | "Plan my trip")|                    |
     |                |                    |
     |                | Resolves agent URI |
     |                | --> agents.json / agent.json
     |                | Retrieves capabilities
     |                |                    |
     |                | Constructs request |
     |                | --> agent://plan.example.com/gen-iti?city=Rio
     |                |                    |
     |                |                    | Validate input 
     |                |                    | Process logic/call tools
     |                |                    | May call sub-agents
     |                |                    |
     |                | Receives response  |
     |                | <== itinerary JSON |
     | Presents result to user             |

]]></sourcecode></figure>

<t><strong>Notes</strong>:</t>

<t><list style="symbols">
  <t>The client MAY handle fallback logic if the agent cannot be resolved initially.</t>
  <t>Authentication MAY be required before invocation.</t>
  <t>The invocation can be a simple GET or POST depending on input size and structure.</t>
</list></t>

</section>
<section anchor="agent-to-agent-interaction"><name>Agent-to-Agent Interaction</name>

<t>Agents MAY interact with each other using <spanx style="verb">agent://</spanx> URIs to delegate tasks or compose workflows.</t>

<t><strong>Example: A planning agent invoking a translation agent</strong>:</t>

<figure title="Agent-to-Agent Interaction Flow" anchor="fig-agent-interaction"><sourcecode type="art"><![CDATA[
+----------+       +----------+       +------------+
|Planning  |------>|Resolver/ |------>|Translation |
|Agent     |       |URI       |       |Agent       |
+----------+       +----------+       +------------+
     |                  |                   |
     | Input:           |                   |
     | {"city":"Paris"} |                   |
     |                  |                   |
     | Needs translation|                   |
     |                  |                   |
     |                  | Resolves URI:     |
     |--agent://translator.example/translate?text=Bonjour-->|
     |                  |                   |
     |                  | --> Get           |
     |                  |     agent.json    |
     |                  | --> Determine     |
     |                  |     transport     |
     |                  |                   |
     |                  |                   | Process translation
     |                  |                   | Return translated JSON
     |<-----------------|<------------------|
     | Merge & return   |                   |
     | to user/client   |                   |
     | or continues     |                   |
]]></sourcecode></figure>

<t><strong>Chaining Behavior</strong>:</t>

<t><list style="symbols">
  <t>The invoking agent MAY include <spanx style="verb">X-Task-ID</spanx>, <spanx style="verb">X-Delegation-Chain</spanx>, or equivalent headers.</t>
  <t>The response MAY include intermediate metadata such as <spanx style="verb">confidence</spanx>, <spanx style="verb">sourceAgent</spanx>, <spanx style="verb">taskTrace</spanx>, or <spanx style="verb">timeTaken</spanx>.</t>
</list></t>

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

<t>The <spanx style="verb">agent://</spanx> protocol MAY leverage HTTP standard status codes for signaling errors. Implementations MAY return errors using standard HTTP status codes along with structured JSON error responses conforming to <xref target="RFC9457"></xref> ("Problem Details for HTTP APIs").</t>

<t>**Recommended HTTP status codes include (but are not limited to)</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>Capability or resource not found</c>
      <c>409</c>
      <c>Conflict (e.g., state mismatch)</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>Example:</t>

<figure><sourcecode type="http"><![CDATA[
HTTP/1.1 404 Not Found
Content-Type: application/problem+json

{
  "type": "https://example.com/errors/capability-not-found",
  "title": "Capability Not Found",
  "status": 404,
  "detail": "The requested capability 'gen-iti' was not found.",
  "instance": "/planner/gen-iti"
}
{: #fig-error-response title="Example HTTP Error Response"}

]]></sourcecode></figure>

<t>This format is not prescriptive but aims to encourage consistency. Implementations MAY adapt the error schema based on their transport layer (e.g., JSON-RPC, HTTP status + body, WebSocket messages).</t>

<t>For non-HTTP transports (e.g., WebSockets, Matrix), agents SHOULD still return structured errors using similar JSON structures (<spanx style="verb">type</spanx>, <spanx style="verb">title</spanx>, <spanx style="verb">detail</spanx>, <spanx style="verb">status</spanx>), encapsulated within the transport's native message envelope (e.g., JSON-RPC <spanx style="verb">error</spanx> objects, Matrix event content fields). Implementers SHOULD document chosen structures clearly in their capability descriptors.</t>

<t>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><xref target="OpenAPI"></xref> or REST error payloads</t>
  <t><xref target="GraphQL"></xref> <spanx style="verb">errors</spanx> array format</t>
</list></t>

<t>Recommended error categories:</t>

<t><list style="symbols">
  <t><spanx style="verb">CapabilityNotFound</spanx></t>
  <t><spanx style="verb">InvalidInput</spanx></t>
  <t><spanx style="verb">AmbiguousResponse</spanx></t>
  <t><spanx style="verb">Timeout</spanx></t>
  <t><spanx style="verb">PermissionDenied</spanx></t>
</list></t>

<t>Clients SHOULD parse and utilize these structured responses to handle errors gracefully.</t>

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

<t>The <spanx style="verb">agent://</spanx> protocol explicitly relies on widely-adopted HTTP authentication and authorization standards. Agents SHOULD support standard authentication and authorization schemes such as OAuth2 (Bearer tokens), API keys, or signed payloads. When using HTTPS, mutual TLS MAY be employed. JSON Web Tokens (JWT) are RECOMMENDED for conveying signed claims between agents.</t>

<t>Security extensions MAY include:</t>

<t><list style="symbols">
  <t><xref target="RFC6750">OAuth2</xref> Bearer Tokens</t>
  <t>JSON Web Tokens (<xref target="RFC7519">JWT</xref>)</t>
  <t>Mutual TLS (<xref target="RFC8705">mTLS</xref>) authentication</t>
  <t>API Keys via HTTP headers (e.g., <spanx style="verb">X-API-Key</spanx>)</t>
  <t>Capability-based access control</t>
  <t>Delegation chains</t>
</list></t>

<t>For non-HTTP transports (e.g., WebSocket, Matrix), agents SHOULD leverage native authentication mechanisms, such as WebSocket protocol-level authentication tokens or Matrix homeserver authentication flows. Agents MUST clearly document supported security mechanisms per transport binding.</t>

<t>When using <xref target="DID-CORE">Decentralized Identifiers</xref> as authority, agent descriptors MAY be cryptographically signed. Clients SHOULD verify such signatures against the corresponding DID Document.</t>

<t>For agent-to-agent delegation, agents SHOULD include delegation metadata (e.g., <spanx style="verb">X-Delegation-Chain</spanx>) that identifies prior actors. These chains SHOULD be signed or verifiable via claims (e.g., using JWT, Verifiable Credentials, or DID-linked proofs).</t>

<t>Privacy recommendations:</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 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>Namespaced capability vocabularies</t>
  <t>Alternate transport bindings</t>
  <t>Extended agent descriptors</t>
  <t>Optional orchestration layers (task graphs, workflows)</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>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requests the registration of the <spanx style="verb">agent</spanx> URI scheme in the IANA "Uniform Resource Identifier (URI) Schemes" registry.</t>

<section anchor="uri-schem-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>:<br />
The <spanx style="verb">agent</spanx> URI scheme identifies and invokes autonomous or semi-autonomous software agents across systems. It provides transport-agnostic addressing layer supporting discovery, invocation and orchestration. The scheme is compatible with existing schemes such as <spanx style="verb">https</spanx>, <spanx style="verb">did</spanx> and <spanx style="verb">web+</spanx> schemes where appropriate.</t>
  <t><strong>Contact</strong>:<br />
Yaswanth Narvaneni<br />
<eref target="mailto:yaswanth@gmail.com">yaswanth@gmail.com</eref></t>
  <t><strong>Change Controller</strong>:<br />
The author or a relevant standards body such as the IETF if adopted.</t>
  <t><strong>References</strong>:<br />
This document (Internet-Draft): <em>agent:// Protocol -- A URI-Based Framework for Interoperable Agents</em><br />
<xref target="RFC3986"></xref> - Uniform Resource Identifier (URI): Generic Syntax<br />
<xref target="RFC7595"></xref> - Guidelines and Registration Procedures for URI Schemes</t>
  <t><strong>URI Syntax</strong>:<br />
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>Where:
- <spanx style="verb">authority</spanx> is typically a domain name or Decentralized Identifier (DID)<br />
- <spanx style="verb">path</spanx> is an opaque agent-specific capability or namespace<br />
- <spanx style="verb">query</spanx> includes serialized key-value parameters<br />
- <spanx style="verb">fragment</spanx> MAY reference a sub-capability or context<br />
- 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>:<br />
The <spanx style="verb">agent</spanx> scheme does not introduce new transport-layer vulnerabilities but inherits risks from underlying protocols such as HTTP, WebSocket, or local execution environments. Implementers should apply standard authentication and authorization measures, such as OAuth2, JWTs, or mutual TLS. See Section 10 for security and privacy guidance.</t>
</list></t>

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

<t>Following is an example of <spanx style="verb">agent.json</spanx>.</t>

<figure title="Example Agent Descriptor in JSON-LD" anchor="fig-agent-descriptor"><sourcecode type="json-ld"><![CDATA[
{
  "@context": "https://example.org/agent-context.jsonld",
  "name": "planner.example.com",
  "description": "Agent helps in researching & planning itineraries",
  "url": "agent://planner.example.com/",
  "provider": {
    "organization": "Example AI Org"
  },
  "documentationUrl": "https://planner.example.com/docs",
  "interactionModel": "agent2agent",
  "orchestration": "delegation",
  "envelopeSchemas": ["fipa-acl"],
  "version": 3.1.4,
  "supportedVersions": {
    "3.0.0": "/v3/",
    "2.1.2": "/olderversion/v2.1.2/",
    "1.0": "/version-1/"
  },
  "capabilities": [
    {
      "name": "gen-iti",
      "version": "2.1.5",
      "description": "Creates a travel itinerary for a given city.",
      "input": { "city": "string" },
      "output": { "itinerary": "array" },
      "isDeterministic": false,
      "expectedOutputVariability": "medium",
      "contentTypes": {
        "inputFormat": ["application/json", "application/ld+json"],
        "outputFormat": ["application/json"]
      }
    }
  ],
  "authentication": {
    "schemes": ["OAuth2"]
  },
  "skills": [
    {
        "id": "agent-skill-1",
        "name": "research-location"
    }
  ]
}

]]></sourcecode></figure>

<t>A JSON-LD context is added to support semantic querying and graph-based processing.</t>

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

<t><list style="symbols">
  <t>Composing workflows with 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>
</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">agent.json</spanx>, <spanx style="verb">.well-known</spanx> endpoints)</t>
  <t>Transport bindings including HTTPS, WebSocket, Matrix, and Local IPC</t>
  <t>Capability descriptor discovery, caching, and semantic processing</t>
  <t>Orchestration and delegation chaining 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"></xref></t>

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

</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. 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="RFC6570">
  <front>
    <title>URI Template</title>
    <author fullname="J. Gregorio" initials="J." surname="Gregorio"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <author fullname="M. Hadley" initials="M." surname="Hadley"/>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="D. Orchard" initials="D." surname="Orchard"/>
    <date month="March" year="2012"/>
    <abstract>
      <t>A URI Template is a compact sequence of characters for describing a range of Uniform Resource Identifiers through variable expansion. This specification defines the URI Template syntax and the process for expanding a URI Template into a URI reference, along with guidelines for the use of URI Templates on the Internet. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6570"/>
  <seriesInfo name="DOI" value="10.17487/RFC6570"/>
</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="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="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="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>

<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="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="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="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>


    </references>

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

<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="OpenAPI" 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="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="Matrix" target="https://spec.matrix.org/">
  <front>
    <title>Matrix Specification v1.14</title>
    <author initials="" surname="The Matrix org Foundation">
      <organization></organization>
    </author>
    <date year="2014"/>
  </front>
</reference>
<reference anchor="GraphQL" target="https://spec.graphql.org/October2021/">
  <front>
    <title>GraphQL: A Query Language for APIs</title>
    <author initials="" surname="GraphQL Foundation">
      <organization></organization>
    </author>
    <date year="2021" month="October"/>
  </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>
    <date year="2025"/>
  </front>
</reference>


    </references>

</references>



  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA819+1MbV7rg71TxP5yVdycoVkuA7eSGsZ3BgB1usM0AnkyK
cl211EdSx61upbsF0diev/1+r/NqtTDJzW4t5cKidd7ne786iqLtrTqtM32g
OlczreKpzuuDwUCdl0VdjItMRZE6VO8uTqMXcaUT9bKM5/q2KD+oSVGq07zW
ZbHQZTzKtDrEzlVneysejUp9A0PScNGyTOHhOK71tChXB0r/ttjeSorxGxjq
QCVlPKmjPC5v4lznaWT7RLt721vpojxQdbms6v3d3e9292HwUscH6nCxyFIY
Mi3yansLFzQti+XiAJaU6IWGX3mtLpejeVpV0GZ764NeQavkgNec6zo6xom3
tyrb6Gq1gPWkbgBYJSz6QO3v7j+Jdh9H+7Ag6FDHefJfcVbk8NVKw/SL9EBd
w3H1VFWUdaknFXxazfHDe+wRL+tZUR5sbyk4bgU/aV4dqJ/76o3ZNT/O6UB+
jqvbOK9nzW+Lchrn6b9oz+E+L3Sl43I80yW31PM4zWBtMtDDVNeTv03xYX9c
zLnNOK3hKs6KPMHToSfFMq/xft7laQ1X/WOaTxNsvr2VF+Uc5r3RuAd18fLo
0Xf/8Y35vL+39535/M2Tb3fN5+/29uznb759Yj9/+8S1/+7xk2/N5//4dveJ
/bz37WPX/jt+/p+Xb99EZ8d7ewe8YAO48lzt9fcAMLjZiKD1UpdpnMmZEcSe
pfkH+OI4ruMOj+Iuh34iZT7JNb3uq8tFUeYr26LR4LiPxzjN9MYWr/rqR51l
xXR61yxneFdxZi5xfZjzvjqaxfNFmm9q8aaPG0yqujTXbAF4N9r9lh9VcCi6
SvNJYTf906OjA4AiAI45gBSdlhxxXE51faBmdb2ogC7c3t72bx/1ARQHVxeD
X6oij7Jkb2+ArY9Pj6Ojtxcnjds51mOA0RKvAQ7+FAE2naS6rNQO9Ki66mav
v/v/7i5wiHgUJ3gfd4xyoXWy6eu3MEStdaY3NTjqq8Ms03njCvb/L1xBkibR
uCj1ANEUB/QR9VLP/6HL8D7gGcBZOlbwDRI9QHK139/t77bfQGNnV33gDLqq
4d5/Qipahlvce9S+5krPb3RJa8YGxCj26Xe4OO8Ly4Huta5XRQGXrs7Ojhpn
jnS7fU3TtJ4tR0gQB1PqPTjcP7SrO4qBV4SAzMvCL9Ql0Np5rCaAZq1r7mxc
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
x9M1lwAA

-->

</rfc>

