# Steering a run

> Send a correction while an agent is still working — what it can change, when it takes effect, and what happens when you run out of steers.

**Steering** is sending a correction to a [run](/docs/work/runs/) that is still in progress. The agent picks it up on its next step, so a correction costs one step instead of the whole run.

## When to use it

The moment you see the run going the wrong way. Watching a bad run finish and then explaining what was wrong wastes everything it did in between — and the agent has to rebuild the context you already watched it gather.

Good steers are short and corrective:

- *"Only this week, not the whole month."*
- *"Skip the newsletters."*
- *"Write it as a table, not prose."*
- *"Stop searching, you already have enough — just summarize."*

## How it works

Type into the composer while the run is going and send. There is nothing else to do: a message sent during a run is a steer, not a new turn.

The agent finishes the tool call it is currently making, then reads your correction before deciding the next step. That is why a steer sometimes appears to land one action late — a call already in flight is not cancelled.

## What steering can and cannot change

| Can | Cannot |
| --- | --- |
| Redirect what the agent does next | Undo a tool call that already ran |
| Narrow or widen the task | Change the model or prompt for this run |
| Change the output format | Recover data an action already deleted |
| Stop it searching and make it answer | Take back an email an approved action already sent |

Anything irreversible is guarded by the [approval](/docs/work/approvals/) gate rather than by steering — that is the mechanism for "do not do that", and it comes *before* the action, not after.

## Running out of steers

A single run accepts a limited number of steers — five by default. This is a guard against a run being redirected indefinitely instead of being restarted.

When you reach the limit, your message is not lost: it is delivered as a normal follow-up message and handled after the run ends. The conversation tells you when this happens.

<Aside type="tip" title="Repeated steers are a prompt bug">
  If you send the same correction to the same agent every time, it belongs in the
  [system prompt](/docs/build/system-prompt/). A steer fixes one run; a prompt fixes
  every run.
</Aside>

## Limits

- Five steers per run by default.
- A steer applies to the run it was sent into. It is not remembered for the next run unless you put it in the prompt or [memory](/docs/capabilities/memory/).
- Steering is available in the chat surfaces. A run started by a [routine](/docs/automate/routines/) or from a [channel](/docs/automate/channels/) is not sitting in front of you to steer.
- A tool call already in flight completes before the correction is read.

## Related

<CardGrid>
  <LinkCard
    title="Runs"
    href="/docs/work/runs/"
    description="What a run is and how to read one as it happens."
  />
  <LinkCard
    title="Approvals"
    href="/docs/work/approvals/"
    description="The gate that stops irreversible actions before they happen."
  />
  <LinkCard
    title="Testing and iterating"
    href="/docs/build/iterating/"
    description="Turning repeated corrections into a better agent."
  />
</CardGrid>
