<?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.39 (Ruby 3.2.3) -->


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

]>


<rfc ipr="trust200902" docName="draft-ayoub-agis-agent-identity-system-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="AgIS Agent Identity">AgIS: An Agent Identity System for DNS-Backed Verification of AI and Software Agents</title>

    <author initials="R." surname="Ayoub" fullname="Rizkallah Ayoub">
      <organization>EPICORTEK Technologies Inc.</organization>
      <address>
        <email>rizk.ayoub@epicortek.com</email>
      </address>
    </author>

    <date year="2026" month="June" day="29"/>

    <area>Security</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>agent identity</keyword> <keyword>AI agents</keyword> <keyword>DNS</keyword> <keyword>HTTP message signatures</keyword> <keyword>delegation</keyword> <keyword>verification</keyword>

    <abstract>


<?line 64?>

<t>This document specifies AgIS, the Agent Identity System, a DNS-backed identity and verification profile for AI agents, autonomous software agents, and agentic services operating on the existing web.</t>

<t>AgIS defines an agent identifier form, DNS TXT bindings, Agent Cards, key thumbprints, status and revocation documents, signed HTTP request verification, replay protection, delegation tokens, and delegation chains.  The design intentionally reuses existing Internet mechanisms, including DNS, HTTPS well-known resources, JSON Web Keys, JSON canonicalization, HTTP Message Signatures, and HTTP digest fields.</t>

<t>This document describes the AgIS 0.2.2 wire/profile format and the behavior exercised by the AgIS v0.3.0-alpha.3 reference implementation and its 23 deterministic test vectors.  That implementation includes signed Agent Cards, HTTP Message Signature verification, two-phase replay protection, delegation signer-key binding enforced by default, and signed agent status document support.  It does not define a global trust authority, a production trust network, or a new public-key infrastructure.</t>

<t>This is an individual Internet-Draft and a work in progress.  It has not been approved by the IETF, does not represent an IETF standard or RFC, and has not been adopted by any IETF working group.</t>

<t>AgIS is designed to be compatible with agent naming services such as Linux Foundation ANS and similar systems.  AgIS is not affiliated with, endorsed by, or a replacement for Linux Foundation ANS or any global naming authority.  AgIS defines verification, governance, and request-signing behavior that operates over identity evidence that may originate from ANS or any comparable naming layer.</t>



    </abstract>



  </front>

  <middle>


<?line 76?>

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

<t>Software agents are increasingly used to perform actions across organizational, application, and network boundaries.  These agents may call APIs, retrieve data, initiate workflows, delegate tasks, and act on behalf of organizations, users, or other agents.</t>

<t>Existing web identity mechanisms are generally designed for human users, applications, domains, or service accounts.  They do not provide a compact, DNS-backed, agent-specific verification profile that allows a verifier to answer the following questions in a deterministic manner:</t>

<t><list style="symbols">
  <t>What agent is making this request?</t>
  <t>Which domain is responsible for publishing that agent's identity information?</t>
  <t>Which Agent Card describes the agent?</t>
  <t>Which public key is bound to that agent?</t>
  <t>Has the Agent Card been tampered with?</t>
  <t>Is the agent active, suspended, revoked, deprecated, or compromised?</t>
  <t>Was this HTTP request signed by the expected agent key?</t>
  <t>Is the request fresh, or is it a replay?</t>
  <t>Is the acting agent using a valid delegation from another agent?</t>
  <t>Has a delegation chain attempted to escalate scope?</t>
</list></t>

<t>AgIS addresses these questions by defining a narrow identity and verification profile that can be deployed using ordinary DNS records and HTTPS resources.  It is intended to be small enough for developer tooling and deterministic enough for independent test-vector validation.</t>

<t>AgIS is not an authorization framework by itself.  A verifier MAY use AgIS verification results as input to a local authorization policy, but final authorization decisions remain local to the relying party.</t>

<t>This document is an individual Internet-Draft submitted for community review.  It is a work in progress, has not been approved by the IETF, does not represent an IETF standard, and has not been adopted by any IETF working group.  The reference implementation is experimental alpha software.</t>

<t>AgIS is not a global naming service.  Agent naming, discovery, and identity evidence MAY be provided by external naming systems such as Linux Foundation ANS or similar agent name services.  AgIS defines the verification, governance, signed request, delegation, and replay protection behavior that operates over such identity evidence once it is available to a verifier.  AgIS is not affiliated with, endorsed by, or a replacement for any such naming authority.</t>

<t>AgIS is also not a claim that an agent is safe, truthful, lawful, beneficial, or aligned.  It verifies identity bindings, key material, request signatures, freshness signals, revocation status, and delegation constraints.  It does not certify the behavior or intent of the agent.</t>

</section>
<section anchor="goals"><name>Goals</name>

<t>AgIS has the following design goals:</t>

<t><list style="numbers" type="1">
  <t>Reuse existing web infrastructure.</t>
  <t>Make agent identity independently verifiable.</t>
  <t>Bind an agent identifier to a domain-controlled publication point.</t>
  <t>Support deterministic offline verification.</t>
  <t>Support signed HTTP requests using an existing HTTP signature framework.</t>
  <t>Support revocation and status checks.</t>
  <t>Support scoped delegation and delegation chains.</t>
  <t>Avoid requiring a global AgIS root authority.</t>
  <t>Avoid requiring blockchain, new DNS infrastructure, or new transport protocols.</t>
  <t>Provide deterministic test vectors for independent implementations.</t>
</list></t>

</section>
<section anchor="non-goals"><name>Non-Goals</name>

<t>This version of AgIS does not define:</t>

<t><list style="symbols">
  <t>a global trust registry;</t>
  <t>a certificate authority;</t>
  <t>a legal identity framework;</t>
  <t>a reputation system;</t>
  <t>a payment system;</t>
  <t>a production authorization policy language;</t>
  <t>a live DNS and HTTPS resolver profile;</t>
  <t>a mandatory hosted verification service;</t>
  <t>a registry for the <spanx style="verb">agent</spanx> URI scheme;</t>
  <t>an IANA registry for AgIS parameters.</t>
</list></t>

<t>Future documents may define live resolver behavior, additional transport bindings, registries, discovery mechanisms, or production policy profiles.</t>

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

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP 14
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals.</t>

