Same topic, related formats. Practice these next.
Same topic, related formats. Practice these next.
NEVER runs fully autonomous, ALWAYS asks the human before every proxy reply, TERMINATE asks only when the loop is about to end so a human can extend it.
Picture a self-driving car with a driver in the seat. NEVER mode keeps the human asleep the whole trip, the car drives itself end to end. ALWAYS mode is a nervous driving instructor who grabs the wheel before every single turn. TERMINATE is the sensible middle ground: the car drives itself, but if it is about to stop at what looks like a dead end, it taps the human on the shoulder and asks whether to try a different route. The default is TERMINATE because most teams want autonomy with a safety net, not zero oversight and not a babysitter at every step.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example.
Everything important, quickly.
Name the three values and their cadences, explain why TERMINATE is the production default, separate `human_input_mode` from termination predicates and tool routing, call out the stdin-blocking gotcha for unattended jobs, and finish with the Slack-override pattern as the senior signal.
Real products, models, and research that use this idea.
What an interviewer would ask next. Try answering before peeking at the approach.
Red flags and common mistakes that signal junior thinking. Click to expand.
Confusing `human_input_mode` with tool routing or termination conditions. It is purely about when the human is prompted, not about which tools run or what ends the chat.
The night-before-the-interview bullets. Scan these on the way to the call.
Primary sources. Skim if you want the original framing.