Decide an approval

Decide approvals from an app

Decide approvals from an app for people running and reviewing agents.

For: people running and reviewing agents.

From your own app

The runtime API has ListApprovals, DecideApproval (with args_sha256, and edited_arguments, confirm, allow_for_seconds and shown_ms, how long your app showed the card) and GetApprovalArguments. Test approvals never reach an API key or a person acting through an app: an app's queue holds only real approvals. The edge records who decided from the caller's credentials; a request cannot name someone else.

A signed webhook tells your app when an approval waits; your app decides with the API key the webhook's target names (keys that decide) and polls ListApprovals for the outcome. An app whose people decide for themselves acts as each of them (apps that act as their people); an app built on an AG-UI client gets approvals and questions as the protocol's interrupts, which only the person resumes: see AG-UI.

Approvals cover the tool calls of every kind of agent (Pydantic AI, the OpenAI Agents SDK, remote agents), calls the tenant's tool policy sends to a person, flow steps with approval:, hooks that answer escalate, and the tools of a harness session listed in the agent's harness.requires_approval, which wait as claude-agent-sdk.Bash and the like. Budget requests wait in the same inbox. Deadlines, the escalation ladder and edits apply to all of them.

Agents can also ask a person a question and wait for the answer: see Asking people. Questions wait in the same inbox.

On this page
Copyright © 2026