<dl>
  <dt>Agent:</dt>
  <dd>
    <t>A software actor that can make requests, receive requests, or perform tasks using an identity described by this specification.</t>
  </dd>
  <dt>Agent Identifier:</dt>
  <dd>
    <t>A URI-like identifier beginning with <spanx style="verb">agent://</spanx> that names an agent under a domain.</t>
  </dd>
  <dt>Agent Card:</dt>
  <dd>
    <t>A JSON document describing an agent, its identifier, owner metadata, capabilities, endpoints, public keys, cache information, and status.</t>
  </dd>
  <dt>Agent Card Hash:</dt>
  <dd>
    <t>A SHA-256 digest of the JSON Canonicalization Scheme representation of the Agent Card, excluding the <spanx style="verb">signature</spanx> member.</t>
  </dd>
  <dt>DNS Binding:</dt>
  <dd>
    <t>A DNS TXT record under the agent publisher's domain that binds an Agent Identifier to an Agent Card URL, and optionally to a JWK thumbprint and Agent Card hash.</t>
  </dd>
  <dt>Verifier:</dt>
  <dd>
    <t>A party that evaluates AgIS identity material, request signatures, freshness, status, or delegation information.</t>
  </dd>
  <dt>Issuer:</dt>
  <dd>
    <t>An agent that issues a delegation token.</t>
  </dd>
  <dt>Subject:</dt>
  <dd>
    <t>An agent to which a delegation token is issued.</t>
  </dd>
  <dt>Acting Agent:</dt>
  <dd>
    <t>The agent identified by the <spanx style="verb">AgIS-Agent</spanx> HTTP field in a signed request.</t>
  </dd>
  <dt>Delegation Chain:</dt>
  <dd>
    <t>An ordered list of delegation tokens in which each token delegates from one agent to the next.</t>
  </dd>
</dl>

</section>
<section anchor="agent-identifier"><name>Agent Identifier</name>

<t>An AgIS Agent Identifier has the following form:</t>

<figure><sourcecode type="text"><![CDATA[
agent://{domain}/{agent-name}
]]></sourcecode></figure>

<t>For example:</t>

<figure><sourcecode type="text"><![CDATA[
agent://example.com/support-agent
]]></sourcecode></figure>

<t>The <spanx style="verb">domain</spanx> component identifies the DNS domain responsible for publishing the agent binding.  The <spanx style="verb">agent-name</spanx> component identifies the agent under that domain.</t>

<t>The following ABNF defines the v0.2.2 Agent Identifier profile:</t>

<figure><sourcecode type="abnf"><![CDATA[
agent-id     = "agent://" domain "/" agent-name
domain       = 1*(ALPHA / DIGIT / "-" / ".")
agent-name   = 1*(ALPHA / DIGIT / "-" / "_" / ".")
]]></sourcecode></figure>

<t>Implementations MUST compare the scheme component case-insensitively.  Implementations MUST compare the domain component using the normal DNS case-insensitive comparison rules.  Implementations MUST compare the agent-name component byte-for-byte after URI parsing.</t>

<t>An Agent Identifier MUST NOT contain a query component.  An Agent Identifier MUST NOT contain a fragment component.  An Agent Identifier MUST NOT contain userinfo.</t>

<t>This document does not request registration of the <spanx style="verb">agent</spanx> URI scheme at this time.</t>

</section>
<section anchor="https-equivalent-identifier"><name>HTTPS Equivalent Identifier</name>

<t>An Agent Identifier maps to a default HTTPS publication location:</t>

<figure><sourcecode type="text"><![CDATA[
https://{domain}/.well-known/agis/id/{agent-name}
]]></sourcecode></figure>

<t>This HTTPS equivalent identifier is intended for human inspection, linking, debugging, and future resolver behavior.  The v0.2.2 profile does not require live fetching of this location for offline verification.</t>

</section>
<section anchor="agent-card-location"><name>Agent Card Location</name>

<t>The default Agent Card location is:</t>

<figure><sourcecode type="text"><![CDATA[
https://{domain}/.well-known/agis/agents/{agent-name}.json
]]></sourcecode></figure>

<t>A DNS Binding MAY specify a different Agent Card URL using the <spanx style="verb">card</spanx> parameter.  If the <spanx style="verb">card</spanx> parameter is present, verifiers MUST use that value for the binding under evaluation.</t>

<t>Agent Card URLs MUST use HTTPS.  Verifiers MUST reject non-HTTPS Agent Card URLs except in explicitly configured local development environments.</t>

</section>
<section anchor="dns-txt-binding"><name>DNS TXT Binding</name>

<t>The default DNS TXT owner name for an agent is:</t>

<figure><sourcecode type="text"><![CDATA[
_agis.{agent-name}.{domain}
]]></sourcecode></figure>

<t>For the Agent Identifier:</t>

<figure><sourcecode type="text"><![CDATA[
agent://example.com/support-agent
]]></sourcecode></figure>

<t>the default DNS TXT owner name is:</t>

<figure><sourcecode type="text"><![CDATA[
_agis.support-agent.example.com
]]></sourcecode></figure>

<t>A minimal DNS TXT binding has the following form:</t>

<figure><sourcecode type="text"><![CDATA[
agis=0.2.2; agent=agent://example.com/support-agent; card=https://example.com/.well-known/agis/agents/support-agent.json
]]></sourcecode></figure>

<t>A recommended DNS TXT binding additionally includes a JWK thumbprint and Agent Card hash:</t>

<figure><sourcecode type="text"><![CDATA[
agis=0.2.2; agent=agent://example.com/support-agent; card=https://example.com/.well-known/agis/agents/support-agent.json; jkt=dXBQ4ZkgA3nTvwrFeLAKYokanVfetC0fzXUiSFkYg08; card_sha256=842dbbbf1c807d020ceafe7fd8b51502cf7ae94314238e293a36c736463a3122
]]></sourcecode></figure>

<t>The following parameters are defined:</t>

<dl>
  <dt>agis:</dt>
  <dd>
    <t>The AgIS profile version.  For this document the value is <spanx style="verb">0.2.2</spanx>.</t>
  </dd>
  <dt>agent:</dt>
  <dd>
    <t>The Agent Identifier.</t>
  </dd>
  <dt>card:</dt>
  <dd>
    <t>The HTTPS URL of the Agent Card.</t>
  </dd>
  <dt>jkt:</dt>
  <dd>
    <t>The JWK thumbprint of the signing key, encoded using base64url without padding.</t>
  </dd>
  <dt>card_sha256:</dt>
  <dd>
    <t>The lowercase hexadecimal SHA-256 digest of the canonical Agent Card, excluding the <spanx style="verb">signature</spanx> member.</t>
  </dd>
</dl>

