Human-in-the-Loop as an Architectural Component
Designing review, approval and escalation instead of adding a human after something goes wrong.
By Mark Bourne
Introduction
Model Independence and the Portability Layer was about keeping the architecture flexible. Securing Tool-Using AI Systems introduced approval gates for high-risk actions. This article is about the piece that connects them: the human reviewer, designed as a proper component of the system rather than a safety net bolted on after an incident.
Most teams add a human review step reactively—after something went wrong, someone asks “shouldn't a person have checked this?” and a review queue gets built, quickly, under pressure. It rarely gets designed with the same rigour as the automated system it's meant to backstop.
A human reviewer with no context, no priority, and no time limit isn't a safety check. It's a delay with a rubber stamp at the end of it.
This piece treats human review as an architectural component with its own interface, performance requirements, and failure modes—because that's what it is.
The Internet Lesson: NOCs Were Designed, Not Improvised
Network Operations Centres didn't just staff people next to a wall of alarms and hope for the best. They were architected: tiered escalation (L1 triages, L2 investigates, L3 owns the hard problems), defined severity levels, response-time SLAs per severity, and shift handover procedures that preserved context between reviewers.
Crucially, alarms were curated. An alarm that didn't require action was a defect to be fixed, not background noise to be tolerated—because engineers learned early that an operator facing a thousand alarms a day stops reading any of them carefully.
Human review for AI systems deserves the same design discipline NOCs earned the hard way.
A Realistic Failure Scenario
A loan-application system auto-approves clear cases and routes anything uncertain to a human review queue. It works well in testing, at low volume.
At production volume, the queue fills with thousands of items a day, sorted by arrival time, with no indication of why each one was flagged or what the actual risk level is. Reviewers, facing an undifferentiated backlog, start approving quickly to keep up—trusting the model's framing of each case because reading it critically takes longer than the queue allows.
A genuinely high-risk application, buried in the queue with the same visual weight as a routine one, gets rubber-stamped through.
The human review step existed. It just wasn't designed to actually catch anything at that volume.
Risk-Based Approval Thresholds
Not every decision deserves the same scrutiny. A threshold for review should be a function of risk—value at stake, reversibility, regulatory exposure—not a single confidence number applied uniformly across every action type.
A low-value, easily reversible action can tolerate a lower confidence bar than a high-value, irreversible one. Defining these thresholds explicitly, per action type, before launch is what turns “route uncertain cases to a human” from a vague intention into an enforceable rule.
Confidence and Uncertainty Signals
Routing decisions need something to route on. A model that always sounds equally confident gives the architecture nothing to work with.
- Retrieval confidence — how strong was the supporting evidence?
- Model self-reported confidence, treated as a signal, not a guarantee
- Agreement across multiple samples of the same request
- Distance from the training or fine-tuning distribution, where measurable
None of these signals is perfect alone. Combined, they give the routing layer something better than a coin flip to decide who reviews what.
Exception Queues, Not Dumping Grounds
A queue sorted by arrival time treats a minor edge case and a high-risk anomaly identically. A well-designed queue doesn't.
- Prioritise by risk and value, not first-in-first-out
- Separate queues by action type, so reviewers build expertise rather than context-switching constantly
- Surface volume trends — a sudden spike in escalations is itself a signal worth investigating
Reviewer Context
A reviewer forced to reconstruct context from scratch will either take too long or skip the reconstruction and approve on instinct. Neither serves the system well.
The trace and observability signals discussed in Observability for Non-Deterministic Systems aren't just for engineers debugging after the fact. Surfaced well, they're exactly what a reviewer needs in front of them: source data, retrieved context, the model's reasoning, and any relevant history—without having to go looking for it.
Avoiding Automation Bias
Automation bias is the tendency to trust a system's output simply because it came from a system, especially under time pressure. It is the single most common way human review quietly stops working while still appearing to function.
- Track reviewer approval rates — a rate near 100% over time is a warning sign, not a compliment
- Occasionally inject known-bad cases to verify reviewers are actually catching them
- Avoid framing the model's output as the default that requires justification to reject
- Give reviewers enough time per item that reading carefully is actually possible
A review process that never rejects anything isn't evidence the model is excellent. It's evidence the review stopped happening.
Recording Overrides and Closing the Feedback Loop
Every override a reviewer makes is a labelled example of where the system got it wrong. Discarding that after the decision is made throws away the cheapest training signal the system will ever generate.
- Log every override with the reason, not just the outcome
- Route recurring override patterns back into prompt, retrieval, or threshold tuning
- Review override trends on a schedule, the same way sampled outputs get reviewed
A human-in-the-loop system that never gets better from the overrides it collects is running the loop without closing it.
Escalation Deadlines
An approval gate with no response-time expectation eventually becomes a bottleneck, which creates pressure to bypass it—quietly, informally, exactly when it matters most.
Every tier of review needs a stated SLA, and a defined fallback if that SLA is missed: escalate further, not silently proceed as if approved.
An Escalation Tier Model
Borrowing directly from NOC severity tiers gives human review the same structure:
| Tier | Trigger | Response |
|---|---|---|
| Tier 0 — Autonomous | High confidence, low-risk, reversible action | No human involved; logged for sampling |
| Tier 1 — Async review | Medium confidence, or moderate-risk action | Queued for review within a defined SLA, action may proceed pending it |
| Tier 2 — Approval required | Low confidence, or high-value/hard-to-reverse action | Blocked until a reviewer approves; SLA measured in minutes |
| Tier 3 — Immediate escalation | Contradicts policy, repeated failure, or flagged as high-risk category | Paged to a specific owner, same as an on-call incident |
Measuring Human Workload
A review process is part of the system's capacity, not an infinitely elastic resource sitting outside it. Queue depth, average review time, and reviewer fatigue are operational metrics, exactly like latency and error rate.
- Track queue depth and time-to-review as first-class metrics
- Alert when volume trends toward exceeding sustainable review capacity
- Treat a rising queue as a capacity problem to solve, not a target for reviewers to work faster
A system that scales its automated volume without scaling its review capacity is building toward the exact failure mode in the scenario above.
Trade-offs and Anti-Patterns
- A single undifferentiated queue instead of risk-prioritised routing
- Confidence thresholds set once and never revisited as the model or data changes
- Reviewers given the model's conclusion but not its reasoning or source context
- Overrides collected but never fed back into system improvement
- No SLA on review time, until a bypass becomes the informal norm
- Scaling automated volume without scaling review capacity to match
Final Thoughts
NOCs earned their design discipline through years of alarms that didn't matter drowning out the ones that did. AI systems are accumulating the same lesson faster, because the volume of decisions an AI system can generate for review outpaces what any unstructured queue can absorb.
A human in the loop is not a control.
A human with context, priority, and time to think is.
A Practical Checklist
Before relying on human review as a safety mechanism, work through these questions:
- 1Are review thresholds tied to a defined risk model, not an arbitrary confidence cutoff?
- 2Does the queue prioritise by risk, rather than presenting items in arrival order?
- 3Does a reviewer see the full context (source data, model reasoning, past corrections) without hunting for it?
- 4Is reviewer accuracy tracked, so declining engagement or rubber-stamping gets caught?
- 5Are overrides recorded and fed back into prompt, retrieval, or model improvements?
- 6Does every review tier have a stated response-time SLA?
- 7Is queue depth and review time tracked as an operational metric, not left informal?
- 8Has anyone checked whether the review workload is sustainable at current volume?
About This Series
This article is part of the AI Infrastructure & Architecture series on Bourne Forge AI. It follows Model Independence and the Portability Layer by designing the human component with the same rigour as the automated one, ahead of the next article on AI cost and performance engineering.
More from the Notes
Short technical notes and observations, written up as experiments produce something worth documenting.
Was this useful?
Published