Files
ietf-draft-analyzer/workspace/drafts/gap-analysis/draft-nennemann-agent-override-protocol-00.xml
Christian Nennemann 2506b6325a
Some checks failed
CI / test (3.11) (push) Failing after 1m37s
CI / test (3.12) (push) Failing after 57s
feat: add draft data, gap analysis report, and workspace config
2026-04-06 18:47:15 +02:00

1112 lines
47 KiB
XML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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.31 (Ruby 3.4.8) -->
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<rfc ipr="trust200902" docName="draft-nennemann-agent-override-protocol-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
<front>
<title abbrev="Agent Override Protocol">Standardized Human Override Protocol for Autonomous Agents</title>
<author fullname="Christian Nennemann">
<organization>Independent Researcher</organization>
<address>
<email>ietf@nennemann.de</email>
</address>
</author>
<date year="2026" month="March" day="06"/>
<area>OPS</area>
<workgroup>NMOP</workgroup>
<keyword>human override</keyword> <keyword>autonomous agents</keyword> <keyword>kill switch</keyword> <keyword>override protocol</keyword> <keyword>agent safety</keyword>
<abstract>
<?line 43?>
<t>This document defines a cross-vendor interoperable protocol for
human operators to override autonomous agent decisions at multiple
authority levels, with verified compliance and audit trails. It
absorbs and supersedes the override mechanisms described in earlier
HEOP and HITL drafts, providing a single unified protocol that
works across agent implementations from different vendors. The
protocol specifies three override levels (Advisory, Mandatory,
Emergency), a JWT-based override signal format, multiple delivery
mechanisms, compliance verification, and graceful degradation
semantics. Override events are recorded as Execution Context Token
(ECT) nodes for tamper-evident audit.</t>
</abstract>
</front>
<middle>
<?line 57?>
<section anchor="introduction"><name>Introduction</name>
<t>Gap 7 of the agentic AI gap analysis
<xref target="I-D.nennemann-agent-gap-analysis"/> identifies the absence of a
standardized human override mechanism as a critical deficiency.
Current human-in-the-loop (HITL) mechanisms are vendor-specific:
each agent platform implements its own override interface,
authentication scheme, and compliance model. When agents from
different vendors collaborate in a shared workflow, there is no
universal mechanism for a human operator to intervene.</t>
<t>Earlier drafts addressed portions of this problem. The Human
Emergency Override Protocol (HEOP) defined four override levels
with ECT integration. The HITL Primitives draft added approval
gates, explainability tokens, and timeout policies. This document
absorbs and supersedes the override protocol aspects of both,
providing a single cross-vendor interoperable specification.</t>
<t>The design draws from industrial safety: the emergency stop button
on factory equipment, the circuit breaker in electrical systems, and
the kill switch in robotics. The override mechanism must be simpler
and more reliable than the system it controls.</t>
<t>The protocol integrates with the Agent Context Policy Token
<xref target="I-D.nennemann-agent-dag-hitl-safety"/> for authorization and with
the Execution Context Token <xref target="I-D.nennemann-wimse-ect"/> for audit.</t>
</section>
<section anchor="terminology"><name>Terminology</name>
<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
<?line -18?>
<dl>
<dt>Override Signal:</dt>
<dd>
<t>A signed message from an authorized human operator directing one
or more agents to change their autonomous behavior.</t>
</dd>
<dt>Override Authority:</dt>
<dd>
<t>The authenticated identity and role of a human operator authorized
to issue override signals, as defined in ACP-DAG-HITL policy.</t>
</dd>
<dt>Override Scope:</dt>
<dd>
<t>The set of agents or agent functions targeted by an override
signal.</t>
</dd>
<dt>Override Level:</dt>
<dd>
<t>One of three escalating intervention types: Advisory (Level 1),
Mandatory (Level 2), or Emergency (Level 3).</t>
</dd>
<dt>Compliance Verification:</dt>
<dd>
<t>The process of confirming that an agent has changed its behavior
in accordance with an override signal.</t>
</dd>
<dt>Acknowledgment:</dt>
<dd>
<t>A signed response from an agent confirming receipt and processing
of an override signal.</t>
</dd>
<dt>Graceful Degradation:</dt>
<dd>
<t>The behavior of the override system when the target agent is
unreachable or non-responsive.</t>
</dd>
<dt>Kill Switch:</dt>
<dd>
<t>An Emergency (Level 3) override that requires immediate cessation
of all autonomous agent activity.</t>
</dd>
</dl>
</section>
<section anchor="override-protocol"><name>Override Protocol</name>
<section anchor="override-architecture"><name>Override Architecture</name>
<t>The following diagram illustrates the override signal flow from a
human operator through the override system to the target agent(s):</t>
<figure title="Override Architecture" anchor="fig-architecture"><artwork><![CDATA[
+----------+ Override Signal +------------------+
| Human |--(JWT-signed msg)--->| Override |
| Operator | | Dispatcher |
+----------+ +------------------+
^ | | |
| +---------+ | +---------+
| v v v
| +---------+ +---------+ +---------+
| | Agent A | | Agent B | | Agent C |
| | (push) | | (pull) | | (bcast) |
| +---------+ +---------+ +---------+
| | | |
+-----(Ack ECT)-----+-----(Ack)---+-----(Ack)---+
| | |
+----v-------------v-------------v----+
| Compliance Verification |
| & Audit Trail (ECT DAG) |
+-------------------------------------+
]]></artwork></figure>
<t>The Override Dispatcher receives the operator's signed override
signal and routes it to target agents via the appropriate delivery
mechanism. Each agent acknowledges the override with an ECT. The
compliance verification layer monitors agent behavior to confirm
the override was applied.</t>
</section>
<section anchor="override-authority-levels"><name>Override Authority Levels</name>
<section anchor="level-1-advisory"><name>Level 1: Advisory</name>
<t>An Advisory override is a suggestion for the agent to reconsider
its current course of action. The agent <bcp14>MAY</bcp14> comply with an
Advisory override. If the agent does not comply, it <bcp14>MUST</bcp14>
acknowledge receipt and provide a reason for non-compliance.</t>
<t>Advisory overrides are appropriate when the operator wants to
influence agent behavior without mandating a specific outcome.</t>
</section>
<section anchor="level-2-mandatory"><name>Level 2: Mandatory</name>
<t>A Mandatory override is a directive for the agent to change its
behavior. The agent <bcp14>MUST</bcp14> comply with a Mandatory override. The
agent <bcp14>MUST</bcp14> alter its behavior as specified in the override signal
and confirm compliance.</t>
<t>Mandatory overrides are appropriate when the operator requires a
specific behavioral change but the situation does not require
immediate cessation of all activity.</t>
</section>
<section anchor="level-3-emergency"><name>Level 3: Emergency</name>
<t>An Emergency override requires immediate halt of all autonomous
agent activity. The agent <bcp14>MUST</bcp14> stop all autonomous actions
immediately upon receipt. The agent <bcp14>MUST NOT</bcp14> initiate any new
actions until explicitly released by an authorized operator.
This is the kill switch.</t>
<t>Emergency overrides are appropriate in safety-critical situations
where continued autonomous operation poses unacceptable risk.
The agent <bcp14>MUST</bcp14> process Emergency overrides within 1 second of
receipt. The override processing path <bcp14>MUST</bcp14> be independent of
the agent's main processing loop.</t>
</section>
<section anchor="authority-delegation-and-chain-of-command"><name>Authority Delegation and Chain of Command</name>
<t>Override authority is derived from ACP-DAG-HITL policy. The
policy defines which operator roles are authorized for each
override level:</t>
<t><list style="symbols">
<t>Level 1 (Advisory): Any operator with <spanx style="verb">advisory_override</spanx> role</t>
<t>Level 2 (Mandatory): Operators with <spanx style="verb">mandatory_override</spanx> role</t>
<t>Level 3 (Emergency): Operators with <spanx style="verb">emergency_override</spanx> role</t>
</list></t>
<t>An operator with a higher-level role implicitly holds all
lower-level roles. Authority delegation (one operator authorizing
another to act on their behalf) <bcp14>MUST</bcp14> be recorded as an ECT and
<bcp14>MUST</bcp14> be time-bounded.</t>
</section>
</section>
<section anchor="override-scope"><name>Override Scope</name>
<section anchor="single-agent-override"><name>Single Agent Override</name>
<t>Targets a specific agent identified by its agent identifier
(e.g., a SPIFFE ID). The override signal contains a single
<spanx style="verb">target</spanx> value.</t>
</section>
<section anchor="agent-group-override"><name>Agent Group Override</name>
<t>Targets a set of agents identified by a tag or label. The
override signal contains a <spanx style="verb">target_group</spanx> value that matches
agents sharing a common label (e.g., <spanx style="verb">group:firewall-agents</spanx>).</t>
</section>
<section anchor="workflow-wide-override"><name>Workflow-Wide Override</name>
<t>Targets all agents participating in a specific workflow DAG.
The override signal contains a <spanx style="verb">target_workflow</spanx> value
referencing the workflow identifier.</t>
</section>
<section anchor="domain-wide-override"><name>Domain-Wide Override</name>
<t>Targets all agents within an administrative domain. The
override signal contains <spanx style="verb">target_domain</spanx> set to <spanx style="verb">"*"</spanx> or a
specific domain identifier.</t>
</section>
</section>
<section anchor="override-signal-format"><name>Override Signal Format</name>
<t>Override signals are JSON Web Tokens (JWTs) <xref target="RFC7519"/> signed
by the override authority using JSON Web Signature (JWS)
<xref target="RFC7515"/>.</t>
<t>The JWT payload <bcp14>MUST</bcp14> contain the following claims:</t>
<figure title="Override Signal JWT Payload" anchor="fig-signal"><sourcecode type="json"><![CDATA[
{
"jti": "urn:uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479",
"iss": "spiffe://example.com/human/alice",
"iat": 1741042800,
"override_level": 3,
"override_scope": {
"type": "single",
"target": "spiffe://example.com/agent/firewall-mgr"
},
"override_action": "stop",
"override_reason": "Agent blocking legitimate traffic",
"override_expiry": 1741046400,
"nonce": "a3f8b2c1e9d74506"
}
]]></sourcecode></figure>
<t>Claim definitions:</t>
<dl>
<dt><spanx style="verb">override_level</spanx>:</dt>
<dd>
<t>Integer 1-3. <bcp14>MUST</bcp14> be present. Specifies the override authority
level.</t>
</dd>
<dt><spanx style="verb">override_scope</spanx>:</dt>
<dd>
<t>Object. <bcp14>MUST</bcp14> be present. Contains <spanx style="verb">type</spanx> (one of <spanx style="verb">single</spanx>,
<spanx style="verb">group</spanx>, <spanx style="verb">workflow</spanx>, <spanx style="verb">domain</spanx>) and the corresponding target
identifier.</t>
</dd>
<dt><spanx style="verb">override_action</spanx>:</dt>
<dd>
<t>String. <bcp14>MUST</bcp14> be present. The action the agent should take.
Values include <spanx style="verb">reconsider</spanx>, <spanx style="verb">change_behavior</spanx>, <spanx style="verb">stop</spanx>,
<spanx style="verb">restrict</spanx>, and <spanx style="verb">resume</spanx>.</t>
</dd>
<dt><spanx style="verb">override_reason</spanx>:</dt>
<dd>
<t>String. <bcp14>MUST</bcp14> be present. Human-readable explanation for the
override.</t>
</dd>
<dt><spanx style="verb">override_expiry</spanx>:</dt>
<dd>
<t>Integer (Unix timestamp) or null. If set, the override expires
automatically at this time and the agent resumes its prior mode.
If null, the override persists until explicitly lifted.</t>
</dd>
<dt><spanx style="verb">nonce</spanx>:</dt>
<dd>
<t>String. <bcp14>MUST</bcp14> be present. A random value to prevent replay
attacks.</t>
</dd>
</dl>
<section anchor="delivery-mechanisms"><name>Delivery Mechanisms</name>
<section anchor="push-webhook"><name>Push (Webhook)</name>
<t>The override dispatcher sends the signed override signal as an
HTTP POST <xref target="RFC9110"/> to the agent's override endpoint:</t>
<figure title="Push Delivery" anchor="fig-push"><artwork><![CDATA[
POST /.well-known/agent-override HTTP/1.1
Host: agent.example.com
Content-Type: application/jose
Authorization: Bearer <operator-jwt>
<signed-override-signal>
]]></artwork></figure>
</section>
<section anchor="pull-polling-endpoint"><name>Pull (Polling Endpoint)</name>
<t>Agents that cannot receive inbound connections <bcp14>MAY</bcp14> poll for
pending overrides:</t>
<figure title="Pull Delivery" anchor="fig-pull"><artwork><![CDATA[
GET /.well-known/agent-override/pending HTTP/1.1
Host: override-service.example.com
Authorization: Bearer <agent-jwt>
]]></artwork></figure>
<t>The polling interval <bcp14>SHOULD NOT</bcp14> exceed 10 seconds. For
Emergency overrides, agents relying on pull delivery <bcp14>MUST</bcp14>
poll at least every 5 seconds.</t>
</section>
<section anchor="broadcast"><name>Broadcast</name>
<t>For domain-wide or group overrides, the dispatcher <bcp14>MAY</bcp14> use a
broadcast mechanism. The dispatcher fans out the override
signal to all matching agents and collects acknowledgments.</t>
<figure title="Broadcast Delivery" anchor="fig-broadcast"><artwork><![CDATA[
POST /override/broadcast HTTP/1.1
Host: override-service.example.com
Content-Type: application/jose
<signed-override-signal with target_domain or target_group>
]]></artwork></figure>
</section>
</section>
</section>
<section anchor="override-endpoint-discovery"><name>Override Endpoint Discovery</name>
<t>Agents <bcp14>MUST</bcp14> advertise their override endpoint at the well-known
URI <spanx style="verb">/.well-known/agent-override</spanx> per <xref target="RFC9110"/>.</t>
<t>A GET request to <spanx style="verb">/.well-known/agent-override</spanx> <bcp14>MUST</bcp14> return the
agent's override capabilities:</t>
<figure title="Override Capability Advertisement" anchor="fig-discovery"><sourcecode type="json"><![CDATA[
{
"agent_id": "spiffe://example.com/agent/firewall-mgr",
"supported_levels": [1, 2, 3],
"delivery_mechanisms": ["push", "pull"],
"max_response_time_ms": 1000,
"status_endpoint": "/.well-known/agent-override/status",
"protocol_version": "1.0"
}
]]></sourcecode></figure>
</section>
</section>
<section anchor="compliance-and-verification"><name>Compliance and Verification</name>
<section anchor="acknowledgment-protocol"><name>Acknowledgment Protocol</name>
<section anchor="override-receipt-acknowledgment"><name>Override Receipt Acknowledgment</name>
<t>Upon receiving an override signal, the agent <bcp14>MUST</bcp14> respond with an
acknowledgment within the following timeframes:</t>
<t><list style="symbols">
<t>Level 1 (Advisory): 5 seconds</t>
<t>Level 2 (Mandatory): 2 seconds</t>
<t>Level 3 (Emergency): 1 second</t>
</list></t>
<t>The acknowledgment is an ECT with <spanx style="verb">exec_act</spanx> set to the
appropriate override acknowledgment value:</t>
<figure title="Override Receipt Acknowledgment ECT" anchor="fig-ack"><sourcecode type="json"><![CDATA[
{
"exec_act": "override_ack",
"par": ["<override-signal-jti>"],
"ext": {
"override.status": "received",
"override.level": 3,
"override.prior_state": "autonomous",
"override.effective_at": "2026-03-06T12:00:00.123Z"
}
}
]]></sourcecode></figure>
</section>
<section anchor="compliance-confirmation"><name>Compliance Confirmation</name>
<t>After the agent has changed its behavior in response to the
override, it <bcp14>MUST</bcp14> emit a compliance confirmation ECT:</t>
<figure title="Compliance Confirmation ECT" anchor="fig-compliance"><sourcecode type="json"><![CDATA[
{
"exec_act": "override_complied",
"par": ["<ack-ect-jti>"],
"ext": {
"override.status": "complied",
"override.current_state": "stopped",
"override.actions_terminated": 3,
"override.evidence": "All autonomous tasks halted"
}
}
]]></sourcecode></figure>
</section>
<section anchor="non-compliance-reporting-and-escalation"><name>Non-Compliance Reporting and Escalation</name>
<t>For Level 1 (Advisory) overrides, the agent <bcp14>MAY</bcp14> decline to
comply. In this case, the agent <bcp14>MUST</bcp14> emit a non-compliance ECT:</t>
<figure title="Non-Compliance ECT (Advisory Only)" anchor="fig-noncompliance"><sourcecode type="json"><![CDATA[
{
"exec_act": "override_declined",
"par": ["<override-signal-jti>"],
"ext": {
"override.status": "declined",
"override.reason": "Action is within policy bounds",
"override.level": 1
}
}
]]></sourcecode></figure>
<t>For Level 2 and Level 3 overrides, the agent <bcp14>MUST NOT</bcp14> decline.
If the agent cannot fully comply (e.g., due to hardware
limitations), it <bcp14>MUST</bcp14> report partial compliance with a
description of what could not be done. The override dispatcher
<bcp14>MUST</bcp14> escalate partial compliance to the operator.</t>
</section>
</section>
<section anchor="compliance-verification"><name>Compliance Verification</name>
<section anchor="behavioral-verification-post-override"><name>Behavioral Verification Post-Override</name>
<t>After an agent acknowledges an override, the compliance
verification system <bcp14>SHOULD</bcp14> monitor the agent's subsequent
behavior to confirm the override was actually applied.
Verification methods include:</t>
<t><list style="symbols">
<t>Observing that the agent's ECT emissions cease (for Level 3)</t>
<t>Checking that subsequent ECTs contain only permitted actions
(for Level 2 with restrictions)</t>
<t>Querying the agent's status endpoint</t>
</list></t>
</section>
<section anchor="timeout-and-retry-semantics"><name>Timeout and Retry Semantics</name>
<t>If the agent does not acknowledge within the required timeframe:</t>
<t><list style="numbers" type="1">
<t>The dispatcher <bcp14>MUST</bcp14> retry the override signal once after 2
seconds.</t>
<t>If no acknowledgment is received after the retry, the
dispatcher <bcp14>MUST</bcp14> escalate to the operator.</t>
<t>For Level 3 (Emergency) overrides, the dispatcher <bcp14>SHOULD</bcp14>
attempt alternative delivery mechanisms (e.g., switching from
push to broadcast).</t>
<t>If all delivery attempts fail, the graceful degradation
policy applies (see <xref target="graceful-degradation"/>).</t>
</list></t>
</section>
</section>
<section anchor="graceful-degradation"><name>Graceful Degradation</name>
<section anchor="unreachable-override-target"><name>Unreachable Override Target</name>
<t>When the override target agent is unreachable, the system <bcp14>MUST</bcp14>:</t>
<t><list style="numbers" type="1">
<t>Log an ECT with <spanx style="verb">exec_act</spanx>: <spanx style="verb">"override_delivery_failed"</spanx>
documenting the failure.</t>
<t>Notify the operator of the delivery failure.</t>
<t>Attempt delivery via alternative mechanisms.</t>
</list></t>
</section>
<section anchor="failsafe-defaults"><name>Failsafe Defaults</name>
<t>Agents <bcp14>MUST</bcp14> implement a dead man's switch: if the agent loses
contact with the override service for a configurable duration
(default: 90 seconds), the agent <bcp14>MUST</bcp14> enter a failsafe state
equivalent to Level 2 (Mandatory) with restricted operations.</t>
<t>The failsafe policy is configured in the agent's ACP-DAG-HITL
policy and <bcp14>MUST</bcp14> specify one of:</t>
<t><list style="symbols">
<t><spanx style="verb">safe_pause</spanx>: Enter Level 2 with read-only operations permitted.</t>
<t><spanx style="verb">full_stop</spanx>: Enter Level 3 equivalent (cease all actions).</t>
<t><spanx style="verb">continue_logged</spanx>: Continue operating but emit warning ECTs at
elevated frequency. This option is only permitted at HITL
intensity I0 or I1.</t>
</list></t>
</section>
<section anchor="proxy-override-for-offline-agents"><name>Proxy Override for Offline Agents</name>
<t>When an agent is offline, the override dispatcher <bcp14>MAY</bcp14> apply the
override to the agent's proxy or orchestrator. The proxy <bcp14>MUST</bcp14>:</t>
<t><list style="numbers" type="1">
<t>Queue the override signal for delivery when the agent
reconnects.</t>
<t>Prevent new tasks from being dispatched to the offline agent.</t>
<t>Emit an ECT recording the proxy override action.</t>
</list></t>
<t>When the agent reconnects, the proxy <bcp14>MUST</bcp14> deliver the queued
override signal. The agent <bcp14>MUST</bcp14> process it as if it were
received in real time, applying the override level and action
specified.</t>
</section>
</section>
</section>
<section anchor="integration-with-acp-dag-hitl-and-ect"><name>Integration with ACP-DAG-HITL and ECT</name>
<section anchor="override-authorization-via-acp-policy"><name>Override Authorization via ACP Policy</name>
<t>Override authority is governed by ACP-DAG-HITL policy tokens
<xref target="I-D.nennemann-agent-dag-hitl-safety"/>. The policy token
specifies:</t>
<t><list style="symbols">
<t>Which operator roles are authorized for each override level.</t>
<t>Which agents or agent groups each role may override.</t>
<t>Escalation chains when primary operators are unavailable.</t>
</list></t>
<t>The override dispatcher <bcp14>MUST</bcp14> verify the operator's JWT against
the ACP policy before routing the override signal. An override
signal from an unauthorized operator <bcp14>MUST</bcp14> be rejected with HTTP
403 and logged as a security event.</t>
</section>
<section anchor="override-events-as-ect-nodes"><name>Override Events as ECT Nodes</name>
<t>Every override interaction produces ECT nodes
<xref target="I-D.nennemann-wimse-ect"/> that are linked into the workflow
DAG:</t>
<texttable title="Override ECT exec_act Values" anchor="fig-ect-actions">
<ttcol align='left'>Event</ttcol>
<ttcol align='left'>exec_act value</ttcol>
<c>Advisory override issued</c>
<c><spanx style="verb">override_advisory</spanx></c>
<c>Mandatory override issued</c>
<c><spanx style="verb">override_mandatory</spanx></c>
<c>Emergency override issued</c>
<c><spanx style="verb">override_emergency</spanx></c>
<c>Override acknowledged</c>
<c><spanx style="verb">override_ack</spanx></c>
<c>Override complied</c>
<c><spanx style="verb">override_complied</spanx></c>
<c>Override declined (Advisory only)</c>
<c><spanx style="verb">override_declined</spanx></c>
<c>Override delivery failed</c>
<c><spanx style="verb">override_delivery_failed</spanx></c>
<c>Override lifted</c>
<c><spanx style="verb">override_lifted</spanx></c>
<c>Override expired</c>
<c><spanx style="verb">override_expired</spanx></c>
</texttable>
<t>Each override ECT references the triggering override signal's
<spanx style="verb">jti</spanx> via the <spanx style="verb">par</spanx> claim, maintaining the causal chain in the
DAG.</t>
</section>
<section anchor="override-audit-trail"><name>Override Audit Trail</name>
<t>The sequence of override ECTs provides a complete,
tamper-evident audit trail:</t>
<t><list style="numbers" type="1">
<t>The operator issues an override (override ECT with operator
identity, reason, and level).</t>
<t>The agent acknowledges (ack ECT linked to override ECT).</t>
<t>The agent confirms compliance (compliance ECT linked to ack
ECT).</t>
<t>Optionally, the operator lifts the override (lift ECT linked
to override ECT).</t>
</list></t>
<t>At AEM assurance level L3, all override ECTs <bcp14>MUST</bcp14> be committed
to the immutable audit ledger.</t>
</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>
<section anchor="unauthorized-override-attempts"><name>Unauthorized Override Attempts</name>
<t>Override signals that fail authentication or authorization <bcp14>MUST</bcp14>
be rejected. The agent <bcp14>MUST NOT</bcp14> alter its behavior in response
to an unsigned or improperly signed override signal. All
rejected override attempts <bcp14>MUST</bcp14> be logged with the source
identity (if available) and the reason for rejection.</t>
</section>
<section anchor="replay-protection-for-override-signals"><name>Replay Protection for Override Signals</name>
<t>Agents <bcp14>MUST</bcp14> reject override signals with:</t>
<t><list style="symbols">
<t>An <spanx style="verb">iat</spanx> claim more than 30 seconds in the past.</t>
<t>A <spanx style="verb">jti</spanx> that matches a previously processed override signal.</t>
<t>A missing or invalid <spanx style="verb">nonce</spanx> claim.</t>
</list></t>
<t>Agents <bcp14>MUST</bcp14> maintain a cache of recently processed <spanx style="verb">jti</spanx> values
for at least 5 minutes to detect replays.</t>
</section>
<section anchor="override-signal-tampering"><name>Override Signal Tampering</name>
<t>Override signals are signed JWTs. Agents <bcp14>MUST</bcp14> verify the
signature against the operator's public key (as registered in
ACP-DAG-HITL policy) before processing. Agents <bcp14>MUST</bcp14> reject
signals with invalid or expired signatures.</t>
</section>
<section anchor="denial-of-service-via-override-flooding"><name>Denial-of-Service via Override Flooding</name>
<t>To prevent abuse, agents <bcp14>SHOULD</bcp14> implement rate limiting on the
override endpoint:</t>
<t><list style="symbols">
<t>Level 1 (Advisory): Maximum 10 signals per minute per operator.</t>
<t>Level 2 (Mandatory): Maximum 5 signals per minute per operator.</t>
<t>Level 3 (Emergency): No rate limit (to ensure emergency
overrides are never blocked), but agents <bcp14>MUST</bcp14> log high-frequency
Emergency overrides as potential abuse.</t>
</list></t>
<t>The override endpoint <bcp14>SHOULD</bcp14> be served on a separate port or
network interface from the agent's main API to ensure
availability during overload conditions.</t>
</section>
<section anchor="authority-impersonation"><name>Authority Impersonation</name>
<t>Agents <bcp14>MUST</bcp14> verify override authority by:</t>
<t><list style="numbers" type="1">
<t>Validating the operator JWT signature against trusted keys.</t>
<t>Confirming the operator's role matches the required role for
the override level.</t>
<t>Verifying the operator is authorized to override the
specific target agent(s) per ACP policy.</t>
</list></t>
<t>Deployments <bcp14>SHOULD</bcp14> implement multi-operator approval for Level 3
(Emergency) overrides affecting domain-wide scope, requiring two
independent operator JWTs.</t>
</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>
<section anchor="well-known-uri-registration"><name>Well-Known URI Registration</name>
<t>This document requests registration of the following well-known
URI suffix per <xref target="RFC9110"/>:</t>
<texttable title="Well-Known URI Registration" anchor="fig-wellknown">
<ttcol align='left'>URI Suffix</ttcol>
<ttcol align='left'>Description</ttcol>
<c><spanx style="verb">agent-override</spanx></c>
<c>Agent override endpoint for receiving override signals, querying capabilities, and reporting status</c>
</texttable>
</section>
<section anchor="override-execact-values"><name>Override exec_act Values</name>
<t>This document requests registration of the following <spanx style="verb">exec_act</spanx>
values in the ECT Action Type Registry:</t>
<texttable title="Override exec_act Value Registrations" anchor="fig-iana-actions">
<ttcol align='left'>Value</ttcol>
<ttcol align='left'>Description</ttcol>
<ttcol align='left'>Reference</ttcol>
<c><spanx style="verb">override_advisory</spanx></c>
<c>Advisory override signal issued</c>
<c>This document</c>
<c><spanx style="verb">override_mandatory</spanx></c>
<c>Mandatory override signal issued</c>
<c>This document</c>
<c><spanx style="verb">override_emergency</spanx></c>
<c>Emergency override signal issued</c>
<c>This document</c>
<c><spanx style="verb">override_ack</spanx></c>
<c>Agent acknowledgment of override</c>
<c>This document</c>
<c><spanx style="verb">override_complied</spanx></c>
<c>Agent confirmed compliance</c>
<c>This document</c>
<c><spanx style="verb">override_declined</spanx></c>
<c>Agent declined advisory override</c>
<c>This document</c>
<c><spanx style="verb">override_delivery_failed</spanx></c>
<c>Override delivery failure</c>
<c>This document</c>
<c><spanx style="verb">override_lifted</spanx></c>
<c>Override explicitly lifted</c>
<c>This document</c>
<c><spanx style="verb">override_expired</spanx></c>
<c>Override expired by TTL</c>
<c>This document</c>
</texttable>
</section>
<section anchor="override-jwt-claims"><name>Override JWT Claims</name>
<t>This document requests registration of the following JWT claims
in the IANA JSON Web Token Claims registry:</t>
<texttable title="Override JWT Claim Registrations" anchor="fig-iana-claims">
<ttcol align='left'>Claim Name</ttcol>
<ttcol align='left'>Description</ttcol>
<ttcol align='left'>Reference</ttcol>
<c><spanx style="verb">override_level</spanx></c>
<c>Override authority level (1-3)</c>
<c>This document</c>
<c><spanx style="verb">override_scope</spanx></c>
<c>Target scope of the override</c>
<c>This document</c>
<c><spanx style="verb">override_action</spanx></c>
<c>Directed action for the agent</c>
<c>This document</c>
<c><spanx style="verb">override_reason</spanx></c>
<c>Human-readable override justification</c>
<c>This document</c>
<c><spanx style="verb">override_expiry</spanx></c>
<c>Override expiration timestamp</c>
<c>This document</c>
</texttable>
</section>
</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="RFC7519">
<front>
<title>JSON Web Token (JWT)</title>
<author fullname="M. Jones" initials="M." surname="Jones"/>
<author fullname="J. Bradley" initials="J." surname="Bradley"/>
<author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
<date month="May" year="2015"/>
<abstract>
<t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="7519"/>
<seriesInfo name="DOI" value="10.17487/RFC7519"/>
</reference>
<reference anchor="RFC7515">
<front>
<title>JSON Web Signature (JWS)</title>
<author fullname="M. Jones" initials="M." surname="Jones"/>
<author fullname="J. Bradley" initials="J." surname="Bradley"/>
<author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
<date month="May" year="2015"/>
<abstract>
<t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="7515"/>
<seriesInfo name="DOI" value="10.17487/RFC7515"/>
</reference>
<reference anchor="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="I-D.nennemann-wimse-ect" target="https://datatracker.ietf.org/doc/draft-nennemann-wimse-ect/">
<front>
<title>Execution Context Tokens for Distributed Agentic Workflows</title>
<author >
<organization></organization>
</author>
<date year="n.d."/>
</front>
</reference>
<reference anchor="I-D.nennemann-agent-dag-hitl-safety" target="https://datatracker.ietf.org/doc/draft-nennemann-agent-dag-hitl-safety/">
<front>
<title>Agent Context Policy Token: DAG Delegation with Human Override</title>
<author >
<organization></organization>
</author>
<date year="n.d."/>
</front>
</reference>
</references>
<references title='Informative References' anchor="sec-informative-references">
<reference anchor="I-D.nennemann-agent-gap-analysis" target="https://datatracker.ietf.org/doc/draft-nennemann-agent-gap-analysis/">
<front>
<title>Gap Analysis of IETF Standards for Agentic AI Workflows</title>
<author >
<organization></organization>
</author>
<date year="n.d."/>
</front>
</reference>
</references>
</references>
<?line 676?>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>
<t>This document absorbs and supersedes the override protocol aspects
of the Human Emergency Override Protocol (HEOP) and the HITL
Primitives specification. The override level design is inspired
by industrial safety systems (IEC 62061, ISO 13849). The protocol
integrates with the Agent Context Policy Token
<xref target="I-D.nennemann-agent-dag-hitl-safety"/> for authorization and the
Execution Context Token <xref target="I-D.nennemann-wimse-ect"/> for audit.</t>
</section>
</back>
<!-- ##markdown-source:
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
TlLsRKz08o3Mf03IR2GXqSts+xK5C4Ywev3r0T4c78PJ3+iFoCQ3TSMdvjNA
c4ZdKahJA/fqmr+/CaXkG/R9N/Tu0aEP8YzltjY34ZiR1o9ZIPe6IzN0Dd1g
x5sPS4/Gh93YMA8c3wkPT8PhbRFJd/xHpSDhSasxqEBpRYZkq107bxV5E8F7
6yHu9tuM/RQRwQ1p6k69fD8JELwYUCgXIfi2Iof8r53K4IEvNF+TcPRDRNGc
PYYAHe+80IF4AkDnDHSHLBlxEo//vBcZhpoxwySxTsDHJpJuT0RBSlfEw2zI
+iSQvfUCwjWJ5TcdgzP6xcpvvXyK97ZJnGJI6MVsAgPvU/OQRcVXWqlY+gVF
cDc4g0tdIjy6M4VYLFxx4IaSvsHx4fGXo8OT0eGX10fHk8PDyeHh+Oj45D8p
EetINc9ud+S5X9bw8H04kcr0qQP7vTxPF1g1aCTusd4S6gkMnSGee2E/scYD
Yi2tA2nCalmyGhL0WYx04/3ZN9zk2S024f0aLrZmSl/x9a+GXZiMVD0vejj+
xlKnHzZE9fHe9VK7nHXaLgtYbm4N1RlE3sfQ5LA8Xx9hVsrPN6ocJa+9FdSu
S/YkhzPfxYT8xcBkV/u7YUlT7stFRv1qVrnCJ2LW576HMONG7Fgnz/J2we6z
Oe2X63L6N+hta8b0lQSlcImsjNiZB+QpeN7V1qDwRz3Mw2xrh38d5qANjEcP
F2WxHSIbG84cE9eCie1nTSgX+e2NWavo6vMAvGK1DaVDD47mLsNbcZ3fcS1Y
gR3VrqIzbBRXkwA5/JPQwUi98zq+O7QKZbg7yj4o/ceF54g2lqKLPDfhqwPK
fXud6FvHJ3lNKYu1zVbXDT+B75qyYqtr4lIZO2ogU2fhYh9bq/SfeF/fNB0X
ZK1iv++f8jmHL/q3slJTzw1Gd6VlPU0AnSYDTtXC2uEDoRugtYm1sCuVRzSF
vPjFnILv0A+Yro4yJvz1QAMZ1glhbxEl7GTIRnC6Eg6Wo9ENvTjYREiUunkr
NHaWGoN9URPS6Y6dVATUhmSJjeDPtdDbgGzHcyHNjOG0Y92178pHuX8rrN7C
Vbjnwlh/O0HaPpCEPL6kmzcRz4Sxo3E3ewrxtO6Ayj4RURTskaAco/bHRO+Y
wJ5S9UQ3IUDw4xwxFq8POZhpZ/ko/TuifjKGxhq0gqyP5I9OFnEhbq1YYzcF
dgCUHvwP6Wxy5cVbBFcSRj7RzRMAcGiEgphfDcfsKe2cp5mxX8fAgksfpvbe
WcIZnUV1sm1gzwgBHz6Et0fJ2w8Prk4DfU2i8OFJ7xgnRT8l/Z8xFnIVEsbe
xdaE2N/ZbiBN20f302sKyCwnRK/U8pEgdgKz1In5rAjPReSDGXHfN9wHfcDv
aux7Px7DG2XlYttunPDtr/Gw4/snY5h6Bscvsecp5XbDZI/YvcQ7fHwh4IVY
8Lqwpp31xjtN2KkieI79L6irrlcWZKqBBVb0GZmHzDa3MxoVcoCAv21E9m5Z
u/suee26Athe7siYwNcRoxnuhhIlWWraOhFPwRlDDd/wwnfP9KQqbWsU+yHQ
LPkCUJzRy6U0kdCmMyZYrLRwH2r1aKhc4weh/1tw4DyZ5RnOfFPx2ojZBM5o
Ex07yfMR2dWGsMbEjnEK9Nw3hIe3ZziBZPd7zq6HFhi0ujQ4tGTcFGq5FPls
QrUEfBIWLJfUckOx2h3XJUGKaPU51gVEITbU6b8gfKL0jQp4n7YKkVLXLVi6
oEUd51aUBlPp80NEb86PvAheavU+uReG4nGxWFBw6UTR62j0zHR/l17owN4d
0AyNyraVgHQR4oqWRqXCO+NUEI09Vu67Rsf/XAsqOvf0WCOmFzQudjrRGqjg
VN5AmNW5iUsPoZfizof81AUyF66t2+8gj8bfH4UDoVHJzyiQdtbGdRsE0+G3
0+TH/vrYuxZNCUH7yTCSWr8Nevx33HDeLQjvNieFDh2kyqBJQNkRWrDo+Cgl
pOob3XREtgSS220q7naxu0oaG9LG/pZpuPfndKXVNUPJzOl1b5+kv8+FlnB6
eumvhz3WmLNEekrXpNDTl+NvDH7utbIgScnYuC2Ht7z7FS09nbMax+Hdiy4E
iBo3hnpi1jzpB2SjJO/DFB5LiSS1lZZrrrfJVXKkpC75hssC7fT48boNSQJF
wm139TtDxVW+xGUsNVghF0IiJRZ0EVDVdkcgorhNyx0YO9w4qcue5rakFQcr
qMIDYohTs6eHJyQszgC6G8JGZDXxn/Sy06pw5m9Qu8j5DV6NZuyMNL19udcX
PSu6Cy3c63STekdY0kuC7r6OFlDI8pY0xat9KNuyF9PvJ4zdO0LgPsXHXFXu
nt37Duz73abse3bf2wNssC/vHpLarn9phvP1N6vujImdXm5QTx9lz6DY3uUG
NWrYhO0dyrLbzqsBq2m9Fh523g1ZfpJYo4catsaGl3bGJiFWZ7lOKNcZ6aqs
rQHuUec9VwruHJB7hm8G8ACxrNDt2YX0KKHzIuEr6wganLUMhnMVrqPI9yNY
LZdLodMin1e53xk2+8XKWWyYn1Vcz1zTyz61RWL+F/Q147Vx/brY8eOKENT4
1LHF8eKBsyEupXT3+VMyTWjzNgEeFFbss75fInA/QNFkcVH/SepaOTvstY6C
7EF4HV10uLm471vLXXcBmdkhOe3G5bVggT3urpME9U1/egNvmZC/bsb6HN+k
cMZeGwxLZuLZLdLm5nk6hguKsRAK2G9nBChanSaTPXyWzIcT7RLHphamZ6+B
G1NrosB54Vcn+xQ8thkTzCp21lFwx7ytkut17Tp4HV/ocAiYgatgW099h4dv
EWaUlSXGu5EUnzv2tIWRsUR9g85vKOxc3qbSbOIB+juqexrhE/Aad0cuJjQi
aMyG6I5+sX2kOwG9VVGw6HiaUCxkxOEQvQOKWZJRtc4Ei1do9+QCot9tGnaS
mw9uERfgPXmCyG7Bt1Rkco9dIN1udOpkd26Knbu3RBWFJ9MSZpJbr/zu6jBd
1j+J2VlIiipuLMYWU3DGI+3OBE6NI1LVBpMDFy/2nB4NJ3CqpO5QWW54IXPw
vSqOinF7D8EeobngGQXMhLiUtrWUt2hkHxlloKFm/wzWsqRLQ1ZBLvD0fHuL
6W9bvCZbhD3B/Z2LXjSwXxHlIaG1iY9cIEO9iD406kZNVT0vZEY/E7DHEURa
SmOFy0JZT2g6DMFU07LeWd1xm6VMjieMIab3RZEyv/0XopS8GKnF6Mon8OgX
4s5fFkrldBjXTXsQn9dYAfCBqQdDGyyBfqqE8GXfWNHK0ZJunf6C5Gv+Xq7r
NbVx+M1gHd2xkf5sELNHSpZhimefP0OnpvlGJduAPatAlAb5GQOcpIPMCUaJ
7SGu6VHkw33KtHnCoEItqaF9FNNrBr33HriBSmEjBULjdNbdyDw2Jfiznzv4
BXWOepVFxYl6AvOVZqWwGHE2v1PjQuyd+xDTy3OIW2XeQLkCeV7HYIL6Z9E6
yICttC5NnKP+GFWGyuKuhvT08s63ztP/jPLKm3QhOEHMMnqUStcGDfGt2Lrs
+zS9K99SOJ8pOYPVQozpm4WLFHZzVvLxBMlvd4jC2nbj41IH7KHf2DLduWlN
MtgkSmPGXoiqUNt1v0LRj0mNmnsL/mdvIAH2WS9YDNxVmBF6SLqSqAt1358A
7eoO78Yld2WSYzcuQZ++mfZ5+XfYqfEn7NQAbId5S3bMo32dnz7zTS/B2Ol4
l6vdstBpsDH1YiHfdztpKGfCr6/c1/fwIilMNTlTT+KEEfqs22cT7kDvapjz
xaFNo+tL9xFGccWOtBPHBZg6VmN98aMJ+XGTtMcQ8H/kHLutTJ104F885ibR
ZJvQsEuvYFTpK6PYxxVI2dKR/+xy0vZpw9uQezyard53GdCXmfaksh4QiIlm
e6vtmdJ8tS/F/TVzpWlsX+b7a+ZyGa4XsE79KE2PPj5LkgD7qXy60f79vo9P
kmTCfpKYQPOds//UVN0M+ZHMGu31x6eKuXMrc263NH+KXzGr3s2+51u4vn7V
M0FQRslL/mgC3ta2lmKarmaik6LLBf+qUuIE7vYJ89pIdrd9WcYvEaZyiunu
NLzh68/Tzl+lou5GRHq0nR+UhL2j0cnwEyxyVx/wJecL6fPOr718SpXoigJu
ke5Vx8J053b1x2fxNwjgvntPIFLxS21sU4P/DNHb7kqeGxuvDXxK/hzbd8Qv
itSu5OHvNM4RRWDdXkTDPkzcLwKL/A+DBS+M/x2G1g+A/Qs/eMc8u9yvvHzG
r/6FxJaKRMmv+LV/Aa/TLuJkyv8gHt5jLg1pMl4F2/lRvPALdrB3fnYKXx4f
fnm0D+dXF3B08tXTr4dNtcc1Z/6//sAcRoG/8bfl/herI6E1mloAAA==
-->
</rfc>