<t>A verifier MUST reject a DNS Binding if the <spanx style="verb">agis</spanx>, <spanx style="verb">agent</spanx>, or <spanx style="verb">card</spanx> parameter is missing.  A verifier SHOULD reject a DNS Binding if <spanx style="verb">jkt</spanx> or <spanx style="verb">card_sha256</spanx> is present but does not match the Agent Card under evaluation.</t>

<t>The order of DNS Binding parameters is not significant.  Parameter names are case-sensitive.  Parameter values MUST NOT be interpreted as shell expressions, templates, or executable content.</t>

</section>
<section anchor="agent-card"><name>Agent Card</name>

<t>An Agent Card is a JSON document describing an agent.  The v0.2.2 profile defines the following required members:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "agis_version": "0.2.2",
  "agent_id": "agent://example.com/support-agent",
  "name": "support-agent",
  "owner": {
    "name": "Example Organization",
    "domain": "example.com"
  },
  "status": "active",
  "issued_at": "2026-06-23T00:00:00Z",
  "updated_at": "2026-06-23T00:00:00Z",
  "capabilities": [
    "signed_requests",
    "agent_identity"
  ],
  "endpoints": {
    "jwks": "https://example.com/.well-known/agis/agents/support-agent/jwks.json",
    "status": "https://example.com/.well-known/agis/agents/support-agent/status.json"
  },
  "public_keys": [
    {
      "id": "key-2026-01",
      "type": "OKP",
      "use": "sig",
      "alg": "EdDSA",
      "crv": "Ed25519",
      "status": "active",
      "created_at": "2026-06-23T00:00:00Z",
      "public_key_jwk": {
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "ARcMgvwCLxMm4lHCAF5GfiC2N6D2w4tM7Mcrv-h81pg"
      },
      "jwk_thumbprint": "dXBQ4ZkgA3nTvwrFeLAKYokanVfetC0fzXUiSFkYg08"
    }
  ],
  "cache": {
    "agent_card_ttl_seconds": 86400,
    "status_ttl_seconds": 60
  }
}
]]></sourcecode></figure>

<t>An Agent Card MAY contain additional members.  Verifiers MUST ignore unknown members unless local policy requires otherwise.  However, unknown members are included in the canonical hash unless explicitly excluded by this specification.</t>

<t>The <spanx style="verb">signature</spanx> member, if present, MUST be excluded from Agent Card canonicalization and hashing.</t>

</section>
<section anchor="agent-card-canonicalization-and-hashing"><name>Agent Card Canonicalization and Hashing</name>

<t>Agent Card canonicalization uses the JSON Canonicalization Scheme defined by <xref target="RFC8785"/>.</t>

<t>To compute the Agent Card hash, a verifier MUST:</t>

<t><list style="numbers" type="1">
  <t>Parse the Agent Card as JSON.</t>
  <t>Remove the top-level <spanx style="verb">signature</spanx> member if it is present.</t>
  <t>Canonicalize the resulting JSON object using JCS.</t>
  <t>Compute SHA-256 over the UTF-8 bytes of the canonicalized JSON.</t>
  <t>Represent the digest as lowercase hexadecimal.</t>
</list></t>

<t>For the v0.2.2 test vector Agent Card, the expected SHA-256 digest is:</t>

<figure><sourcecode type="text"><![CDATA[
842dbbbf1c807d020ceafe7fd8b51502cf7ae94314238e293a36c736463a3122
]]></sourcecode></figure>

<t>A verifier MUST compare the computed Agent Card hash with the DNS Binding <spanx style="verb">card_sha256</spanx> parameter if that parameter is present.</t>

</section>
<section anchor="agent-keys-and-jwk-thumbprints"><name>Agent Keys and JWK Thumbprints</name>

<t>Agent public keys are represented as JSON Web Keys using <xref target="RFC7517"/>.</t>

<t>The preferred v0.2.2 signing key type is Ed25519 represented as an OKP JWK.  Ed25519 JWK representation follows <xref target="RFC8037"/>.</t>

<t>A verifier MUST compute JWK thumbprints according to <xref target="RFC7638"/>.  For the v0.2.2 test vector public key:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "crv": "Ed25519",
  "kty": "OKP",
  "x": "ARcMgvwCLxMm4lHCAF5GfiC2N6D2w4tM7Mcrv-h81pg"
}
]]></sourcecode></figure>

<t>the expected JWK thumbprint is:</t>

<figure><sourcecode type="text"><![CDATA[
dXBQ4ZkgA3nTvwrFeLAKYokanVfetC0fzXUiSFkYg08
]]></sourcecode></figure>

<t>A verifier MUST reject an Agent Card if a key's declared <spanx style="verb">jwk_thumbprint</spanx> does not match the computed thumbprint for the corresponding <spanx style="verb">public_key_jwk</spanx>.</t>

<t>A verifier SHOULD reject a DNS Binding if the <spanx style="verb">jkt</spanx> parameter is present and does not match at least one active signing key in the Agent Card.</t>

</section>
<section anchor="signed-agent-cards"><name>Signed Agent Cards</name>

<t>An Agent Card MAY include a top-level <spanx style="verb">signature</spanx> member containing a detached or embedded signature over the canonical Agent Card representation.  The v0.3.0-alpha.3 reference implementation uses a compact JWS form with the following protected header:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "alg": "EdDSA",
  "kid": "key-2026-01",
  "typ": "agis-agent-card+jcs"
}
]]></sourcecode></figure>

<t>A verifier of a signed Agent Card MUST:</t>

<t><list style="numbers" type="1">
  <t>Remove the top-level <spanx style="verb">signature</spanx> member.</t>
  <t>Canonicalize the remaining Agent Card using JCS.</t>
  <t>Verify that the signed payload equals the canonical representation.</t>
  <t>Locate the signing key by <spanx style="verb">kid</spanx>.</t>
  <t>Verify the signature using the key's public JWK.</t>
  <t>Verify that the Agent Card hash remains stable after excluding the <spanx style="verb">signature</spanx> member.</t>
</list></t>

<t>A verifier MUST reject a signed Agent Card if the signed payload does not match the canonical Agent Card representation.</t>

</section>
<section anchor="agent-status"><name>Agent Status</name>

<t>An Agent Status document describes the current status of an agent.  The default status endpoint is listed in the Agent Card under <spanx style="verb">endpoints.status</spanx>.</t>

<t>The following status values are defined:</t>

