# Seal > Human-in-the-loop approvals for autonomous agents: gate risky actions behind a policy and a Slack approval, with a tamper-evident audit trail. Seal is approval-as-an-API for AI agents: wrap a risky agent action in one SDK call and a human approves or rejects it in Slack, fail-closed by default, with a tamper-evident audit trail. ## Pages - [Home](https://useseal.dev): Approval-as-an-API for AI agents - [Security model](https://useseal.dev/security): Fail-closed, tamper-evident, org-scoped - [Pricing](https://useseal.dev/pricing): Free tier plus metered paid plans - [Glossary](https://useseal.dev/glossary): Definitions of core concepts - [Comparisons](https://useseal.dev/vs): Seal vs. building it yourself and the alternatives - [Use cases](https://useseal.dev/use-cases): Human-in-the-loop for every agent framework ## Documentation - [Quickstart](https://useseal.dev/docs): Gate a risky agent action behind a human approval in five minutes — install the SDK, call gate.require(), approve in Slack. - [Policy authoring](https://useseal.dev/docs/policies): Match rules, condition operators, verdicts, approvers, timeouts, and escalation — the full policy schema. - [Approvals](https://useseal.dev/docs/api/approvals): Create, read, and decide approval requests — POST /v1/approvals, GET /v1/approvals/:id, and POST /v1/approvals/:id/decision. - [Audit export](https://useseal.dev/docs/api/audit): Export the tamper-evident audit log as JSON or CSV — GET /v1/audit. - [Authentication](https://useseal.dev/docs/api/authentication): API keys, the Bearer scheme, and scopes. - [Webhooks](https://useseal.dev/docs/api/webhooks): Manage webhook endpoints and verify the signed decision webhook — payload shape, headers, and the HMAC signature scheme. - [Approval by exception](https://useseal.dev/docs/concepts/approval-by-exception): Let agents run freely, stop only the actions a policy flags as risky. - [Audit hash chain](https://useseal.dev/docs/concepts/audit-chain): Every decision is linked into a per-organization hash chain you can recompute offline to prove nothing was tampered with. - [Fail closed](https://useseal.dev/docs/concepts/fail-closed): An unknown, missing, or malformed input always yields the safe verdict — never the permissive one. - [Human in the loop](https://useseal.dev/docs/concepts/hitl): The vocabulary — approval request, verdict, reviewer, escalation — and how the pieces fit together. - [Error types](https://useseal.dev/docs/sdk/errors): The typed errors the SDK throws, and how to branch on them. - [createGate](https://useseal.dev/docs/sdk/gate): The Gate client — createGate(), require(), and resume(). - [verifyWebhook](https://useseal.dev/docs/sdk/verify-webhook): Verify a signed decision webhook and get back a typed, validated event. ## Comparisons - [Seal vs. building human-in-the-loop yourself](https://useseal.dev/vs/build-it-yourself): Building it yourself - [Seal vs. generic workflow automation tools](https://useseal.dev/vs/workflow-automation-tools): Generic workflow automation - [Seal vs. Temporal for human-in-the-loop approvals](https://useseal.dev/vs/temporal): Temporal - [Seal vs. Slack Workflow Builder for agent approvals](https://useseal.dev/vs/slack-workflow-builder): Slack Workflow Builder - [Seal vs. Retool for AI agent approvals](https://useseal.dev/vs/retool): Retool - [Seal vs. a custom database-backed approval queue](https://useseal.dev/vs/custom-approval-queue): A custom approval queue ## Use cases - [Human-in-the-loop approvals for LangChain agents](https://useseal.dev/use-cases/langchain): LangChain - [Human-in-the-loop approvals for CrewAI crews](https://useseal.dev/use-cases/crewai): CrewAI - [Human-in-the-loop approvals for n8n agent workflows](https://useseal.dev/use-cases/n8n): n8n - [Human-in-the-loop approvals for AutoGen agents](https://useseal.dev/use-cases/autogen): AutoGen - [Human-in-the-loop approvals for OpenAI Assistants and tool calls](https://useseal.dev/use-cases/openai-assistants): OpenAI Assistants - [Human-in-the-loop approvals for the Vercel AI SDK](https://useseal.dev/use-cases/vercel-ai-sdk): Vercel AI SDK - [Human-in-the-loop approvals for LangGraph](https://useseal.dev/use-cases/langgraph): LangGraph - [Human-in-the-loop approvals for AutoGPT agents](https://useseal.dev/use-cases/autogpt): AutoGPT - [Human-in-the-loop approvals for LlamaIndex agents](https://useseal.dev/use-cases/llamaindex): LlamaIndex - [Human-in-the-loop approvals for Pydantic AI agents](https://useseal.dev/use-cases/pydantic-ai): Pydantic AI ## Blog - [Add a human approval step to your agent in one call](https://useseal.dev/blog/add-human-approval-to-your-agent): A practical walkthrough — wrap a risky agent action with gate.require(), route it to Slack, and enforce the verdict. Fail-closed, audited, and framework-agnostic. - [Approval by exception: what actually needs a human](https://useseal.dev/blog/approval-by-exception): Gating every agent action defeats the point of automation. Approval by exception routes only the irreversible, high-stakes calls to a person — decided by policy, not hardcoded. - [Why autonomous agents need a human off-switch](https://useseal.dev/blog/human-in-the-loop-for-ai-agents): Autonomous agents are great until they do something irreversible. Human-in-the-loop approvals give you a fail-closed off-switch without slowing the agent down. - [What makes an audit trail actually tamper-evident](https://useseal.dev/blog/tamper-evident-audit-trails): A log you can edit is not evidence. Here's what hash-chaining, atomic commits, and append-only guarantees really buy you — and how Seal enforces them. ## Glossary - [Human-in-the-loop (HITL)](https://useseal.dev/glossary/human-in-the-loop): A control pattern where a person must approve or reject a system's action before it takes - [Approval-as-an-API](https://useseal.dev/glossary/approval-as-an-api): A hosted service that adds a human approval step to any action through a single API or SDK - [Fail-closed](https://useseal.dev/glossary/fail-closed): A safety default where any unknown, missing, or malformed input resolves to the restrictiv - [Approval by exception](https://useseal.dev/glossary/approval-by-exception): A policy model where most actions proceed automatically and only exceptions — high amounts - [Tamper-evident audit log](https://useseal.dev/glossary/tamper-evident-audit-log): An append-only record where each entry is cryptographically hash-chained to the previous o - [Escalation](https://useseal.dev/glossary/escalation): Routing an approval request to a higher authority or a wider reviewer pool when it isn't h ## Full text - [llms-full.txt](https://useseal.dev/llms-full.txt): Expanded plain-text corpus for ingestion