Home Use Cases Work Insights About Contact
Back to Our Work

How a Growth-Stage Healthcare Provider Built Tray Inspection with Human Approval Before a Batch Ships

Operations3
Open the walkthrough

Six-Step AI Workflow with Human Oversight

Each step shows the workspace, what the AI completed, and what still needs human review.

Steps 4, 5 and 6 need a person. Step 4 is waiting for approval right now. Click it to open the full walkthrough.

Estimates are directional and based on stated assumptions. All names, organizations, and identifying details have been anonymized in accordance with our confidentiality agreements.

The Transformation

How a Growth-Stage Healthcare Provider Built Tray Inspection with Human Approval Before a Batch Ships

Before
A person used to walk the camera wall each morning and eyeball every feed for focus and drift.
An inspector used to pull one tray in ten and check it by hand against the pick list.
A person used to sort defect trays off the line by hand and phone the lead when defects piled up.
After
every tray filmed, every frame owned, no gap counted clean
every tray read against its pick list, one verdict each
every verdict acted on, every cluster paged, nothing scrapped alone
every held tray cased, waiting on a human call
one record per batch, gaps named, waiting on a signature
Executive Summary

Every tray the line makes, filmed, read and judged, from the moment it passes the cameras to the moment its batch ships. The agents inspect every tray instead of the sample a tired pair of eyes used to pull, hold what they cannot call, and reach a person only where the call, the signature or the threshold is theirs. Six stations, run as a loop: the human calls made at the hold bench today are the thresholds the reading station inspects against tomorrow.

What Was Broken

A person used to walk the camera wall each morning and eyeball every feed for focus and drift
An inspector used to pull one tray in ten and check it by hand against the pick list
The real cost
A person used to sort defect trays off the line by hand and phone the lead when defects piled up.

What We Built

Six stations and 13 subagents. Each subagent carries its own tasks and its own refusal.

A4
Frame Intake
Collect every frame from every camera on both lines, at line speed
A3
Feed Watch
Check each camera's focus, lighting and angle against its own baseline every hour
A4
Defect Finder
Detect every component on the tray and count it against the batch pick list
A3
Verdict Builder
Combine the findings from all four angles of the same tray into one record
A4
Tray Router
Route each pass tray on down the line and close its record
A3
Alert Desk
Check each defect against the alert rules: type, count, window, line, shift
A1
Case Builder
Draft the case for each held tray: the frames, the finding, the score, what the spec says
A3
Hold Log
Record each human call with the frames that were on screen when it was made
A3
Batch Record
Assemble every tray's verdict, hold and human call into the batch record
A1
Release Draft
Draft the release summary a signer reads in one screen
A4
Shift Report
Count what passed, what was held and what was diverted, split by line and defect type
A2
Threshold Proposal
Propose the threshold change the day's overturned holds point to
A3
Example Curator
Collect every human call from the hold bench as a labelled example

How It Runs

1

Line Capture

Nobody is asked anything here

Agents collect every frame off every camera at line speed, tie each one to the tray and batch under it, retake what blurs, and mark a tray uninspected the moment its coverage fails. Nothing waits on a person here. A blind camera pages maintenance and marks its trays uninspected, never inspected-clean.

2

Tray Inspection

Nobody is asked anything here

Agents find every component on every tray, name each defect with the frames behind it, and close each tray to one verdict: pass, defect, or unsure. Nothing waits on a person here. A tray the angles cannot agree on is held unsure, not guessed through.

3

Line Disposition

Nobody is asked anything here

Agents act on each verdict in the second it lands: pass routes on, defect diverts to rework with its record, unsure goes to the hold bench, and a defect cluster pages the line lead. The line-stop call is the one thing an agent will not make. The page goes to the line lead, and the trays hold while it waits.

4

Hold Review

A person answers here

Agents build the case for each held tray, recommend a call where the past holds like it point one way, and present the tray bare where the frames support no recommendation. This is where a person works the trays. Each held tray gets a human call, made with the frames on screen and recorded with them.

5

Batch Release

A person answers here

Agents close every tray's verdict, hold and human call into one batch record, name any gap in it, and draft the release summary a signer reads in one screen. This is where a batch waits. Nothing ships until a person signs the record, and a record with a gap blocks its own release.

6

Shift Close

A person answers here

Agents reconcile every tray against where it ended, plot where the defects sit and how the hold rate is moving, propose the threshold change the day's human calls point to, and queue the calls as retraining examples. A person accepts or rejects each change. What the model holds tomorrow is not something an agent changes quietly.

Where a Person Decides

Step 4, Hold Review. Clear the three held trays: pass, rework, or scrap. Say whether the label-skew spec needs a line, or the model does. a borderline tray is a person's call.
Step 5, Batch Release. Sign batch 4471 out, or reject it with the record attached. Send 4468's fourteen trays back through the cameras, or reject the batch. a batch ships on your signature.
Step 6, Shift Close. Accept or reject the seal-check change. Settle the contradicting pair: the skew is a defect, or the spec gets a line. the model changes when you accept.

Operating Model

This changes how work flows through the team.