<dl>
  <dt>active:</dt>
  <dd>
    <t>The agent is active.</t>
  </dd>
  <dt>revoked:</dt>
  <dd>
    <t>The agent has been revoked and MUST NOT be allowed to act.</t>
  </dd>
  <dt>suspended:</dt>
  <dd>
    <t>The agent is temporarily suspended and SHOULD NOT be allowed to act unless local policy explicitly permits it.</t>
  </dd>
  <dt>deprecated:</dt>
  <dd>
    <t>The agent remains resolvable for compatibility or audit purposes, but new integrations SHOULD NOT depend on it.</t>
  </dd>
  <dt>compromised:</dt>
  <dd>
    <t>The agent or its key material is believed to be compromised and MUST NOT be allowed to act.</t>
  </dd>
  <dt>unknown:</dt>
  <dd>
    <t>The publisher cannot currently assert a stronger status.  Verifiers SHOULD treat this status conservatively.</t>
  </dd>
</dl>

<t>An example active status document is:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "agent_id": "agent://example.com/support-agent",
  "status": "active",
  "updated_at": "2026-06-23T00:00:00Z",
  "cache": {
    "ttl_seconds": 60
  }
}
]]></sourcecode></figure>

<t>An example revoked status document is:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "agent_id": "agent://example.com/support-agent",
  "status": "revoked",
  "revoked": true,
  "revoked_at": "2026-06-23T00:00:00Z",
  "reason": "key_compromise",
  "updated_at": "2026-06-23T00:00:00Z",
  "cache": {
    "ttl_seconds": 30
  }
}
]]></sourcecode></figure>

<t>A verifier MUST reject a status document if the <spanx style="verb">agent_id</spanx> does not match the Agent Identifier under evaluation.</t>

<t>A verifier MUST treat <spanx style="verb">revoked</spanx> and <spanx style="verb">compromised</spanx> as denial states.</t>

<t>A revoked agent SHOULD remain resolvable for auditability, incident response, and historical verification.</t>

<section anchor="signed-status-documents"><name>Signed Status Documents</name>

<t>A status document MAY include a top-level <spanx style="verb">signature</spanx> member.  When present, the signature covers the JCS-canonicalized status document with the <spanx style="verb">signature</spanx> field excluded.  The reference implementation uses EdDSA/JWS with the following structure:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "type": "jws",
  "alg": "EdDSA",
  "key_id": "key-2026-01",
  "value": "<compact-jws>"
}
]]></sourcecode></figure>

<t>High-assurance deployments SHOULD require a valid status signature before trusting a status decision.  Live status fetching without signature verification is not sufficient for high-assurance revocation enforcement.</t>

<t>A verifier that requires signed status SHOULD treat an unsigned or unverifiable status document as equivalent to an unknown status for purposes of the policy decision.  A verified signature on a revoked status document remains a denial.</t>

<t>This feature is currently defined for offline deterministic use.  Production live-fetching behavior with signed status is not defined in this version of the profile.</t>

</section>
</section>
<section anchor="offline-identity-verification"><name>Offline Identity Verification</name>

<t>The v0.2.2 offline identity verification procedure takes as input:</t>

<t><list style="symbols">
  <t>an Agent Identifier;</t>
  <t>a DNS Binding;</t>
  <t>an Agent Card;</t>
  <t>optionally, an Agent Status document.</t>
</list></t>

<t>A verifier performs the following checks:</t>

<t><list style="numbers" type="1">
  <t>The DNS Binding is syntactically valid.</t>
  <t>The DNS Binding <spanx style="verb">agent</spanx> value matches the Agent Identifier.</t>
  <t>The DNS Binding <spanx style="verb">card</spanx> value identifies the Agent Card URL under evaluation.</t>
  <t>The Agent Card <spanx style="verb">agent_id</spanx> matches the Agent Identifier.</t>
  <t>The Agent Card canonical hash matches <spanx style="verb">card_sha256</spanx>, if present.</t>
  <t>At least one active Agent Card signing key matches <spanx style="verb">jkt</spanx>, if present.</t>
  <t>Each declared JWK thumbprint matches its public JWK.</t>
  <t>The Agent Card signature is valid, if present.</t>
  <t>The status document is valid, if present.</t>
  <t>Revocation or compromise status is enforced.</t>
</list></t>

<t>A verifier MUST NOT allow a revoked or compromised agent merely because its cryptographic signature is valid.</t>

</section>
<section anchor="http-request-signing-profile"><name>HTTP Request Signing Profile</name>

<t>AgIS signed requests use HTTP Message Signatures <xref target="RFC9421"/>.</t>

<t>The following HTTP fields are defined by this profile:</t>

<dl>
  <dt>AgIS-Agent:</dt>
  <dd>
    <t>The Agent Identifier of the acting agent.</t>
  </dd>
  <dt>AgIS-Nonce:</dt>
  <dd>
    <t>A nonce used for replay protection in high-assurance requests.</t>
  </dd>
  <dt>AgIS-Delegation:</dt>
  <dd>
    <t>A single compact delegation token.</t>
  </dd>
  <dt>AgIS-Delegation-Chain:</dt>
  <dd>
    <t>A comma-separated ordered list of delegation tokens.</t>
  </dd>
</dl>

<t>AgIS request signatures use the signature label <spanx style="verb">agis</spanx>.</t>

<t>A basic signed AgIS request MUST cover at least the following components:</t>

<figure><sourcecode type="text"><![CDATA[
"agis-agent"
"@method"
"@target-uri"
"content-digest"
"date"
]]></sourcecode></figure>

<t>The corresponding <spanx style="verb">Signature-Input</spanx> value has the following form:</t>

<figure><sourcecode type="text"><![CDATA[
agis=("agis-agent" "@method" "@target-uri" "content-digest" "date");created=1782249000;keyid="key-2026-01";alg="ed25519"
]]></sourcecode></figure>

<t>The request MUST include both <spanx style="verb">Signature-Input</spanx> and <spanx style="verb">Signature</spanx> fields as required by HTTP Message Signatures.</t>

<t>The request body digest MUST be represented using <spanx style="verb">Content-Digest</spanx> as defined by <xref target="RFC9530"/>.  For the v0.2.2 request-body test vector, the expected value is:</t>

<figure><sourcecode type="text"><![CDATA[
sha-256=:EElbeZnbXXnH5AMO46WOKBIN6fvWcuBFv/qlOLFgSYk=:
]]></sourcecode></figure>

<t>A verifier MUST reject a request if the message body does not match the <spanx style="verb">Content-Digest</spanx> field.</t>

<t>A verifier MUST reject a request if any covered signature component has been changed after signing.</t>

