| Internet-Draft | AACP | October 2026 |
| Levi & Yeger | Expires 7 April 2027 | [Page] |
This document defines the Autonomous Agent Certification Protocol (AACP), a framework for binding successful evaluation of an AI agent to cryptographically verifiable evidence of demonstrated capability.¶
AACP introduces Evaluation Profiles that define the conditions under which an agent may be certified for a specific capability. An Agent Configuration that satisfies an Evaluation Profile may receive a short-lived Agent Certification Credential (ACC) bound to the configuration that was evaluated.¶
An ACC does not grant access to a resource. It provides verifiable evidence that an agent has demonstrated a capability under defined evaluation conditions. Existing authorization systems may require such evidence as a condition for granting corresponding production permissions.¶
AACP therefore separates capability certification from identity, authentication, delegation, and authorization.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 7 April 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
AI agents increasingly interact with production APIs, tools, data, infrastructure, and other security-sensitive resources.¶
Existing identity and authorization mechanisms can establish which agent is making a request, on whose behalf it is acting, and which permissions have been granted to it. These mechanisms do not, by themselves, establish that the agent has demonstrated the ability to exercise a requested capability in accordance with defined safety, security, and operational requirements.¶
AI evaluation systems ("evals") provide a mechanism for testing agent behavior against tasks, scenarios, and failure conditions. Evaluation results, however, are commonly used as development or deployment signals and are not generally represented as portable evidence that can participate directly in authorization decisions.¶
AACP defines a standardized binding between these two functions:¶
Evaluation -> Demonstrated Capability -> Certification Evidence
-> Authorization Eligibility
¶
Under AACP, a Certification Issuer MUST NOT issue certification evidence for a capability unless the Agent Configuration has satisfied an applicable Evaluation Profile for that capability.¶
A protected resource MAY require valid AACP certification evidence as one input to an authorization decision. Successful certification does not itself authorize an operation. This distinction is fundamental:¶
For example, an administrator may authorize an agent to access infrastructure APIs, while organizational policy additionally requires the agent to hold a valid certification for the capability "infrastructure.read" before that authorization can become effective.¶
AACP does not replace OAuth, workload identity, access tokens, delegation protocols, or policy engines. It supplies an additional verifiable signal that those systems can consume.¶
This document specifies:¶
This document does not standardize:¶
Authentication establishes the identity of a principal.¶
Attestation provides evidence concerning the state or properties of a workload [RFC9334].¶
Authorization establishes whether a principal is permitted to perform an operation.¶
AACP introduces a separate concept: capability certification. Capability certification establishes that a particular Agent Configuration satisfied an Evaluation Profile associated with one or more capabilities.¶
Authorization systems MAY consume AACP certification evidence as an input to their existing policy decisions. An AACP credential MUST NOT be interpreted as an access token.¶
Other work in progress addresses agent identity, delegation, and credential attestation, including [I-D.ietf-wimse-aims] and [I-D.yakung-oauth-agent-attestation]. AACP is intended to complement such mechanisms rather than to duplicate them: those mechanisms establish who an agent is and what it has been permitted to do, while AACP conveys what an Agent Configuration has been shown capable of doing. These mechanisms SHOULD be composable such that an authorization decision can relate the certified capability to the uniquely identified Agent, the authority under which it acts, the applicable purpose or transaction context, and the current runtime state, without requiring AACP itself to standardize identity or delegation.¶
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
AACP separates evaluation, certification, and authorization. A typical deployment contains the following logical components:¶
+-------------------------+
| Agent Configuration |
+------------+------------+
|
v
+-------------------------+
| Evaluation Service |
| |
| Evaluation Profile |
| + Eval Set(s) |
+------------+------------+
|
PASS
|
v
+-------------------------+
| Certification Issuer |
+------------+------------+
|
| ACC
v
+-------------------------+
| Authorization System |
| / Policy Engine |
+------------+------------+
|
authorization
decision
|
v
+-------------------------+
| Policy Enforcement |
| Point / Resource |
+-------------------------+
An Evaluator determines whether an agent has demonstrated a capability.¶
A Certification Issuer records that result in an ACC.¶
An Authorization System determines whether the agent is permitted to exercise that capability against a particular resource.¶
These functions MAY be operated by the same organization but MUST be logically distinguishable.¶
An ACC MUST NOT directly grant access to a protected resource. In an end-to-end deployment, certification evidence represents demonstrated capability ("can"), while local authorization policy determines whether that capability may be exercised in the current context ("may"). The authorization architecture SHOULD preserve sufficient identity, delegation, purpose, resource, and runtime context to support policy enforcement and subsequent audit.¶
An Evaluation Profile defines the requirements that MUST be satisfied before an Agent Configuration can be certified for a capability.¶
An Evaluation Profile MUST be versioned and uniquely identifiable. A profile MUST specify:¶
A profile MAY additionally define:¶
A Profile Version MUST be a dot-separated sequence of one or more non-negative decimal integers without leading zeros (for example, "1.0" or "2.3.1").¶
Two versions are compared component by component, from left to right, as integers. A missing trailing component is treated as zero, so "2" and "2.0" are equal. A version is greater than another if the first differing component is greater.¶
A change to a profile that alters its pass criteria, its Eval Sets, or its bound configuration elements MUST result in a new Profile Version.¶
AACP does not define the contents of an Eval Set. Eval Sets MAY be vendor-provided, organization-specific, industry-specific, or defined by another standards body.¶
AACP instead defines how an Evaluation Profile identifies the Eval Set used to produce a certification result. This allows evaluation methodologies to evolve independently of the certification protocol.¶
An Evaluation Profile MUST define unambiguous criteria for determining whether certification is issued.¶
A certification MUST NOT be issued solely because an agent achieves a high aggregate score if the profile defines mandatory conditions that the agent failed to satisfy.¶
For example, a profile might require both:¶
overall_success_rate >= 0.95¶
and:¶
unauthorized_write_operations == 0¶
In this case, an agent with a 99 percent aggregate evaluation score that performs one prohibited write operation MUST NOT be certified.¶
Agent behavior is commonly nondeterministic. The same Agent Configuration can pass a task in one run and fail it in another.¶
An Evaluation Profile that uses rate-based criteria SHOULD specify the minimum number of evaluation runs and the statistical method used to evaluate those criteria. For high-risk capabilities, rate-based criteria SHOULD be evaluated against a lower confidence bound at a stated confidence level rather than against the observed point estimate.¶
For example, an observed success rate of 0.95 over 20 runs and the same observed rate over 2,000 runs support materially different conclusions, and a profile SHOULD NOT treat them as equivalent.¶
Invariant criteria, such as a prohibition on unauthorized write operations, apply to every run: a single violation in any run MUST cause the evaluation to fail.¶
Certification MUST be bound to the Agent Configuration that was evaluated.¶
An implementation MUST NOT assume that certification of one model, system instruction, tool configuration, or runtime applies to a materially different configuration.¶
Security-relevant configuration MAY include:¶
Implementations MUST construct an Agent Configuration Manifest as a JSON object containing the configuration elements bound by the applicable Evaluation Profile.¶
Sensitive values, including system instructions, SHOULD be represented in the manifest by their digests rather than by their values.¶
Before the Agent Configuration Digest is calculated, the manifest MUST be serialized using the JSON Canonicalization Scheme (JCS) [RFC8785]. The Agent Configuration Digest is the hash of the resulting octets.¶
All digests defined by this document, including "agent_config_digest" and "evaluation_digest", MUST be represented as Named Information ("ni") URIs [RFC6920], which carry both the hash algorithm and the base64url-encoded hash value.¶
Implementations MUST support "sha-256" and MUST NOT use the truncated hash suites defined in [RFC6920].¶
For example:¶
ni:///sha-256;TFMWVKhN0Lcg1Bq0oxd5hNzU8wYzqZ5GuJxFgGzTd0I¶
An Evaluation Profile MUST identify which changes invalidate certification.¶
If a configuration change modifies an element bound by the Evaluation Profile, an existing ACC MUST NOT be treated as evidence for the modified configuration.¶
Examples of potentially certification-invalidating changes include:¶
A Verifier needs to establish that the Agent presenting an ACC is currently running the configuration identified by the ACC's "agent_config_digest" claim. The ACC alone cannot establish this, because it describes the configuration at evaluation time.¶
The Verifier MUST obtain evidence of the current Agent Configuration Digest from a source it trusts. Such a source MAY be:¶
A configuration digest asserted solely by the Agent itself SHOULD NOT be accepted as runtime configuration evidence. It MUST NOT be accepted for a capability that the Evaluation Profile classifies as high-risk.¶
The mechanism for producing and conveying runtime configuration evidence is outside the scope of this document.¶
Certification consists of the following logical steps:¶
The Agent Certification Credential (ACC) is a cryptographically signed representation of a successful AACP certification.¶
An ACC MUST be represented as a JSON Web Token (JWT) [RFC7519] signed using JSON Web Signature (JWS) [RFC7515]. Unsecured JWTs (algorithm "none") MUST NOT be used.¶
JWT processing MUST follow the security recommendations of [RFC8725].¶
An ACC is certification evidence and MUST NOT be treated as an OAuth access token.¶
An ACC MUST contain an explicit type value, as recommended by Section 3.11 of [RFC8725]:¶
"typ": "aacp-cert+jwt"¶
Implementations MUST validate the expected type before interpreting a JWT as an ACC.¶
Implementations MUST explicitly configure acceptable cryptographic algorithms and MUST reject credentials using algorithms outside that configured set.¶
An ACC MUST contain the following claims:¶
An ACC MAY contain:¶
The following non-normative example shows the JOSE header and claims of an ACC certifying an agent for a log-analysis capability. Line breaks within values are for readability only.¶
{
"typ": "aacp-cert+jwt",
"alg": "ES256",
"kid": "cert-2026-09"
}
.
{
"iss": "https://cert.example.com",
"sub": "agent:b4f2c9a1",
"aud": "https://auth.example.com",
"iat": 1790000000,
"exp": 1790086400,
"jti": "acc:9e1d2f71",
"aacp_profile": {
"id": "https://profiles.example.com/log-analysis",
"version": "1.0"
},
"aacp_capabilities": [
"urn:example:capability:log-analysis"
],
"agent_config_digest":
"ni:///sha-256;TFMWVKhN0Lcg1Bq0oxd5hNzU8wYzqZ5GuJxFgGzTd0I",
"evaluated_at": 1789999800,
"evaluation_digest":
"ni:///sha-256;I71xw3tBpZdGYz7r0cVq2nKqLw8m2Qk8rXcH5J1uYhs"
}
¶
A protected resource or Authorization System MAY define a policy requiring an AACP certification for a requested operation. For example:¶
requested operation:
production.logs.read
authorization requirement:
capability = urn:example:capability:log-analysis
required profile:
id = https://profiles.example.com/log-analysis
version >= 1.0
¶
The Authorization System MUST independently determine whether the requesting Agent is otherwise authorized to perform the operation.¶
Possession of the required certification MUST NOT by itself cause an authorization decision to succeed.¶
Before using an ACC in an authorization decision, the Verifier MUST:¶
Failure of any of these verification steps MUST cause the certification evidence to be rejected.¶
An Agent requests:¶
infrastructure.vm.read¶
The authorization policy requires:¶
capability:
urn:example:capability:infrastructure-read
profile:
id = urn:example:aacp-profile:infrastructure-read
version >= 2.0
¶
If the Agent:¶
then the Authorization System MAY grant the requested permission.¶
Certification is therefore a prerequisite, not the permission itself. For material or privileged actions, deployments SHOULD be able to attribute the resulting action to the Agent identity, the applicable certified capability, the authority or delegation under which the Agent acted, and the relevant authorization context.¶
Certifications MUST have finite validity periods.¶
The appropriate lifetime depends on the capability, environment, Agent Configuration, and organizational risk policy. Highly privileged or safety-sensitive capabilities SHOULD use shorter certification lifetimes than low-risk capabilities.¶
AACP does not mandate a universal maximum lifetime. Authorization policy MAY impose a maximum acceptable certification age shorter than the ACC validity period, particularly for high-risk capabilities. Changes in runtime risk, delegated authority, operating context, or observed behavior MAY trigger re-evaluation or re-certification even when the ACC has not expired.¶
Re-certification MUST occur when certification has expired.¶
Re-certification MUST also occur when an Evaluation Profile identifies a configuration change as certification-invalidating.¶
Implementations SHOULD support additional re-certification triggers, including:¶
Certification Issuers SHOULD provide a mechanism allowing Verifiers to determine whether an otherwise unexpired ACC has been revoked.¶
Issuers MAY use the Token Status List mechanism [I-D.ietf-oauth-status-list] by including a "status" claim in the ACC. Other revocation mechanisms are deployment-specific and outside the scope of this document.¶
Implementations MUST NOT treat possession of a valid ACC as sufficient authorization to access a resource. Doing so would convert certification evidence into a bearer permission and defeat the separation defined by this document.¶
An attacker could evaluate a restricted Agent Configuration and subsequently present the resulting ACC while running a modified, more privileged configuration.¶
Verifiers MUST therefore validate the binding between the current Agent Configuration and the "agent_config_digest" claim in the ACC, using runtime configuration evidence as described in Section 5.4. If that evidence is asserted only by the Agent, a compromised or malicious Agent can report the evaluated digest while running a different configuration; this is why self-asserted evidence is not accepted for high-risk capabilities.¶
An agent may perform well on a known Eval Set without reliably demonstrating the intended capability in unseen conditions.¶
Evaluation Profiles SHOULD therefore incorporate appropriate variation and SHOULD avoid relying exclusively on publicly predictable static test cases for high-risk certifications. Insufficient repetition can also produce misleading results (see Section 4.4).¶
AACP certification represents successful completion of the defined Evaluation Profile. It MUST NOT be interpreted as a guarantee of safe behavior under all possible conditions.¶
A compromised or malicious Evaluator or Certification Issuer could certify agents that did not complete the stated Evaluation Profile.¶
Authorization systems MUST maintain explicit trust policy for accepted Certification Issuers.¶
A cryptographically valid signature establishes the source and integrity of an assertion. It does not establish that the issuer is trustworthy.¶
An attacker obtaining a valid ACC might attempt to reuse it.¶
Audience restriction MUST be enforced.¶
Deployments requiring stronger protection SHOULD use sender-constrained mechanisms or equivalent proof-of-possession controls. OAuth DPoP [RFC9449] MAY be used where AACP evidence participates in an OAuth-based architecture.¶
Passing an Evaluation Profile does not establish immunity to future prompt injection or other adversarial inputs. Configuration integrity MUST NOT be interpreted as behavioral integrity. Untrusted input, retrieved context, tool output, or environmental state can materially alter effective Agent behavior without changing the Agent Configuration Digest. Deployments SHOULD therefore use runtime monitoring and behavioral controls appropriate to the risk of the certified capability.¶
Profiles for capabilities exposed to untrusted input SHOULD include relevant adversarial evaluation scenarios.¶
Certification MUST NOT be described as proof that an Agent is immune to prompt injection.¶
Evaluation material may contain sensitive tests, attack techniques, or proprietary information.¶
ACCs SHOULD contain digests or references to evaluation evidence rather than embedding complete Eval Sets or detailed evaluation transcripts.¶
An ACC can reveal information about the capabilities and configuration of an Agent.¶
Implementations SHOULD disclose only information necessary for the intended certification decision.¶
Sensitive system instructions, proprietary Eval Sets, evaluation transcripts, and model configuration data SHOULD NOT be included directly in an ACC. Where feasible, cryptographic digests or opaque identifiers SHOULD be used instead.¶
Digests of low-entropy configuration values can be vulnerable to guessing. Where a manifest element has few plausible values, implementations SHOULD consider salting it or omitting it from any disclosed manifest.¶
This document requests registration of the following media type in the "Media Types" registry [RFC6838], in the manner described in Section 3.11 of [RFC8725]:¶
Deprecated alias names for this type: N/A¶
Magic number(s): N/A¶
File extension(s): N/A¶
Macintosh file type code(s): N/A¶
This document requests registration of the following claims in the "JSON Web Token Claims" registry established by [RFC7519]. For each claim, the Change Controller is IETF and the Specification Document is Section 7.2 of this document.¶
The authors would like to acknowledge the valuable contributions of Daniel Levi and Omer Yeger to the development of this document.¶