How I design human-in-the-loop AI systems
Listen while you read
The biggest mistake in AI product design is treating autonomy as the goal. For many useful workflows, the goal is controlled delegation: let the system do the repeatable work, but stop when judgment, money, permissions, or external side effects are involved.
That is human-in-the-loop design.
I used this pattern heavily in Flare Control, where an agent can pause mid-run, wait for approval, then resume safely.
Approval is not a UI feature
A button in a dashboard is not enough. Approval has to be part of the execution model.
The system needs to know:
- what action is waiting
- who can approve it
- what context they need
- what happens if they reject it
- whether the run can resume after a restart
If those details live only in the frontend, the workflow is fragile.
Put policy before tools
Before giving an agent tools, define what the agent is allowed to do. Policies should cover domains, spend limits, tool access, approval thresholds, and audit requirements.
This keeps the agent from becoming a privileged script runner with a friendly chat interface.
Persist the waiting state
Long waits should not depend on a Node process, browser session, or polling loop. Use durable workflow state when the system must survive deploys, restarts, and long approval delays.
In Flare Control, approvals are modeled as durable waits so the run can resume from a known point.
Design the review surface
The human reviewer needs more than “approve” and “reject”. They need the reason, input, proposed action, expected side effect, and a way to inspect the run so far.
Good approval UX reduces rubber-stamping. Bad approval UX trains people to click through warnings.
A simple checklist
Before shipping an AI workflow with side effects, ask:
- What is the source of truth?
- What is allowed without approval?
- What always needs approval?
- What is logged?
- What can be replayed?
- What happens when a model response is wrong?
- What happens when a human never responds?
If you are building an agent workflow that needs these constraints, contact me.
Need help with something like this?
Send the product goal, timeline, and current blockers. I’ll help you find the smallest useful next step.
Start a conversation