Skip to main content

Human Oversight

The human-oversight policy is a focused output-phase escalation control. When action: escalate is configured, the gateway marks the result as ESCALATE, returns a successful response with null assistant content, and records the escalation in the decision event.

Configuration

pack:
name: human-oversight
version: "1.0.0"
enabled: true

policies:
chain:
- human-oversight

policy:
human-oversight:
action: escalate

Fields

FieldTypeDescriptionDefault
require_human_forstring[]Accepted targeting metadata; the current evaluator does not inspect it.[]
actionescalate | blockOnly an explicit escalate is effective today. block validates but behaves like no policy action.no runtime action when omitted
confidence_thresholdnumberAccepted range is 0–1; the current evaluator does not score confidence.0.5
default_assigneestringAccepted assignment metadata; routing currently comes from provider escalation routing instead.
timeout_secondsintegerAccepted range is 1–604800; the current evaluator does not wait for review.3600

How it works

  1. Output phase only: human-oversight runs after the model response is available.
  2. Escalation trigger: the gateway acts only when policy.human-oversight.action equals escalate.
  3. Response shape: the gateway returns a successful chat-completion style body with choices[0].message.content = null and finish_reason = "content_filter".
  4. Event metadata: the gateway emits a decision event with policy_kind = "human-oversight" and reason_code = "oversight.required".
  5. Routing hint source: if the requested model resolves to escalation routing in the provider configuration, the gateway attaches team_id and user_id hints to the event metadata. Those routing hints do not come from the policy block itself.

Configuration boundaries

Use action: escalate when every response reaching this chain entry should stop normal assistant delivery and hand the request to a review workflow. The other accepted fields are not runtime targeting, assignment, or timeout controls yet; setting them does not narrow when escalation happens.

If you need reviewer assignment or team routing, configure it through provider-level escalation routing or the downstream review workflow rather than the human-oversight policy block.

Valid example

pack:
name: eu-ai-output-gate
version: "1.0.0"
enabled: true

policies:
chain:
- quality-scorer
- human-oversight

policy:
human-oversight:
action: escalate

Best practices

  • Treat human-oversight as a simple escalation switch, not a classifier or queue-definition system.
  • Pair it with quality-scorer or citation-verifier when you need a deterministic reason for why an output was escalated.
  • Add audit-logger only when the decision stream should mark audit logging as an active chain control; that policy does not persist evidence itself.
  • Verify the downstream system consuming decision events understands the ESCALATE verdict.

Next steps