Human approval for AI agents: pause before consequential actions

Design reviewable agent approvals with explicit action previews, version-bound consent, expiry, durable state and protection against duplicate execution.

Author
Aivan Editorial Team
Published
20 October 2026
Reading time
5 minutes
Sections in this guide
  1. Bind approval to a concrete action
  2. An editorial approval-packet example
  3. Resume without duplicating operations
  4. Test the failure paths
  5. Bind approval to a specific purchase proposal
  6. Model durable states and uncertain outcomes
  7. Test both authorization and reviewer comprehension
  8. Rehearse the purchase workflow before connecting production tools
  9. Frequently asked questions
  10. Sources

Bind approval to a concrete action

Preparing a purchase draft and submitting it have different consequences. A useful approval identifies the destination, proposed changes and impact. LangGraph documents interrupts and resumable state; the application must still implement approver authorization and business policy.

An editorial approval-packet example

Show purchase items, quantities, currency, supplier, total and differences from the current record. Provide access to supporting evidence and explicit approve, reject and revise choices. Bind the decision to the action identifier and proposal version. A changed recipient or quantity invalidates the old approval. Expire proposals so stale decisions cannot execute after conditions change.

Resume without duplicating operations

Persist whether the action is waiting, approved, executing or completed. Use a unique operation identifier and reconcile the destination record after uncertain failures. A network timeout does not prove that the destination rejected the request. Retrying blindly can create a second order.

Test the failure paths

Record the approver, time, proposal version and result with minimal sensitive content. Restrict audit access. Acceptance cases should include changed proposals, unauthorized approvers, expiry, duplicate clicks and process restarts. Successful execution of the happy path alone does not establish a safe approval workflow.

Bind approval to a specific purchase proposal

Show supplier, items, quantities, amount, destination and the exact action that approval enables. Label the decision with its consequence. Bind it to a proposal ID and version, an expiry and an authorized reviewer. A changed amount or supplier requires renewed review. Recheck authority immediately before execution, particularly when approval and execution happen at different times.

Model durable states and uncertain outcomes

Define transitions between draft, awaiting approval, rejected, expired, executing, completed and investigation states. Persist pending work and revalidate it on resumption. A timeout after sending an action is not proof that the action failed. Use an action ID to reconcile with the destination before retrying. Where duplicate prevention is unavailable, establish an explicit reconciliation procedure. Closing a page or clicking twice must not create a second order.

Test both authorization and reviewer comprehension

Use a controlled destination to test unauthorized reviewers, repeated approval, edits after approval, expiry and interruptions at different execution stages. Enforce any required separation of duties in execution logic. Measure how often reviewers need to reopen sources, return ambiguous proposals or correct fields. Give them a readable decision summary and accessible evidence. Successful approval means an informed decision on a specific action, with a traceable outcome when execution becomes uncertain.

Rehearse the purchase workflow before connecting production tools

Write a transition sheet naming who can move a proposal between states and what evidence is required. Rejection closes that version's execution path. A request for edits creates a new reviewable version. Expiry requires fresh consideration. Assign an owner for proposals that remain pending, with a clear escalation or expiration policy rather than indefinite reminders. Persisted state must survive closing the browser or restarting the service.

Use a test destination to interrupt execution before sending, after receipt and after completion. For each interruption, determine whether the order exists and whether the interface represents that fact correctly. Where the destination cannot guarantee duplicate prevention, agree a reconciliation and manual investigation path. An uncertain outcome should remain visibly uncertain until reconciled. A generic retry button can be misleading when an action may already have succeeded.

Run the same proposal through an unauthorized reviewer, an authorized reviewer and a user whose authority was revoked after drafting. If the organization requires different people to create and approve, test that rule independently of the interface. Measure whether reviewers can understand the proposal without repeatedly searching for missing details. A useful handover includes the state model, permission rules, proposal summary, failure rehearsal and ownership of unresolved actions. Approval should produce a traceable decision about a specific version, followed by a verified operational result.

Frequently asked questions

Does every answer need approval?

No. Choose approval gates based on action consequences and organizational policy.

What if the proposal changes?

Material changes require review of the new version.

Sources

Further reading in the Liyan knowledge base

Plan your enterprise AI use case

Discuss your data, workflow and acceptance criteria with Aivan.