</section>
<section anchor="high-assurance-requests-freshness-and-replay-protection"><name>High-Assurance Requests, Freshness, and Replay Protection</name>

<t>A high-assurance AgIS request includes <spanx style="verb">AgIS-Nonce</spanx> and signs it.</t>

<t>A high-assurance request MUST cover at least the following components:</t>

<figure><sourcecode type="text"><![CDATA[
"agis-agent"
"agis-nonce"
"@method"
"@target-uri"
"content-digest"
"date"
]]></sourcecode></figure>

<t>Example:</t>

<figure><sourcecode type="text"><![CDATA[
agis=("agis-agent" "agis-nonce" "@method" "@target-uri" "content-digest" "date");created=1782249000;keyid="key-2026-01";alg="ed25519"
]]></sourcecode></figure>

<t>A verifier of high-assurance requests MUST enforce freshness.  The verifier SHOULD reject requests whose <spanx style="verb">Date</spanx> field falls outside a locally configured freshness window.  A default freshness window of 300 seconds is RECOMMENDED for deployments that do not have stronger time synchronization or policy requirements.</t>

<t>A verifier of high-assurance requests MUST enforce replay protection.  The tuple used for replay detection SHOULD include:</t>

<t><list style="symbols">
  <t>the Agent Identifier;</t>
  <t>the nonce;</t>
  <t>the HTTP method;</t>
  <t>the target URI;</t>
  <t>the signature key identifier;</t>
  <t>a freshness-window identifier or expiration time.</t>
</list></t>

<t>A verifier MUST reject a high-assurance request if the nonce is missing.</t>

<t>A verifier MUST reject a high-assurance request if the nonce has already been observed within the replay-protection window.</t>

<t>A verifier MUST NOT commit a nonce to the replay-protection cache until all cryptographic checks — including the HTTP message signature — have passed.  Committing a nonce before signature verification would allow an attacker to deny service by burning valid nonces using forged or malformed requests.  The two-phase approach — checking replay state before cryptographic verification, but committing only after all checks succeed — is REQUIRED for high-assurance replay protection.</t>

</section>
<section anchor="delegation-tokens"><name>Delegation Tokens</name>

<t>AgIS delegation tokens allow one agent to delegate a constrained capability to another agent.</t>

<t>A v0.2.2 delegation token is a compact signed token whose payload contains at least the following members:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "type": "agis-delegation",
  "version": "0.2.2",
  "issuer": "agent://example.com/support-agent",
  "subject": "agent://example.com/invoice-worker",
  "audience": "https://api.service.example",
  "scope": [
    "resource:read",
    "invoice:read"
  ],
  "constraints": {
    "max_requests": 10,
    "purpose": "invoice-processing"
  },
  "issued_at": "2026-06-23T18:30:00Z",
  "expires_at": "2026-06-23T18:45:00Z",
  "jti": "delegation-2026-06-23-001"
}
]]></sourcecode></figure>

<t>The protected header for a v0.2.2 delegation token uses:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "alg": "EdDSA",
  "kid": "key-2026-01",
  "typ": "agis-delegation+jwt"
}
]]></sourcecode></figure>

<t>A verifier MUST reject a delegation token if:</t>

<t><list style="symbols">
  <t>the signature is invalid;</t>
  <t>the token is expired;</t>
  <t>the token is not yet valid;</t>
  <t>the <spanx style="verb">audience</spanx> does not match the expected relying party;</t>
  <t>the required scope is not included in the delegated scope;</t>
  <t>the acting agent does not match the token subject;</t>
  <t>the <spanx style="verb">jti</spanx> member is missing;</t>
  <t>local policy rejects any declared constraint.</t>
</list></t>

<t>A delegation token MUST NOT be interpreted as an unrestricted bearer credential.  It is a signed, scoped, time-bounded statement whose validity depends on signature verification, subject matching, audience matching, scope checking, time validation, and local policy.</t>

</section>
<section anchor="delegated-signed-requests"><name>Delegated Signed Requests</name>

<t>A delegated signed request includes:</t>

<t><list style="symbols">
  <t><spanx style="verb">AgIS-Agent</spanx>, identifying the acting agent;</t>
  <t><spanx style="verb">AgIS-Delegation</spanx>, carrying the delegation token;</t>
  <t><spanx style="verb">Content-Digest</spanx>;</t>
  <t><spanx style="verb">Signature-Input</spanx>;</t>
  <t><spanx style="verb">Signature</spanx>.</t>
</list></t>

<t>A delegated signed request MUST sign the <spanx style="verb">AgIS-Delegation</spanx> field.</t>

<t>The following signature components are REQUIRED for a single-delegation request:</t>

<figure><sourcecode type="text"><![CDATA[
"agis-agent"
"agis-delegation"
"@method"
"@target-uri"
"content-digest"
"date"
]]></sourcecode></figure>

<t>A verifier MUST reject the request if the <spanx style="verb">AgIS-Agent</spanx> value does not match the delegation token subject.</t>

<t>A verifier MUST reject the request if the delegation token is changed after the HTTP signature is produced.</t>

<t>A verifier MUST reject a delegated signed request unless the HTTP message signature key is bound to the delegation subject, as established by that subject's verified Agent Card key set or equivalent verified identity evidence.</t>

<t>A verifier MUST NOT accept a delegated signed request merely because both of the following are true:</t>

<t><list style="symbols">
  <t>the delegation token is cryptographically valid, and</t>
  <t>the HTTP request signature is cryptographically valid under some caller-supplied key.</t>
</list></t>

<t>The HTTP message signer key and the delegation subject MUST be verifiably bound to the same identity.  A valid delegation token and a valid request signature that were checked independently, without confirming that both refer to the same acting agent's key material, do not together constitute a valid delegated request.</t>

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

<t>A delegation chain is an ordered sequence of delegation tokens.  Each token delegates from one agent to the next.</t>

<t>For a valid chain:</t>

<t><list style="symbols">
  <t>the first token's issuer is the root issuer;</t>
  <t>the first token's subject is the second token's issuer;</t>
  <t>each subsequent token's subject is the next token's issuer;</t>
  <t>the final token's subject is the acting agent;</t>
  <t>the acting agent matches <spanx style="verb">AgIS-Agent</spanx>;</t>
  <t>the audience is valid for each token;</t>
  <t>the required scope is included in the effective scope;</t>
  <t>each token is within its validity interval;</t>
  <t>each token has a valid signature;</t>
  <t>each token contains a <spanx style="verb">jti</spanx>.</t>
</list></t>

