Human-in-the-loop (HITL)
HITL is the platform’s answer to “when must a person decide?” Approval gates are uniform across channels: whether an action originates in the console, an Automation Studio workflow, a production agent behind the gateway, or a coding agent in the IDE, the same policy decides whether it runs, waits for a human, or is blocked—and every verdict is audited.
Why it matters
Autonomy without gates means unattended mistakes; gates without uniformity mean agents do in one channel what another would block. Scattered, per-tool approval logic also leaves no single audit story for compliance. HITL makes the human gate a platform primitive—declared once as policy, enforced everywhere, recorded always.
How it works
Every action route ends in one of three verdicts: allow, ask a human, or deny. What differs per channel is only where the pause surfaces.
The HITL surfaces
| Channel | Gate | Where the human decides |
|---|---|---|
| Automation Studio | Human approval step with assignee, deadline, and on_timeout (approve / reject) | Approve inbox—context trail, yes/no path preview, inline approve / reject / comment |
| Production agents | Guardrails policy gates on tool calls, budgets, and rate caps | Structured deny/ask reasons returned to the agent; escalations routed to operators |
| IDE coding agents | Relay bash, path, MCP, and prompt controls | The ask verdict pauses the editor for engineer confirmation before side effects |
| DevX Assist | Interactive confirmation surfaces before governed actions | Cards and forms in chat/console—approve before the action executes |
| Harness changes | Evals review queues on prompt / skill promotion | Human review of edge cases before traffic shifts |
Designing good gates
- Gate by risk, not by default — allowlist reversible, low-blast-radius actions; require approval for irreversible production side effects (deletes, secrets, payments, auth).
- Give the approver context — Studio approvals carry the run’s context trail; Relay asks show the exact command or tool call. An approval without context is a rubber stamp.
- Set timeout behavior explicitly — every approval step declares what happens when the deadline passes (
rejectis the safe default). - Record overrides — human decisions that override an agent are part of the audit trail and, for loops, written back to memory so the agent stops re-proposing them.
- Tighten as autonomy grows — moving a workflow from report-only to unattended (see Loop Engineering) means narrowing the ask surface deliberately, not removing it.
Capability checklist
- Human approval steps in workflows with assignee, deadline, and timeout policy
- Policy gates and structured ask/deny verdicts at the gateway
- Editor-level confirmation for IDE agent actions via Relay
- Review queues for prompt and skill promotion
- Tamper-evident audit of every verdict—allowed, asked, and denied
Console walkthroughs for authoring approval policies will be added when product how-to assets are available. Related: Approve (Automation Studio), Guardrails, Relay.
Related
- Guardrails — budgets, rate limits, and policy gates behind the verdicts
- Approve (Automation Studio) — the workflow approval inbox
- Relay — allow / ask / deny for IDE coding agents
- Evals — human review queues for harness changes
- Loop Engineering guide — phasing autonomy with human gates