Skip to main content

Approval Workflows

When a policy’s enforcement is require_approval, the operation pauses and enters a human-in-the-loop workflow. The agent stops, an approval request is generated, notifications are delivered, and the agent resumes only when a human resolves it.

How Approvals Work

Approval workflow: agent action triggers policy, generates A2UI spec, enters input-required, fans out to Dashboard and Notification channels
  1. An agent invokes a tool that matches a require_approval policy
  2. The policy engine generates an A2UI spec describing what needs approval
  3. The message transitions to input-required
  4. Notifications are delivered through all channels linked to the policy
  5. A human reviews and resolves — approve, deny, or provide structured input
  6. The agent receives the resolution and resumes execution

Resolution Surfaces

Humans can approve from any connected surface: If the same approval is resolved from multiple surfaces simultaneously, the first resolution wins. Subsequent attempts receive 409 Conflict.

Approval Types


ADK Tool Confirmation

ADK’s require_confirmation and request_confirmation() are mapped to the same approval pipeline. An ADK tool with require_confirmation: true produces an A2UI form with approve/deny actions. The resolution is translated back to an ADK FunctionResponse with confirmed: true/false. This means ADK tools get the full benefit of Svantic’s notification channels — a tool confirmation can be approved from Slack, the dashboard, or any other connected surface.

Approval API


Further Reading