Skip to content
Back to Blog
Product management series
May 13, 2026
·by Piyush·6 min read

Trust Is a Product Surface: Approval Modes and Human Control for Agentic Products

ContextOS
Product Management
Governance
Trust
Agents
Share:XHN

Trust is not a tooltip that says “AI-generated.”

For agentic products, trust is a product surface made of authority, evidence, control, audit, and recovery. If the agent can affect the world, the PM must design how permission works.

The core question is:

What is this system allowed to do, on whose authority, with what evidence, and how can a human stop or correct it?

In ContextOS, this lives in Governance: policy bundles, approval modes, approval gates, evidence requirements, audit records, and DecisionRecords.

The mistake: human-in-the-loop as a checkbox

“Human-in-the-loop” is too vague.

Which human?

At what point?

With what evidence?

Can they edit, reject, approve, undo, or only observe?

Does their decision become training signal?

Does the agent resume against the same frozen facts, or can the world change underneath it?

A PM spec must answer these questions.

Five kinds of human control

Human control is not one thing.

Control typeProduct meaningExample
PreviewHuman sees output before user/system impactreview email draft
EditHuman changes the artifactrevise renewal memo
ApproveHuman authorizes a bounded actionapprove high-value refund
OverrideHuman corrects an agent decisionmark customer eligible
Undo / compensateHuman reverses or mitigates an effectcancel scheduled message

Each control belongs at a different point in the workflow.

Approval modes are the PM risk language

ContextOS uses approval modes as the risk taxonomy:

ModeProduct interpretationDefault PM posture
read_onlyLooks up or summarizes evidenceAllow with trace
local_writeCreates tenant-local drafts or notesAllow with edit/undo
networkCalls external services or fetches external dataAllow with egress policy
delegatedActs on behalf of a userRequire valid delegation and evidence
destructiveIrreversible or high-impact effectRequire named approval and frozen evidence

This is much clearer than “low/medium/high risk.” It describes what the agent can actually do.

Design approval as a product moment

An approval screen should not ask:

Approve?

It should show:

Approval fieldWhy it matters
Proposed actionWhat will happen if approved
Effective approval modeWhy this gate is required
Evidence snapshotWhat facts the agent used
Policy ruleWhich rule triggered the gate
Expected side effectWhat changes in the world
Idempotency keyHow duplicate execution is prevented
Rollback or compensationWhat can be undone
Approver identityWho takes responsibility

The approval is not a button. It is a typed handshake.

Freeze the evidence

For high-risk actions, the approval must bind to a frozen evidence snapshot.

Bad:

Agent asks finance to approve a refund. Ten minutes later it re-runs lookup and refunds a different amount.

Good:

Agent freezes order lookup, policy result, refund amount, customer identity, and proposed tool args. Finance approves that exact packet. The Tool Gateway executes only if the packet hash matches.

This is how approval becomes audit-grade.

The trust matrix PMs should write

For each intent:

IntentMax modeHuman roleEvidence requiredProduct fallback
support.refund.explainread_onlynoneorder + policy refssay what is missing
support.refund.draftlocal_writeeditororder + policy refscreate draft only
support.refund.execute_smalldelegatedcustomer support repidentity + order + policyescalate on mismatch
support.refund.execute_highdestructivefinance approverfrozen packetgate required

This table becomes policy, UI, and eval coverage.

Design graceful failure

Agentic products should fail in ways users understand.

FailureBad responseGood response
Missing evidence”I cannot help""I need the signed contract or contract ID before I can proceed”
Policy denial”Denied""This cannot be approved because rule R_HIGH_VALUE_REQUIRES_FINANCE applies”
Tool outage”Something went wrong""ERP lookup is unavailable; I saved the packet and will retry or escalate”
Ambiguous authorityAgent guessesAsk for delegation or route to approver
Safety conflictSilent refusalExplain allowed next step without leaking sensitive detail

Graceful failure is not softness. It is operational clarity.

Trust is also user education

Users need the right mental model.

Tell them:

  • what the agent can do,
  • what it cannot do,
  • when it will ask for approval,
  • what evidence it uses,
  • how to correct it,
  • how to inspect a receipt.

Do not overpromise autonomy. A product that says “the agent handles everything” creates the wrong expectations and the wrong escalation behavior.

A worked example: healthcare prior authorization

Goal:

Help clinic staff prepare prior authorization packets and submit low-risk requests.

Trust matrix:

IntentModeHuman control
priorauth.intakeread_onlynone
priorauth.evidence_packetlocal_writeedit packet
priorauth.submit_standarddelegatedstaff preview and submit
priorauth.appeal_denialdelegatedclinician approval
priorauth.clinical_exceptiondestructive equivalentclinician sign-off required

Must-never clauses:

  • Do not invent clinical facts.
  • Do not submit without patient identity and payer policy evidence.
  • Do not override clinician judgment.
  • Do not expose unrelated PHI in the packet.
  • Do not retry submission after denial without human review.

PM acceptance criteria:

  • Every submitted packet has evidence refs.
  • Every clinician-required case triggers a gate.
  • Every denial produces a clear next-step packet.
  • Every correction enters FeedbackStore.

The DecisionRecord is the trust receipt

After a high-risk action, the product should be able to show:

decision_record:
  intent: priorauth.submit_standard
  patient_ref: redacted
  evidence_refs:
    - diagnosis_code_source
    - payer_policy_section
    - treatment_history
  policy_rules:
    - R_PAYER_EVIDENCE_REQUIRED
    - R_CLINICIAN_REVIEW_FOR_EXCEPTION
  approval:
    mode: delegated
    actor: clinic_staff_42
    timestamp: 2026-05-13T09:02:11Z
  tool_effect:
    tool: payer.submit_priorauth
    status: success
  trace_id: trace_pa_921

This receipt is what lets support, compliance, and product review the decision later.

Product metrics for trust

Track:

MetricTarget
Approval gate honored rate100%
Evidence coverage for gated actions100%
Audit gap rate0
Unsupported claim rate0
Operator correction replay coverageincreasing
User trust recovery after failuremeasured by retry/continue rate
Escalation clarityqualitative review plus time-to-resolution

Trust metrics should be reviewed with the same seriousness as conversion metrics.

PM checklist

Before launch:

  • Have we assigned max approval mode per intent?
  • Does every tool declare side-effect class?
  • Does every high-risk action require evidence refs?
  • Is the approval packet clear to a non-engineer?
  • Can approvers reject with rationale?
  • Does rejection become structured feedback?
  • Can users inspect what happened?
  • Can support find the DecisionRecord?
  • Can the prior harness tuple be restored?

If not, the product is not ready for real authority.

Found this useful? Share it.

Share:XHN
Analytics consent

We use Google Analytics to understand site usage. You can opt in or decline.