Skip to content

Human-in-the-loop surface ​

As agents gain execution power, user intervention must be modeled as structured state, not as ordinary assistant prose.

Standard request types ​

TypeUse whenRequired UI
approvalUser must approve or reject a proposed action.Approve/reject controls and scope summary.
permissionRuntime needs elevated capability.Risk, target, duration, and consequence.
plan_reviewAgent produced a plan before execution.Approve, reject, edit, request changes.
elicitationAgent needs missing user input.Form, options, or free text with clear prompt.
credential_neededUser must configure credentials.Safe route to settings; preserve current task.
cost_confirmationTask may spend notable money, tokens, or time.Estimate, limit, and cancel path.
handoff_acceptanceUser or another agent must accept transferred work.Summary, artifacts, evidence, accept/decline.

Request contract ​

A human-in-the-loop request SHOULD include:

  • stable request id
  • task or turn id
  • request type
  • title and concise explanation
  • risk or severity
  • available responses
  • expiration or stale policy
  • audit summary after response
  • replay or evidence reference when relevant

A client MUST NOT treat a Markdown sentence as sufficient permission for a high-risk action.

Plan UI ​

Plan approval should be a stateful object:

  • proposed steps
  • scope and expected outputs
  • risk/cost summary
  • approve/reject/edit controls
  • saved plan or artifact reference when applicable
  • rejection reason or change request
  • audit summary after decision

If a plan is rejected, preserve the plan and the reason so the agent can revise without losing context.

Completion behavior ​

After a request is resolved:

  • remove it from pending attention surfaces
  • keep a compact audit summary
  • link the response to process and evidence surfaces
  • avoid leaving stale sticky cards in the main conversation

Acceptance scenarios ​

  1. A high-risk action renders as approval UI with scope and consequence.
  2. Approving or rejecting writes through a controlled runtime action.
  3. A resolved request collapses to summary and stops appearing as pending.
  4. A rejected plan preserves the reason and can be revised.
  5. A credentials-needed state preserves the user's draft and task context.

Draft runtime-first standard for agent interaction surfaces.