Search the documentation

Pick a page and open it with Enter.

Steering a running answer

Add to a turn while it runs — and recover from any stop.

You don't have to wait for an answer to finish. Keep typing while the model works — your message joins the running turn at the next step, the way a colleague takes a note mid-task.

How it works

  1. 1

    Type while it answers

    Press Enter as usual. The message appears above the box as queued — nothing is interrupted.

  2. 2

    Picked up at the next step

    Between tool calls the agent checks for new messages. Yours is added to the conversation and the model continues with it in mind — changing course, adding a detail, or answering both.

  3. 3

    Or sent right after

    If the model is already writing its final answer, there is no next step to join. Your message then goes out as the next question the moment the answer is done.

Over the API

Pass a stream_id of your choice with POST /chat/stream. While it runs, POST /chat/stream/{stream_id}/steer with id and content adds a message. To add files, include attachment_ids and the same chat_id, using the stream's active session. A steer frame acknowledges the message. A 409 means the turn ended; send a normal next turn instead. DELETE /chat/stream/{stream_id}/steer/{id} withdraws a message that has not been picked up.

stream frames
data: {"type": "tool_call", ...}
data: {"type": "tool_result", ...}
data: {"type": "steer", "id": "q1", "content": "Use Rio instead of London."}
data: {"type": "reasoning", "delta": "..."}

Stops, errors and cut-offs

A chat stays usable whatever happens to a turn. Answers stopped while thinking, answers cut off by a lost connection, and very long answers are all tidied up before the next question goes out — empty replies are dropped or marked, consecutive questions are merged, and oversized messages are shortened in the middle. A connection that drops mid-answer is shown as interrupted with a Try again button, instead of silently looking finished.