Role
Responsibility
Hold Review owner
Clear the three held trays: pass, rework, or scrap. Say whether the label-skew spec needs a line, or the model does. a borderline tray is a person's call.
Batch Release owner
Sign batch 4471 out, or reject it with the record attached. Send 4468's fourteen trays back through the cameras, or reject the batch. a batch ships on your signature.
Shift Close owner
Accept or reject the seal-check change. Settle the contradicting pair: the skew is a defect, or the spec gets a line. the model changes when you accept.
Line Capture, when it goes wrong
Look here only if a camera goes blind mid-shift.
Tray Inspection, when it goes wrong
Look here only if a verdict names a defect you cannot see in the frames.
Line Disposition, when it goes wrong
Look here only when the same alert repeats across shifts.

What Transfers, What Must Be True

What transfers
A person is in the loop wherever a borderline tray needs a call, a batch ships in their name, or the model itself changes. Three stations refuse to proceed without a person: Hold Review, Batch Release and Shift Close. Everywhere else the agents film, read, route and page, and reach you only when the call is yours to make.
Hold Review stops for a person, and a borderline tray is a person's call.
Batch Release stops for a person, and a batch ships on your signature.
Shift Close stops for a person, and the model changes when you accept.
Every subagent says what it will not do. 13 of them do.
What must be true in your environment
The agent can read the systems your records already live in. This one reads 20.
Somebody owns Hold Review and has time for it.
Somebody owns Batch Release and has time for it.
Somebody owns Shift Close and has time for it.

Failure Modes

What breaks this pattern:

✗ Dead camera trays counted clean

A camera fails and the trays behind it keep moving. Nothing marks them, so the record says inspected when nobody looked.

✗ The model guesses through glare

Glare hides half the tray and the model scores what it can see. The pass looks like every other pass, so nobody knows an inspection did not happen.

✗ Held trays cleared without frames

A reviewer clears a hold from the queue screen without opening the frames. The log records a human decision that never happened.

✗ Batch record closes over a gap

The record closes while trays are still uninspected. The signature goes on a batch nobody can fully account for, and the gap surfaces in an audit, not on the line.

Directional Outcomes

What the agent counts, and the station that counts it.

These counts are the tallies from one monitored run of the agents. They are not monthly or annual totals.

trays filmed and linked to batch
Counted at Line Capture
1,180
unfilmed trays counted as inspected-clean
Counted at Line Capture
0
drifted camera paged to maintenance
Counted at Line Capture
1
trays read against their pick lists
Counted at Tray Inspection
1,164
trays passed on a guess through glare
Counted at Tray Inspection
0
unsure trays held for a person
Counted at Tray Inspection
12
verdicts acted on at the diverters
Counted at Line Disposition
1,164
trays scrapped on a verdict alone
Counted at Line Disposition
0
defect cluster alert paged to the lead
Counted at Line Disposition
1
Our measurement policy: We do not publish precise ROI without baseline methodology. Every figure above carries its basis.

What Runs Where

Every step names the subagent that does the work, the record it writes, the thing that raises a question for a person, and what it is allowed to touch. This is drawn from the source, not from a diagram somebody kept in sync by hand.

1Line Capture
subagentframe-intake
writesvision/frames/<tray-id>/
raisescamera-blind
may touchvision/frames/**, the cameras read-only
2Tray Inspection
subagentinspect-tray
writesvision/verdicts/<tray-id>.json
raisestray-unreadable
may touchvision/verdicts/**, vision/frames/** read-only
3Line Disposition
subagentroute-and-alert
writesvision/routed/<tray-id>.json, alerts/<alert-id>.json
raisesline-stop-call
may touchvision/routed/**, alerts/**, the diverters
4Hold Review
GATE
subagenthold-bench
writesholds/<tray-id>.json
raisesawait-your-call
may touchholds/**, vision/** read-only
5Batch Release
GATE
subagentbatch-release
writesbatches/<batch-id>/record.json
raisesawait-your-signature
may touchbatches/**, holds/** read-only, vision/** read-only
6Shift Close
GATE
subagentshift-close
writesreports/shift-<date>.json, thresholds/proposed/<change-id>.json
raisesaccept-threshold-change
may touchreports/**, thresholds/proposed/**, the history read-only

Stack

Every system this agent reads or writes.

System
Read at
Stations
the GPU inspection server
Tray Inspection
1 of 6
the barcode readers
Line Capture
1 of 6
the batch pick lists
Tray Inspection
1 of 6
the batch record
Batch Release
1 of 6
the batch schedule
Line Capture
1 of 6
the diverter on each line
Line Disposition
1 of 6
the frame archive
Hold Review
1 of 6
the hold bench
Line Disposition
1 of 6
the hold bench screen
Hold Review
1 of 6
the hold history
Hold Review
2 of 6
the line cameras
Line Capture
1 of 6
the line controller
Line Capture
1 of 6
the line lead's pager
Line Disposition
1 of 6
the manufacturing schedule
Batch Release
1 of 6
the product spec sheets
Tray Inspection
2 of 6
the retraining queue
Shift Close
1 of 6
the rework chute
Line Disposition
1 of 6
the shift dashboard
Shift Close
1 of 6
the shipping dock's release queue
Batch Release
1 of 6
the threshold config
Shift Close
1 of 6
Next Step

Want to see if this pattern fits your computer vision?

No build commitment·Real samples, not a demo·Estimate in writing