Concepts
Human in the loop
The vocabulary — approval request, verdict, reviewer, escalation — and how the pieces fit together.
Seal is a human-in-the-loop (HITL) control plane for autonomous agents. This page defines the terms used throughout the docs.
Vocabulary
- Approval request — a single action an agent wants to take, created by
gate.require(). It has astatusthat starts atpendingand settles toapproved,rejected,expired, orescalated. - Policy — the rules that decide, per request, whether a human is needed and who reviews it. See policy authoring.
- Verdict — the policy's decision:
allow,deny, orrequire_approval. The final reviewer decision on a request is eitherapprovedorrejected. - Reviewer — the human who approves or rejects, in Slack, by email magic link, or in the dashboard.
- Escalation — if the first approvers do not decide in time, the request can move to the next set of approvers instead of failing. Configured per policy.
The lifecycle
agent → gate.require() → policy evaluates
│
┌───────────────┼────────────────┐
allow require_approval deny
│ │ │
approved notify reviewer rejected
│
┌───────────┼───────────┐
approved rejected timeout → deny | escalateOnly these transitions are legal: pending → approved | rejected | expired | escalated, and
an escalated request may still resolve to approved | rejected | expired. Nothing else is
representable — the transition table is enforced in the database.
Every one of these transitions writes an entry to the audit chain.