The more autonomous the system, the more one question matters: which actions require a human’s yes? Human in the loop isn’t an admission of failure — it’s a deliberate pattern: let the AI do 95% of the work, and place a human checkpoint exactly where errors are expensive or irreversible.

The analogy

The co-signature at the bank. The advisor prepares the entire loan file — analysis, scoring, paperwork. But above a threshold, the branch manager must sign. Not because the advisor is bad: because some mistakes you can’t undo, and a second pair of eyes there is worth its cost.

The principle

flowchart LR
    AI["AI prepares the work"] --> Q{sensitive action?}
    Q -->|routine| E[execute]
    Q -->|sensitive| H["human: approve / edit / reject"]
    H -->|approved| E
    H -->|rejected| S([stop])

The design work is drawing the threshold line. Good rules of thumb:

  • Reversible & cheap → let the AI proceed (drafting, reading, analyzing, running tests).
  • Irreversible or outward-facing → checkpoint (sending, publishing, deleting, paying, deploying).
  • The human must see enough context to really judge — an approval screen nobody reads is theater, not safety.

A concrete example

An agent that answers customer emails:

routine  → drafts reply, saves as draft         (auto)
refund < €50 → sends reply directly              (auto)
refund ≥ €50 → drafts + notifies a manager:
           "approve / edit / reject"             (human)
angry customer detected → escalates to human     (human)

95% flows without friction; the 5% that could cost money or reputation waits for a signature.

When to use it

  • Actions are irreversible (delete, send, pay) or public (publish, reply).
  • Errors are rare but expensive — the human reviews exceptions, not everything.
  • Regulations or trust demand accountability: someone must own the decision.
  • Combine it with an agent loop and guardrails: the loop works, the rules filter, the human arbitrates.

When to avoid it

  • Everything requires approval → you’ve built a slow suggestion box, and the human rubber-stamps out of fatigue. Approve categories of risk, not every step.

The classic trap

Checkpoint fatigue. Fifty approval requests a day and the human clicks “yes” on autopilot — the safety net becomes decorative. Keep checkpoints rare and meaningful, and make each one show exactly what will happen if approved.