Skip to main content
Approve, reject, and audit tool executions that require human authorization directly from AgentOS.
from agno.agent import Agent
from agno.approval import approval
from agno.db.postgres import PostgresDb
from agno.models.openai import OpenAIChat
from agno.os import AgentOS
from agno.tools import tool

db = PostgresDb(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai")

@approval
@tool(requires_confirmation=True)
def delete_user_data(user_id: str) -> str:
    """Permanently delete all data for a user. Requires admin approval."""
    return f"All data for user {user_id} has been deleted."

agent = Agent(
    id="data-manager",
    model=OpenAIChat(id="gpt-4o-mini"),
    tools=[delete_user_data],
    instructions=["You help users manage data operations."],
    db=db,
)

app = AgentOS(
    agents=[agent],
    db=db,
).get_app()

Approval Flow

When a user triggers a tool decorated with @approval, the run pauses and a pending record is persisted to the database. An admin resolves the request via the AgentOS Control Panel or the API, and the run resumes.

Managing Approvals

View and resolve pending approvals from the AgentOS Control Panel. Each entry shows the agent, tool, arguments, and requesting user.
Approvals list in AgentOS Control Panel
Review details, approve or reject, and track resolution history.
Approval required in agent chat

Approval Types

TypeBehaviorUse Case
@approval (default)Blocking. Run pauses until an admin approves or rejects.Deletions, payments, bulk operations
@approval(type="audit")Non-blocking. Run continues; an audit record is created after resolution.Compliance logging, activity auditing

Approvals API

OperationEndpoint
List approvalsGET /approvals
Get approvalGET /approvals/{approval_id}
Get approval statusGET /approvals/{approval_id}/status
Get approval countGET /approvals/count
Resolve approvalPOST /approvals/{approval_id}/resolve
Delete approvalDELETE /approvals/{approval_id}

Next Steps

TaskGuide
Blocking approval basicsApproval basic
List and resolve workflowApproval list and resolve
Audit-style approvalsAudit approval
Team-level approvalsTeam approval
API referenceApproval API schemas