Skip to main content
When a require_approval policy matches, the MeshAI proxy blocks the request and queues it for human review. An authorized user must approve or deny each request before the agent can proceed.

How It Works

1

Request blocked

The proxy evaluates policies and finds a require_approval match. The request is blocked with a 403 status and an approval item is created.
2

Queued for review

The approval item appears in the MeshAI dashboard under Governance → Approvals. It includes the agent, the policy that triggered the block, and the request context.
3

Human decides

An authorized user reviews the item and submits a decision of approved or denied, identifying themselves as the reviewer. They can add a reason for the decision.
4

Decision cached

Approved decisions are cached in Redis so the agent does not need re-approval on every request. The approval request itself carries an expiry (default TTL: 24 hours).
5

Agent retries

The agent retries the request. The proxy checks the Redis cache, finds the approval, and forwards the request to the LLM provider.

The 403 Response

When a request requires approval, the agent receives:

Approval Statuses

List Pending Approvals

Approve or Deny

reviewer_id is required (1-100 characters) and decision must be approved or denied; reason is optional.

Cache TTL

When an approval is granted, the decision is cached in Redis so the agent does not need re-approval on every subsequent matching request. The approval request’s expiry defaults to 24 hours from creation - there is currently no per-policy field to override this default.