<?xml version="1.0" encoding="UTF-8" ?>
<rfc ipr="trust200902" docName="draft-huang-rats-agentic-eat-cap-attest-00" category="std" submissionType="IETF" updates="" obsoletes="" xml:lang="en" version="3" xmlns:xi="http://www.w3.org/2001/XInclude">
  <front>
    <title abbrev="Agentic EAT Cap Attest">Capability Attestation Extensions for the Entity Attestation Token (EAT) in Agentic AI Systems</title>
    <seriesInfo name="Internet-Draft" value="draft-huang-rats-agentic-eat-cap-attest-00"/>
    <author fullname="Ken Huang" initials="K." surname="Huang">
      <organization>DistributedApps.ai</organization>
      <address>
        <email>ken.huang@DistributedApps.ai</email>
      </address>
    </author>
    <date month="June" year="2025"/>
    <area>Security</area>
    <workgroup>RATS</workgroup>
    <abstract>
      <t>
        This document specifies extensions to the Entity Attestation Token (EAT) <xref target="RFC9248"/> to support robust, interoperable attestation of capabilities in agentic AI systems. These extensions introduce new claims and guidance for securely asserting agent functional, reasoning, and operational capabilities, as well as their compositional structure and policy constraints. The goal is to enable trustworthy, verifiable, and privacy-respecting capability attestation for autonomous agents in dynamic, decentralized environments.
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
        The Entity Attestation Token (EAT) <xref target="RFC9248"/> defines a CBOR/COSE-based structure for representing signed claims about an entity's identity, configuration, and operational state. While EAT is widely adopted for device attestation, agentic AI systems—such as autonomous planners, LLM-based agents, and API orchestrators—require more granular and dynamic attestation of their capabilities, constraints, and compositional structure.
      </t>
      <t>
        This document defines EAT extensions for agentic AI, supporting:
      </t>
      <ul spacing="normal">
        <li>Attestation of agent capabilities, behavioral policies, and internal module composition.</li>
        <li>Secure, privacy-preserving assertions suitable for decentralized, multi-agent environments.</li>
        <li>Mechanisms for endorsement and trust anchor management.</li>
      </ul>
      <t>
        These extensions are intended to facilitate secure agent interaction, policy-based access control, and dynamic trust establishment.
      </t>
    </section>

    <section anchor="terminology" numbered="true">
      <name>Terminology</name>
      <dl>
        <dt>Agent</dt>
        <dd>An autonomous computational entity capable of executing plans, interacting with services, and making decisions.</dd>
        <dt>Capability Attestation</dt>
        <dd>The process of proving what an agent can do, including reasoning methods, tool use, language models, and planning systems.</dd>
        <dt>Agent Capability Token (ACT)</dt>
        <dd>An EAT-compliant token carrying claims about agentic capability attributes.</dd>
        <dt>Submodule</dt>
        <dd>A functional component within an agent (e.g., planner, retriever, executor) that may have its own EAT claims.</dd>
      </dl>
    </section>

    <section anchor="use-cases" numbered="true">
      <name>Use Cases</name>      
      <ul spacing="normal">
        <li>Trust establishment between AI agents prior to interaction, ensuring only agents with appropriate capabilities participate in sensitive workflows.</li>
        <li>Secure registration of AI agents in public or private registries, with verifiable claims about their operational scope and limitations.</li>
        <li>Policy-based access control where access to resources or APIs is granted based on attested agent capabilities and policy constraints.</li>
        <li>Dynamic capability negotiation in multi-agent systems, enabling agents to adaptively select partners or workflows based on verified capabilities.</li>
      </ul>
    </section>

    <section anchor="capability-attestation-claims" numbered="true">
      <name>Capability Attestation Claims</name>
      <t>
        The following claims are introduced for agent capability attestation. Each claim is assigned a unique CBOR label in the EAT claims registry.
      </t>
      <dl>
        <dt>agent_id (CBOR label 40001)</dt>
        <dd>Globally unique identifier for the agent.</dd>
        <dt>agent_capabilities (CBOR label 40002)</dt>
        <dd>Map describing capabilities, e.g., planning methods, NLP models, tool use, reasoning, delegation.</dd>
        <dt>policy_constraints (CBOR label 40003)</dt>
        <dd>Operational policies and constraints, e.g., data access, temperature limits, explainability.</dd>
        <dt>capability_version (CBOR label 40004)</dt>
        <dd>Version string of the capability declaration.</dd>
        <dt>model_fingerprint (CBOR label 40005)</dt>
        <dd>Hash or identifier of the core model or weights.</dd>
        <dt>dynamic_proof (CBOR label 40006)</dt>
        <dd>Challenge-response or external validation artifact.</dd>
        <dt>submodules (CBOR label 40007)</dt>
        <dd>Array of nested EATs, each representing a submodule with its own signed claims.</dd>
        <dt>endorsements (CBOR label 40008)</dt>
        <dd>Endorsement by registry or certifying authority, including issuer, cert_type, and signature.</dd>
      </dl>
      <t>
        Example agent_capabilities claim:
      </t>
      <sourcecode type="json">
{
  "planning": ["BFS", "A*", "LlamaPlan"],
  "nlp_models": ["llama3-8b", "gpt-4.5-turbo"],
  "tool_use": ["web_access", "code_exec"],
  "reasoning": ["symbolic", "LLM-hybrid"],
  "delegation": true
}
      </sourcecode>
      <t>
        Example policy_constraints claim:
      </t>
      <sourcecode type="json">
{
  "data_access": ["PII_restricted"],
  "temperature_limit": 0.8,
  "explainability_required": true
}
      </sourcecode>
    </section>

    <section anchor="nested-modular-agent" numbered="true">
      <name>Nested and Modular Agent Representations</name>
      <t>
        Agentic AI systems may be composed of multiple modules, each with distinct capabilities and trust requirements. The submodules claim enables the inclusion of multiple signed, nested EATs, each representing a submodule. Each submodule EAT must include its own agent_capabilities and be signed by the same or a recognized authority.
      </t>
      <t>
        This compositional approach supports modular attestation, allowing verifiers to assess the trustworthiness of both the agent as a whole and its individual components.
      </t>
    </section>

    <section anchor="endorsements-trust-anchors" numbered="true">
      <name>Endorsements and Trust Anchors</name>
      <t>
        Endorsements provide third-party assurance of agent capability claims. The endorsements claim encodes information such as the issuer, certificate type, and a COSE_Sign1 signature over the claims or schema.
      </t>
      <t>
        Example endorsements claim:
      </t>
      <sourcecode type="json">
{
  "issuer": "AgenticAITrust.org",
  "cert_type": "capability-schema",
  "signature": "&lt;COSE_Sign1 representation&gt;"
}
      </sourcecode>
      <t>
        Trust anchors for capability validation should be managed by ecosystem authorities, using X.509 or DICE profiles as appropriate. Verifiers must validate endorsement signatures and check certificate revocation status as part of the trust evaluation process.
      </t>
    </section>

    <section anchor="security-considerations" numbered="true">
      <name>Security Considerations</name>
      <ul spacing="normal">
        <li>All claims must be signed using COSE_Sign1. Endorsements should be cryptographically verifiable.</li>
        <li>Include freshness indicators such as iat (issued at), exp (expiration), and nonces for replay protection.</li>
        <li>The dynamic_proof claim enables challenge-response or external validation to demonstrate live capability.</li>
        <li>Only disclose claims necessary for the verifier's trust decision, minimizing exposure of internal details.</li>
        <li>Implementers must ensure compliance with relevant security best practices for cryptographic operations and key management.</li>
      </ul>
    </section>

    <section anchor="privacy-considerations" numbered="true">
      <name>Privacy Considerations</name>
      <ul spacing="normal">
        <li>Capability claims may reveal sensitive internal structure. Use COSE_Encrypt for confidentiality when required.</li>
        <li>Selective disclosure via layered EATs can support verifier-specific access.</li>
        <li>Implementers must ensure compliance with relevant privacy laws and regulations when attesting capabilities.</li>
      </ul>
    </section>

    <section anchor="iana-considerations" numbered="true">
      <name>IANA Considerations</name>
      <t>
        This document requests allocation of CBOR labels 40001–40008 in the Entity Attestation Token (EAT) claims registry.
      </t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC9248" target="https://www.rfc-editor.org/rfc/rfc9248.html">
        <front>
          <title>The Entity Attestation Token (EAT)</title>
          <author initials="L." surname="Lundblade"/>
          <author initials="G." surname="Mandyam"/>
          <author initials="J." surname="O'Donoghue"/>
          <date month="June" year="2022"/>
        </front>
        <seriesInfo name="RFC" value="9248"/>
      </reference>
    </references>
    <references>
      <name>Informative References</name>
      <reference anchor="RFC9334" target="https://www.rfc-editor.org/rfc/rfc9334.html">
        <front>
          <title>Remote Attestation Procedures Architecture</title>
          <author initials="H." surname="Birkholz"/>
          <author initials="D." surname="Thaler"/>
          <author initials="M." surname="Eckel"/>
          <author initials="N." surname="Smith"/>
          <date month="January" year="2023"/>
        </front>
        <seriesInfo name="RFC" value="9334"/>
      </reference>
    </references>
  </back>
</rfc>