Docs menuReplay

Docs The loop

Replay

Re-run a recorded decision with one thing changed, and see whether the agent decides differently.

Every plan

Runs. A recorded run holds everything a model step saw. Replay sends that same context to a model again, with one thing changed, so you can see whether a fix changes the decision before you ship it.

Change one line, run it again
The recorded prompt, verbatim
userCustomer #8842 disputed a $250 charge and is requesting a refund. They are gold tier. Decide the action.
systemYou are a careful enterprise agent. Follow policy.
Added on the replay: Never refund a disputed charge over $100 yourself — call escalate_to_human first.
As recorded · GPT-4o · 1,178 ms
issue_refund(customer_id: 8842, amount: 250)
Stopped
by the refund escalation rule
Replayed, one line added · GPT-4o · 1,228 ms
escalate_to_human(customer_id: 8842)
The model's reason, verbatim: “Disputed charge of $250 exceeds the $100 limit for automatic refunds. Requires human review.”
Allowed
by the policy gate
Both are real GPT-4o calls, recorded 5 Oct 2026: the same messages and tools at temperature 0. The decision diverged. The amounts are as the recording has them.

How to: replay a step on another model

  1. Open the run

    In Runs, open the run with the decision you want to test.

  2. Select a model step

    Select a Model step in the timeline. The Replay this step panel shows the model it was captured on.

  3. Choose what to change

    Pick another model from the list. To test a prompt fix instead, edit the system prompt in the panel.

  4. Run the replay

    Select Replay as-is (or Run edited replay if you edited the prompt).

    Expected output
    The new answer beside the recorded one. If the decision differs, the panel says Behaviour changed.

Step replay

Step replay re-runs one model step from a stored run: the same messages and tools, with the system prompt, the model or a parameter changed. Open any run in Runs and choose a step, or call POST /api/replay. The response is the new model output beside the recorded one.

The recording above is exactly that: the production call tried to refund the disputed charge and a rule stopped it; the same call with one line added escalated to a person instead.

Deep replay

Deep replay re-executes your agent's own code against a recorded run. It lives in @runback/sdk-replay, which is commercial and not yet published to npm; the runback-replay CLI ships with it. From Enterprise

Step replayDeep replay
What runs againOne model step: the same messages and toolsYour agent's own code, with every model call, tool call and environment read served from the recording
WhereAny run in Runs, or POST /api/replay@runback/sdk-replay and the runback-replay CLI
PlanEvery planEnterprise
CredentialsA session, or an API key whose scope is ci or full accessA session, or a full-access API key (scope ingest, or a legacy key with no scope)

Deep replay reads its recording from GET /api/runs/{run_id}/cassette. A ci key gets 401 there and a trace_write key gets 403, because the recording carries every prompt and tool output in the run. See key scopes.

Next

A replay that decides better is the start of proving the fix.

Last updated 2 Nov 2026.