PTN—33
Interrupt and steer
Let people stop or redirect the AI mid-flight without losing completed work or starting the task over.
Long-running AI work creates a new failure mode: watching the system head confidently in the wrong direction and having no way to say so. Interrupt-and-steer gives people a live grip on work in progress — a stop that actually stops, and a way to inject new instruction that redirects the run instead of restarting it. The difference between “cancel and re-prompt from scratch” and “keep going, but use the staging database” is the difference between supervising an agent and babysitting one.
A real interrupt has two obligations. First, it must be immediate and safe: the agent finishes or rolls back the atomic operation it is inside, then halts — it does not sprint through three more tool calls after you hit stop. Second, it must preserve state. Work completed before the interrupt survives; the transcript shows where things stood; the person can resume, redirect, or abandon from an honest checkpoint rather than a corrupted half-state.
Steering is the higher-value half of the pattern. Most interruptions are not “stop everything” — they are course corrections: wrong assumption, better idea, new information. Let people type into the run. The best implementations queue the message, fold it into the agent’s context at the next safe point, and visibly acknowledge the correction so people trust it landed.
Anatomy
Assistant · drafting reply
A running agent with a live stop control and an open composer: people can halt the run or inject a correction without restarting.
- 1Live activity feed. The stream of steps in progress — you cannot steer what you cannot see.
- 2Stop control. Always visible while the run is active; halts at the next safe boundary, never mid-write.
- 3Steering composer. A text input that stays open during the run so corrections can be typed the moment a wrong turn appears.
- 4Acknowledgment. The agent visibly registers the injected instruction — “Switching to the staging database” — so people know the correction took.
When to use
- Any AI task that runs longer than a few seconds — generation, agent loops, batch jobs.
- When the AI shows its work as it goes, so people can spot a wrong turn early.
- When restarting is expensive: long context, paid compute, or partially completed side effects.
- When people watch the run live rather than firing and forgetting.
Design considerations
- 01Keep the stop control visible and reachable for the entire duration of the run.
- 02Halt at safe boundaries: finish or roll back the current atomic operation, then stop — never mid-write.
- 03Keep the composer open during runs and queue injected messages into the agent’s context.
- 04Acknowledge steering explicitly in the transcript so people see the correction land.
- 05Preserve completed work on interrupt; show a clear resume point instead of resetting.
- 06Distinguish pause from kill — sometimes people want to inspect, not abandon.
Pitfalls
- ✕Cosmetic stop buttons that hide the spinner while the backend keeps executing — the worst version, because it converts a control into a lie.
- ✕Interrupts that discard everything, so stopping a 90%-done run costs more than letting a flawed one finish.
- ✕A composer that locks while the AI works, forcing people to sit on a correction until the damage is complete.
- ✕Steering that silently vanishes: the message was accepted by the UI but never reached the model, and nothing tells the person.
In the wild
- Claude Code
- Escape interrupts the agent mid-run while preserving the session; you can then redirect with a new message instead of restarting the task.
- ChatGPT
- Shows a stop button during generation that halts the stream and keeps the partial response in the transcript for follow-up.
- Cursor
- Agent runs can be stopped mid-flight, and new instructions in the chat redirect the agent while completed edits remain in the workspace.
- Midjourney
- Long image jobs can be cancelled while queued or in progress, rather than forcing people to wait out a generation they already know is wrong.