Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.svantic.com/llms.txt

Use this file to discover all available pages before exploring further.

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:
SurfaceHow
DashboardApproval Queue → click Approve or Deny
SlackInteractive buttons in the Slack notification
Webhook callbackExternal system POSTs resolution to /webhooks/receive
In-sessionUser responds in the terminal or chat widget
If the same approval is resolved from multiple surfaces simultaneously, the first resolution wins. Subsequent attempts receive 409 Conflict.

Approval Types

TypeScopeBehavior
Session grantThis session onlyIn-memory, cleared when session closes
DenyThis request onlyOperation blocked, agent receives denial
Permanent allowAll future sessionsUpdate the policy enforcement from require_approval to allow

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

EndpointPurpose
POST /messages/pendingList messages awaiting human input (the Approval Queue)
POST /messages/{id}/resolveSubmit a resolution (approve, deny, form values)
POST /internal/policies/updateChange a policy to permanently allow a previously blocked tool

Further Reading