agent-patterns

human-gate

flowchart TD
    Task([Task input]) --> Pipeline[Autonomous pipeline]
    Pipeline --> Present[Present output to human]
    Present --> Gate{Human approves?}
    Gate -- yes --> Action[Execute irreversible action\ne.g. merge / deploy]
    Action --> Done([Done])
    Gate -- no --> Halt([Halt — no action taken])
    Gate -- timeout/no answer --> Halt

A human approval step is placed at the boundary between autonomous execution and irreversible action. The system stops and waits — it does not proceed on timeout.

How it works

  1. The autonomous pipeline runs to completion and produces a candidate output.
  2. The candidate is presented to a human for review.
  3. The human explicitly approves (yes) or rejects (no).
  4. Only on explicit approval does the system execute the irreversible action (merge, deploy, send, etc.).
  5. On rejection — or if no answer is given — the pipeline halts. Nothing is committed.
  6. If the pipeline’s own model call is refused by a safety classifier, it ends at the gate the same way: halted, reported, no action.

Where it came from

When to use

When not to use

Trade-offs

   
Pro Hard guarantee that no irreversible action occurs without human sign-off
Pro Simple to reason about — the gate is a single, explicit point
Con Introduces human latency into the pipeline
Con Can be bypassed if the “irreversible” action is not correctly identified

Failure modes