<t>The effective scope of a delegation chain MUST NOT exceed the scope granted upstream.  Implementations SHOULD compute effective scope as the intersection of scopes across the chain unless local policy defines a stricter rule.</t>

<t>A delegation chain signed request includes <spanx style="verb">AgIS-Delegation-Chain</spanx>.  The signature MUST cover that field.</t>

<t>The following signature components are REQUIRED for a delegation-chain request:</t>

<figure><sourcecode type="text"><![CDATA[
"agis-agent"
"agis-delegation-chain"
"@method"
"@target-uri"
"content-digest"
"date"
]]></sourcecode></figure>

<t>A verifier MUST reject a delegation-chain signed request unless the HTTP message signature key is bound to the final subject of the delegation chain, as established by that final subject's verified Agent Card key set or equivalent verified identity evidence.  The final subject is the agent that acts on the delegated authority.</t>

<t>A verifier MUST NOT accept a chained delegated request merely because the delegation chain verifies and the HTTP request signature is cryptographically valid under some caller-supplied key.  Both the chain and the request signer MUST be traceable to the same final subject's verified key material.</t>

<t>A verifier MUST reject a delegation chain if:</t>

<t><list style="symbols">
  <t>the chain order is reversed;</t>
  <t>any link is broken;</t>
  <t>a downstream token attempts scope escalation;</t>
  <t>the acting agent does not match the final subject;</t>
  <t>the required scope is not in the effective scope;</t>
  <t>any token is expired;</t>
  <t>the chain field is modified after signing;</t>
  <t>the HTTP message signature key is not bound to the final subject's verified key set.</t>
</list></t>

</section>
<section anchor="trust-levels"><name>Trust Levels</name>

<t>AgIS defines the following non-normative trust levels for reporting verification strength:</t>

<dl>
  <dt>Level 0:</dt>
  <dd>
    <t>No usable AgIS identity evidence is available.</t>
  </dd>
  <dt>Level 1:</dt>
  <dd>
    <t>The Agent Identifier and Agent Card are syntactically valid.</t>
  </dd>
  <dt>Level 2:</dt>
  <dd>
    <t>A DNS Binding exists and links the Agent Identifier to an Agent Card URL.</t>
  </dd>
  <dt>Level 3:</dt>
  <dd>
    <t>The Agent Card hash and JWK thumbprint are consistent with the DNS Binding and Agent Card.</t>
  </dd>
  <dt>Level 4:</dt>
  <dd>
    <t>The Agent Card signature and status checks are valid, and the agent is active.</t>
  </dd>
  <dt>Level 5:</dt>
  <dd>
    <t>A signed request is valid with freshness and replay protection enforced, and local policy accepts the result.</t>
  </dd>
</dl>

<t>The v0.2.2 offline reference identity verification test vectors reach Level 4.  High-assurance signed request verification can reach Level 5 when freshness and replay protection are enforced by the verifier.</t>

<t>Trust levels are advisory.  Implementations MUST NOT treat a trust level as a replacement for local authorization policy.</t>

</section>
<section anchor="error-model"><name>Error Model</name>

<t>AgIS implementations SHOULD expose deterministic error codes suitable for test-vector validation and debugging.</t>

<t>The following error categories are RECOMMENDED:</t>

<t><list style="symbols">
  <t>DNS binding errors;</t>
  <t>Agent Card hash errors;</t>
  <t>JWK thumbprint errors;</t>
  <t>Agent Card signature errors;</t>
  <t>status and revocation errors;</t>
  <t>Content-Digest errors;</t>
  <t>HTTP signature errors;</t>
  <t>freshness errors;</t>
  <t>replay-detection errors;</t>
  <t>delegation token errors;</t>
  <t>delegation chain errors;</t>
  <t>local policy denial.</t>
</list></t>

<t>Error messages SHOULD be safe to log.  Error messages MUST NOT include private keys, secret tokens, bearer credentials, or unredacted sensitive request bodies.</t>

</section>
<section anchor="deterministic-test-vectors"><name>Deterministic Test Vectors</name>

<t>The v0.3.0-alpha.3 reference implementation includes 23 deterministic test vectors for:</t>

<t><list style="symbols">
  <t>Agent Card canonical hash (TV001);</t>
  <t>JWK thumbprint (TV002);</t>
  <t>DNS TXT Binding (TV003);</t>
  <t>signed Agent Card (TV004);</t>
  <t>Agent Card tampering — negative (TV004-tamper);</t>
  <t>Agent Status and revocation (TV005);</t>
  <t>invalid status documents — negative (TV005-negative);</t>
  <t>offline composite identity verification (TV006);</t>
  <t>invalid composite verification cases — negative (TV006-negative);</t>
  <t>Content-Digest (TV007);</t>
  <t>invalid Content-Digest cases — negative (TV007-negative);</t>
  <t>HTTP Message Signatures (TV008);</t>
  <t>invalid HTTP signature cases — negative (TV008-negative);</t>
  <t>offline signed request verification (TV009);</t>
  <t>invalid signed request cases — negative (TV009-negative);</t>
  <t>freshness and replay protection (TV010);</t>
  <t>invalid freshness and replay cases — negative (TV010-negative);</t>
  <t>single delegation token (TV011);</t>
  <t>invalid delegation token cases — negative (TV011-negative);</t>
  <t>delegated signed request with signer-key binding (TV012);</t>
  <t>invalid delegated request cases — negative (TV012-negative);</t>
  <t>delegation chain signed request with final-subject key binding (TV013);</t>
  <t>invalid delegation chain request cases — negative (TV013-negative);</t>
  <t>status decision policy across all six status values (TV014);</t>
  <t>delegated request with attacker key — negative (TV015-negative);</t>
  <t>chain delegated request with attacker key — negative (TV016-negative);</t>
  <t>replay nonce not committed on invalid signature — negative (TV017-negative);</t>
  <t>deprecated unbound signer key, deny by default — negative (TV018-negative);</t>
  <t>deprecated unbound signer key, explicit opt-in allows with warning (TV019);</t>
  <t>signed active status document: valid signature, decision allow (TV020);</t>
  <t>tampered signed status document: signature fails, decision deny (TV021-negative);</t>
  <t>signed revoked status document: valid signature, decision deny — status policy (TV022-negative);</t>
  <t>unsigned status document with required signature: decision deny (TV023-negative).</t>
</list></t>

<t>Independent implementations SHOULD validate against the deterministic test vectors before claiming compatibility with this profile.</t>

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

<t>AgIS is a security-sensitive identity and request-verification profile.  Implementations and deployments need to consider at least the following threats.</t>

