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
| Field | Type | Description | Default |
|---|---|---|---|
require_human_for | string[] | Accepted targeting metadata; the current evaluator does not inspect it. | [] |
action | escalate | block | Only an explicit escalate is effective today. block validates but behaves like no policy action. | no runtime action when omitted |
confidence_threshold | number | Accepted range is 0–1; the current evaluator does not score confidence. | 0.5 |
default_assignee | string | Accepted assignment metadata; routing currently comes from provider escalation routing instead. | — |
timeout_seconds | integer | Accepted range is 1–604800; the current evaluator does not wait for review. | 3600 |
How it works
- Output phase only:
human-oversightruns after the model response is available. - Escalation trigger: the gateway acts only when
policy.human-oversight.actionequalsescalate. - Response shape: the gateway returns a successful chat-completion style body with
choices[0].message.content = nullandfinish_reason = "content_filter". - Event metadata: the gateway emits a decision event with
policy_kind = "human-oversight"andreason_code = "oversight.required". - Routing hint source: if the requested model resolves to escalation routing in the provider configuration, the gateway attaches
team_idanduser_idhints 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-oversightas a simple escalation switch, not a classifier or queue-definition system. - Pair it with
quality-scorerorcitation-verifierwhen you need a deterministic reason for why an output was escalated. - Add
audit-loggeronly 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
ESCALATEverdict.
Next steps
- Quality Scorer — Gate outputs before escalation
- Citation Verifier — escalate when groundedness is not strong enough
- Flagged Review Configuration — route borderline output through a reviewer
- Audit Logger — mark audit logging as active in the decision stream
- Trail and Audit Evidence — inspect and verify persisted evidence