# Enforce human approval gates in agentic workflows

> A new approval system lets you require human sign-off before agents execute sensitive actions. Using the @approval decorator alongside a HITL primitive (requires_confirmation, requires_user_input, or…

- Published: 2026-02-17
- Author: Agno Team
- Category: Changelog
- Canonical: https://agno-com-nine.vercel.app/articles/enforce-human-approval-gates-in-agentic-workflows
- Markdown: https://agno-com-nine.vercel.app/articles/enforce-human-approval-gates-in-agentic-workflows.md

A new approval system lets you require human sign-off before agents execute sensitive actions. Using the `@approval` decorator alongside a HITL primitive (`requires_confirmation`, `requires_user_input`, or `external_execution`), you can define blocking or audit-mode approval gates with persistent database records for review and governance.

This means high-stakes operations—such as financial transactions, data modifications, or external API calls—don't proceed without explicit admin authorization. Every approval decision is recorded, creating a clear audit trail for compliance and operational review.

Details:

- Blocking mode (`@approval` or `@approval(type="required")`) pauses execution and writes a pending record to your database. The run only resumes once an admin resolves it via `db.update_approval(...)` and `agent.continue_run()` is called.
- Audit mode (`@approval(type="audit")`) is non-blocking — the run continues immediately after the HITL interaction is resolved, while an audit log is created for compliance and traceability.
- Persistent approval records are stored in your configured database for compliance, audit, and post-incident review.
- Programmatic resolution is handled through your DB provider, with `expected_status` checks to prevent race conditions, and can be integrated into existing review workflows and dashboards.

Learn more in the [Agno approval docs.](https://docs.agno.com/hitl/approval)