<section anchor="dns-control-and-domain-compromise"><name>DNS Control and Domain Compromise</name>

<t>AgIS binds agent identity to DNS names.  If an attacker controls the DNS zone, registrar account, authoritative DNS provider account, or DNS publication pipeline, the attacker can publish malicious Agent Bindings.</t>

<t>Deployments SHOULD protect registrar and DNS provider accounts with strong authentication and operational controls.  DNSSEC MAY be used where available, but this document does not require DNSSEC.</t>

</section>
<section anchor="https-publication-security"><name>HTTPS Publication Security</name>

<t>Agent Cards and status documents are expected to be published over HTTPS.  If HTTPS publication infrastructure is compromised, an attacker may publish altered Agent Cards or status documents.</t>

<t>Verifiers SHOULD prefer DNS Binding values that include <spanx style="verb">card_sha256</spanx> and <spanx style="verb">jkt</spanx>, because these allow detection of Agent Card or key substitution when the DNS Binding remains trustworthy.</t>

</section>
<section anchor="canonicalization-attacks"><name>Canonicalization Attacks</name>

<t>Incorrect JSON canonicalization can cause implementations to compute different hashes or verify different payloads.  Implementations MUST use JCS as specified by this document and MUST exclude only the top-level <spanx style="verb">signature</spanx> member from Agent Card hashing.</t>

<t>Implementations MUST NOT canonicalize by using ordinary pretty-printing, unstable object key ordering, locale-sensitive ordering, or runtime-specific serialization behavior.</t>

</section>
<section anchor="key-compromise"><name>Key Compromise</name>

<t>If an agent signing key is compromised, an attacker may produce valid signatures until the key is revoked or removed from the Agent Card and status information is updated.</t>

<t>Publishers SHOULD provide short status TTLs for higher-risk agents.  Verifiers SHOULD respect revocation and compromised states even when signatures remain cryptographically valid.</t>

</section>
<section anchor="revocation-caching"><name>Revocation Caching</name>

<t>Caching improves availability but can delay enforcement of revocation.  Publishers SHOULD use conservative status TTLs.  Verifiers SHOULD bound cache lifetime and MAY re-check status for high-risk operations.</t>

</section>
<section anchor="replay-attacks"><name>Replay Attacks</name>

<t>Signed requests without freshness and replay protection can be captured and replayed.  High-assurance deployments MUST require freshness checking and nonce-based replay protection.</t>

</section>
<section anchor="clock-skew"><name>Clock Skew</name>

<t>Freshness checks depend on clocks.  Verifiers SHOULD define an acceptable clock-skew window.  Deployments SHOULD maintain reliable time synchronization.</t>

</section>
<section anchor="signature-confusion"><name>Signature Confusion</name>

<t>Implementations MUST verify the expected signature label and covered components.  A signature over one set of components MUST NOT be accepted as proof over a different set of components.</t>

</section>
<section anchor="delegation-confusion-and-signer-key-binding"><name>Delegation Confusion and Signer-Key Binding</name>

<t>Delegation tokens MUST be checked for issuer, subject, audience, scope, time validity, and <spanx style="verb">jti</spanx>.  A delegation token MUST NOT be treated as an unrestricted bearer credential.</t>

<t>Delegation chains MUST preserve order and MUST prevent downstream scope escalation.</t>

<t>A critical class of delegation confusion arises when a verifier checks the delegation token and the HTTP request signature independently without confirming that both are associated with the same acting agent's key material.  In such a case, an attacker may present a legitimate delegation token alongside an HTTP request signed by a different key — a key that the attacker controls — and thereby act on delegated authority without possessing the legitimate agent's signing key.</t>

<t>To prevent this, implementations MUST bind:</t>

<t><list style="symbols">
  <t>the delegation token signature key to the delegation issuer's verified identity; and</t>
  <t>the HTTP request signature key to the delegation subject's (or chain final subject's) verified identity.</t>
</list></t>

<t>The HTTP message signer key MUST be resolved from the delegation subject's verified key set.  A verifier MUST NOT derive an allow decision from the combination of a valid delegation token and a valid HTTP request signature unless both keys are bound to the corresponding agents' verified identity evidence.</t>

<t>Failure to enforce this binding allows confused-deputy behavior, where the delegation grants authority over one agent and the request signature is produced by a different, potentially malicious party.</t>

</section>
<section anchor="status-document-integrity"><name>Status Document Integrity</name>

<t>Status document values directly control the trust decision for an agent: <spanx style="verb">active</spanx> produces allow; <spanx style="verb">revoked</spanx>, <spanx style="verb">suspended</spanx>, and <spanx style="verb">compromised</spanx> produce deny; <spanx style="verb">unknown</spanx> and <spanx style="verb">deprecated</spanx> produce review.  An attacker who can modify a status document in transit or at rest can therefore elevate a revoked agent to active, or deny service to a legitimate agent.</t>

<t>The v0.3.0-alpha.3 reference implementation supports optional and required EdDSA/JWS signatures over status documents.  The signature covers the JCS-canonicalized status document excluding the <spanx style="verb">signature</spanx> field.  Verifiers can require a valid status signature before accepting a status decision.</t>

<t>For live status retrieval, implementations MUST protect status endpoint access using authenticated transport (HTTPS with valid certificates).  Live status fetching without signature verification is not sufficient for high-assurance revocation enforcement; an unsigned status document served over plain HTTPS is susceptible to modification by an adversary who controls the status endpoint or a network path to it.</t>

<t>Production deployments SHOULD use signed status documents.  Implementations SHOULD verify the status document signature before trusting a status decision in any high-assurance context.  The status signature key SHOULD be the same key declared in the Agent Card, or a key verifiably associated with the same agent identity.</t>

<t>Implementations MUST NOT treat the current alpha signed status document support as a complete production mechanism.  Live DNS and HTTPS resolver behavior and long-term key management for status signing remain out of scope for this profile version.</t>

</section>
<section anchor="test-keys"><name>Test Keys</name>

<t>The deterministic test keys included with the reference implementation are public test material.  They MUST NOT be used in production.</t>

</section>
<section anchor="local-authorization"><name>Local Authorization</name>

<t>AgIS verification does not authorize an action by itself.  A relying party MUST apply local authorization policy after identity, request, freshness, status, and delegation checks.</t>

</section>
</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>AgIS identifiers, DNS Binding names, Agent Card URLs, and status endpoints may reveal information about an organization's internal agent naming, capabilities, deployment structure, or operational status.</t>

