HITL Protocol Logo

HITL Protocol Interactive Playground

HITL v0.9 Draft — illustrative local playground; all data and outcomes are simulated

RFC 9110 RFC 3339 RFC 6750 RFC 2119/8174
The Core Idea
"HITL Protocol is to human decisions what OAuth is to authentication"
Agent
Service
Human
Service returns HTTP 202 → Agent forwards URL → Human decides in browser → Agent polls result
Aligned references: RFC 9110 (HTTP), RFC 3339 (timestamps), RFC 6750 (bearer auth), RFC 2119/8174 (normative terms).
New in v0.9Same HTTP handoff. Clearer case ownership, reviewer authorization and decision semantics.Watch the animation ↗

The service owns the case

A review URL grants access to one case. It does not identify a person. When policy requires a named reviewer, the service authenticates and authorizes that reviewer before revealing protected content or accepting a response.

A decision stays recorded

The first accepted response is immutable. A correction uses a new case linked with previous_case_id. A timeout default does not count as human approval or verification.

Execution has its own gate

completed records the review response. Business execution requires independent current authorization. Optional Agent Access v0.1 adds prepare → authenticated owner review → fresh commit.

Agent Access draft ↗

Case Lifecycle

pending
→
opened
→
in_progress
→
completed
Also: any non-terminal → expired
Also: any non-terminal → cancelled
opened and in_progress are optional intermediate states; any case may transition directly from pending to a terminal state. The first accepted response is immutable. A completed cancel decision is different from a cancelled case.

HITL Object Anatomy

Transport Options

Polling
Default
Agent calls GET poll_url every 30s–5min, respecting Retry-After and ETag where offered. Stateless. No server needed on agent side. Works everywhere.
SSE
Real-time
Agent opens persistent connection to events_url. Server pushes status updates. Reconnect or fall back to the authenticated poll endpoint. No public agent endpoint needed.
Callback
Webhook
Service POSTs result to callback_url. Requires agent to expose a public endpoint. Signed via X-HITL-Signature: sha256=<hmac> header. Correlate the case, authenticate delivery and deduplicate retries.

5 Review Types

Approval
Go/no-go on an artifact. CV draft, deployment plan, email.
approve ✓ edit ↩ reject ✗
edit finishes this case; a revision creates a linked case (previous_case_id chain)
Selection
Choose one or more from options. Job listings, configs, templates.
select
Returns selected option IDs. Often followed by confirmation.
Input
Structured data entry via context.form. Supports multi-step wizards.
submit
10 field types, validation, conditional fields, sensitive data
Confirmation
Irreversible action check. Send emails, deploy, delete data.
confirm ✓ cancel ✗
One-shot decision. Execution requires separate current authorization.
Escalation
Something failed. Retry, skip, abort, or provide new params.
retry skip abort ✗ edit ↩
Error recovery. Human provides fix strategy.

Use Case 1: Job Search Selection + Confirmation

OpenClaw agent finds jobs for a user. Two HITL rounds: select jobs, then record whether to send applications. Actual sending requires separate authorization.

Delivery Mode
Transport
Options
Scenario

Use Case 2: Deployment Approval Approval

Claude Code (CLI agent) builds v2.1.0. CI/CD service needs human sign-off before production deploy.

Reviewer Decision
Options

Use Case 3: Content Review Multi-Round Edit Cycle

CMS agent drafts a blog post. Editor reviews, requests changes, agent revises. Chain of linked review cases.

Review Rounds
Channel
Options

Use Case 4: Agent Deal ADL + HITL

DevOps agent negotiates infrastructure budget via ADL. Platform policy triggers human approval via HITL bridge.

ADL Category
Human Decision
Transport
Options

Use Case 5: Input Form Structured Input

Service needs structured data from the human — form fields, validation, conditional visibility, and optional multi-step wizard flows.

Field Types
Mode
Options
Delivery

Use Case 7: Inline Confirmation Optional Inline Submit

Email service needs confirmation before sending. Agent renders native messaging buttons — the human explicitly chooses an action. Service policy may require a browser step-up.

Platform
Human Action
Service policy

Proof-of-human evidence and reviewer identity are separate checks.

Comparison Matrix

How HITL core compares to adjacent standards and optional declarative UI companions. The browser review URL remains the canonical fallback. This is a scoped comparison, not a protocol ranking. MCP 2026-07-28 form / URL modes ↗; long-running tasks are an optional extension.

Feature HITL AG-UI A2UI Adaptive Cards MCP Form / URL Slack Blocks
URL-based deliveryYesNoNoPartialURL modeNo
Browser fallback is coreYesNoNoPartialURL modeNo
Async (hours/days)YesNoNoNoTasks extensionNo
Rich formsYesYesYesPartialExternal URLPartial
State/data separationMinimalEmbeddedYesNoMode dependentNo
No platform lock-inYesNoYesYesYesNo
Open standardYesYesYesYesYesNo
CLI agent supportYesNoNoPartialYesNo
Mobile supportYesPartialPartialYesClient dependentYes
Crypto signingPartialNoNoNoNoNo
Real-time updatesYesYesYesNoTasks / clientYes
Multi-round chainsYesNoNoNoNoNo
Delegation + auditYesNoNoNoNoNo

Profiles And Adjacent Standards

json-render
Optional Profile
Catalog-constrained declarative UI that pairs well with HITL review pages. It belongs in an optional interop layer, not in the HITL core object.
AG-UI (CopilotKit)
SSE Streaming
Server-Sent Events as transport option. Real-time status updates without requiring a public agent endpoint. The HTTP review lifecycle remains service-owned.
A2UI / CHEQ
Embedded UI + Integrity
A2UI informs optional embedded surfaces; CHEQ-inspired signing informs response integrity. Neither replaces the required review URL fallback.
Adaptive Cards
Input Patterns
Established input type semantics (text, number, date, toggle, choice). Mature patterns for structured data entry in agent workflows.

Key Distinction

AG-UI
Agent embedded in YOUR app (React/Angular). Real-time streaming within a frontend you control.
MCP Elicitation
Form mode collects structured input in the client; URL mode opens a service-owned page. Current request-based elicitation returns input_required and resumes on re-issue.
HITL Protocol
Agent has NO app. Runs in terminal or messenger, forwards review URLs, and may optionally use surface profiles without losing the browser fallback.