Agents

Submit a follow-up message for a run

Changed on

Send a follow-up message to an existing run. The server transparently routes the message based on the current state of the run (still queued, actively running, or ended) and will resume the agent in a new sandbox if necessary. A 200 response means the follow-up was accepted; updated run state can be observed via GET /agent/runs/{runId}.

A run that failed during environment setup keeps its retained session reachable for a bounded debug window. A follow-up sent to an eligible run in that window is delivered into the retained session to start or continue a debug agent, without reopening the run: it stays in its failed state, with its original failure message and error code unchanged.

post/agent/runs/{runId}/followups

Request

  • Base URL
    https://app.warp.dev/api/v1
  • Auth
    HTTP bearer

Path parameters

runIdstring required

The unique identifier of the run

Request body

messagestring

The follow-up message to send to the run. May be empty when attachments is non-empty.

mode'normal' | 'plan' | 'orchestrate'

Query mode for an agent run.

  • normal: Standard user query (default).
  • plan: Planning Mode. The agent researches and creates a plan, then waits for approval before execution.
  • orchestrate: Orchestration Mode. The agent proposes an orchestration plan and must not start child agents until approved.

Response

Follow-up accepted

followup_idstring nullable required

Identifier of the durable follow-up record, or null when the outcome did not create one (queued_prompt).

outcome'live_session' | 'queued_prompt' | 'handoff_execution' | 'queue_pending' required

How an accepted follow-up was routed.

  • live_session: the message was handed to the running session. This means the session-sharing service accepted it, not that the agent has started on it; observe the session's event stream for the new request.
  • queued_prompt: the run had not started yet, so the message was appended to its initial prompt.
  • handoff_execution: the previous execution had ended, so a new execution of the same run was created to continue the conversation.
  • queue_pending: the message is durably queued and will be delivered once the run can accept it.

Changes

    • info

      added the new optional request property

    • info

      added the non-success response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status