<t>Publishers SHOULD avoid embedding sensitive internal project names, customer names, incident information, or confidential workflow details in public Agent Identifiers or Agent Cards.</t>

<t>Verifiers SHOULD avoid logging sensitive request bodies, delegation tokens, or identifiers beyond operational necessity.</t>

<t>Delegation chains can reveal workflow structure.  Deployments SHOULD minimize delegated scope, token lifetime, and exposed constraints.</t>

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

<t>This document makes no IANA requests at this time.</t>

<t>Future versions may request registration of:</t>

<t><list style="symbols">
  <t>the <spanx style="verb">agent</spanx> URI scheme;</t>
  <t>an AgIS well-known URI;</t>
  <t>AgIS-specific HTTP field names;</t>
  <t>AgIS parameter registries.</t>
</list></t>

<t>No such registrations are requested by this version of the document.</t>

</section>
<section anchor="implementation-status"><name>Implementation Status</name>

<t>This section records implementation status for informational purposes and is expected to be removed or updated before publication as an RFC.</t>

<t>The AgIS v0.3.0-alpha.3 reference implementation includes:</t>

<t><list style="symbols">
  <t>a TypeScript SDK (<spanx style="verb">@epicortek/agis-sdk-ts</spanx>);</t>
  <t>a CLI named <spanx style="verb">agis</spanx> (<spanx style="verb">@epicortek/agis-cli</spanx>);</t>
  <t>23 deterministic test vectors covering all features and selected negative cases;</t>
  <t>offline identity verification;</t>
  <t>Agent Card canonical hashing;</t>
  <t>JWK thumbprint verification;</t>
  <t>DNS Binding parsing;</t>
  <t>signed Agent Card verification with explicit EdDSA algorithm verification;</t>
  <t>status and revocation validation with a status decision policy (<spanx style="verb">active</spanx> → allow, <spanx style="verb">revoked</spanx>/<spanx style="verb">suspended</spanx>/<spanx style="verb">compromised</spanx> → deny, <spanx style="verb">unknown</spanx>/<spanx style="verb">deprecated</spanx> → review);</t>
  <t>signed agent status document support: EdDSA/JWS signature generation and verification over JCS-canonicalized status documents; optional or required signature verification with <spanx style="verb">requireSignature</spanx> option;</t>
  <t>Content-Digest validation;</t>
  <t>HTTP Message Signature verification;</t>
  <t>freshness and two-phase replay protection (check then commit only on allow);</t>
  <t>single delegation token verification;</t>
  <t>delegated signed request verification with signer-key binding enforced by default;</t>
  <t>delegation chain verification with final-subject signer-key binding enforced by default.</t>
</list></t>

<t>The implementation enforces that delegated request verification produces an allow decision only when the HTTP message signature key is demonstrably bound to the delegation subject's verified identity.  A deprecated compatibility path (<spanx style="verb">requestSignerPublicJwk</spanx> without <spanx style="verb">actingSubjectPublicKeys</spanx>) requires an explicit caller opt-in flag (<spanx style="verb">allowUnboundDeprecatedSignerKey: true</spanx>) and produces a warning; without the opt-in, the decision is deny.</t>

<t>The implementation is positioned as an ANS-compatible verification and governance layer.  It is not affiliated with or endorsed by Linux Foundation ANS.</t>

<t>The implementation does not yet define production live DNS or HTTPS resolver behavior, DNSSEC validation requirements, automatic binding of status signing keys to live resolver trust anchors, a production trust network, or a global trust root.</t>

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

<t>The author thanks the broader Internet standards community whose existing specifications make it possible to define AgIS as a narrow profile over deployed web infrastructure rather than as a new stack.</t>

</section>


  </middle>

  <back>


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

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



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>

<reference anchor="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="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="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="RFC7638">
  <front>
    <title>JSON Web Key (JWK) Thumbprint</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7638"/>
  <seriesInfo name="DOI" value="10.17487/RFC7638"/>
</reference>

<reference anchor="RFC8037">
  <front>
    <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
    <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8037"/>
  <seriesInfo name="DOI" value="10.17487/RFC8037"/>
</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="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="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="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="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>




    </references>

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

<reference anchor="AGIS-IMPL" target="https://github.com/epicortek/agis">
  <front>
    <title>AgIS v0.3.0-alpha.3 Reference Implementation, CLI, and Deterministic Test Vectors</title>
    <author >
      <organization>EPICORTEK Technologies Inc.</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="AGIS-SDK" target="https://www.npmjs.com/package/@epicortek/agis-sdk-ts">
  <front>
    <title>AgIS TypeScript SDK</title>
    <author >
      <organization>EPICORTEK Technologies Inc.</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="AGIS-CLI" target="https://www.npmjs.com/package/@epicortek/agis-cli">
  <front>
    <title>AgIS CLI</title>
    <author >
      <organization>EPICORTEK Technologies Inc.</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>


    </references>

</references>


<?line 945?>

<section anchor="example-agent-identifier"><name>Example Agent Identifier</name>

<figure><sourcecode type="text"><![CDATA[
agent://example.com/support-agent
]]></sourcecode></figure>

</section>
<section anchor="example-dns-txt-binding"><name>Example DNS TXT Binding</name>

<figure><sourcecode type="text"><![CDATA[
agis=0.2.2; agent=agent://example.com/support-agent; card=https://example.com/.well-known/agis/agents/support-agent.json; jkt=dXBQ4ZkgA3nTvwrFeLAKYokanVfetC0fzXUiSFkYg08; card_sha256=842dbbbf1c807d020ceafe7fd8b51502cf7ae94314238e293a36c736463a3122
]]></sourcecode></figure>

</section>
<section anchor="example-agent-card-hash"><name>Example Agent Card Hash</name>

<figure><sourcecode type="text"><![CDATA[
842dbbbf1c807d020ceafe7fd8b51502cf7ae94314238e293a36c736463a3122
]]></sourcecode></figure>

</section>
<section anchor="example-jwk-thumbprint"><name>Example JWK Thumbprint</name>

<figure><sourcecode type="text"><![CDATA[
dXBQ4ZkgA3nTvwrFeLAKYokanVfetC0fzXUiSFkYg08
]]></sourcecode></figure>

</section>
<section anchor="example-content-digest"><name>Example Content-Digest</name>

<figure><sourcecode type="text"><![CDATA[
sha-256=:EElbeZnbXXnH5AMO46WOKBIN6fvWcuBFv/qlOLFgSYk=:
]]></sourcecode></figure>

</section>


  </back>

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

-->

</rfc>

