On this page
  1. What does mid-response steering actually do?
  2. When should you steer instead of cancelling?
  3. How do you write a steer the agent can act on?
  4. What are the risks?
  5. Where AI coding assistants get this wrong
  6. Checklist
  7. FAQ
    1. Is steering the same as interrupting?
    2. Does steering work with every agent?
    3. Can steering undo a destructive command?
    4. Why does the agent sometimes ignore a steer?
  8. Related topics
  9. Sources
concept

What Is Mid-Response Steering for a Coding Agent?

Mid-response steering lets you correct an agent while it is still working, instead of cancelling the run and starting over.

Quick answer

  • Mid-response steering is the ability to send a correction to an agent during a run, which the agent folds into the work in progress.
  • It differs from cancelling: the run keeps its context and its partial progress instead of restarting from a new prompt.
  • Codex CLI made steering the default behaviour in its October 2026 release, and other harnesses expose a similar interrupt-and-instruct control.
  • Steering works best for direction changes — wrong file, wrong approach, stop and explain — and poorly for large scope changes.
  • Every steer is context the agent must reconcile, so two precise corrections beat ten small ones.

What does mid-response steering actually do?

When you send a message while the agent is working, the harness injects it into the running conversation rather than queueing it for the next turn. The agent sees the correction alongside the work it has already done and adjusts the next steps.

The practical effect is that the agent keeps its plan and its file context. A cancel-and-restart throws those away, which is why a small correction used to cost a full re-run with a longer prompt.

When should you steer instead of cancelling?

Steer when the direction is mostly right and one decision is wrong: it is editing the wrong module, it chose the wrong library, it is about to run a destructive command. The correction is small and the existing context is valuable.

Cancel when the premise is wrong. If the agent misunderstood the task, every step it has taken is suspect, and steering it into a different task leaves a trail of half-applied edits that you now have to review.

Good steer:  "Stop. Use the existing retry helper in lib/retry.ts instead of adding a new dependency."
Good steer:  "Do not touch the migrations directory. Only the API handler."
Bad steer:   "Actually do it differently."
Cancel instead: "That is the wrong feature. Revert the working tree and start from the spec."

How do you write a steer the agent can act on?

Name the decision, the correct alternative, and the boundary. “Use the existing helper in lib/retry.ts, and do not add a dependency” gives the agent a target and a constraint. A general expression of dissatisfaction gives it nothing to check against.

If the correction changes the definition of done, restate the acceptance criterion. Otherwise the agent will adjust the implementation while still optimising for the old goal.

What are the risks?

Repeated steering produces a plan shaped by improvisation. The agent may keep earlier work that no longer fits, and the final diff can contain both the original and the corrected approach. Review the whole change, not just the last step.

Steering also feels cheaper than it is. A run that needed six corrections is evidence that the specification was incomplete, and the next task will need the same six corrections unless the spec or AGENTS.md is updated.

Where this bites vibecoders

Steering makes an under-specified task feel successful, because you can nudge the agent until the output looks right. The diff still contains the wrong turns it took on the way. If you steered more than twice, stop and rewrite the spec for the next run.

Where AI coding assistants get this wrong

  • Steering with vague dissatisfaction instead of naming the decision to change.
  • Steering a task the agent fundamentally misunderstood.
  • Assuming earlier work was undone by a later correction.
  • Steering without restating the acceptance criteria.
  • Ignoring the spec gap that caused the corrections.
  • Letting a steer override a safety boundary because it is convenient.

Checklist

  • Check whether the misunderstanding is local or fundamental.
  • Name the decision, the alternative, and the constraint.
  • Restate the definition of done if it changed.
  • Review the entire diff, including pre-steer work.
  • Count the steers; more than two means the spec is thin.
  • Update the spec or AGENTS.md after the run.

FAQ

Is steering the same as interrupting?

Interrupting stops the run. Steering sends a correction the agent incorporates while it continues. Some harnesses implement steering by interrupting at a safe point and resuming with the new instruction, which looks similar to the user but preserves context.

Does steering work with every agent?

Support varies. Some command-line agents accept input during a run by default, others queue it until the current turn ends, and some require an explicit interrupt. Check the behaviour of your harness before relying on it in an urgent situation.

Can steering undo a destructive command?

No. If the agent has already run a destructive command, the correction arrives too late. Prevention belongs in permissions and sandboxing: deny the command, or make the agent ask before it runs anything irreversible.

Why does the agent sometimes ignore a steer?

Because the new instruction conflicts with an earlier one that it is still optimising for, or because the instruction is too general to change a decision. Restate the conflicting rule explicitly, and say which earlier instruction no longer applies.

Sources

Share: