Implementation: DESIGN (server) · Exposure: PUBLIC PREVIEW (contract). The Agency API is not live yet. This page describes the published v0.3 contract so you can review and build against it; details may change before alpha.
A replay re-runs a finished run at the decision and tool boundary, using the run’s trace, receipts and recording (its cassette). It answers whether the system makes the same decisions given the same recorded world. For the concepts see Replay. The replay engine is on main inside the kernel (internal only: cassette recording from the receipt chain, recorded-only replay and divergence reports), but this public endpoint is not served. Replay is one of the five conditions of the alpha gate: a run must survive restart, resume, verify, replay and receipt-backed completion before alpha opens.

Replays never cause effects

effects is always recorded_only. It is the only allowed value.
  • Every external effect is served from the recorded, content-addressed result.
  • A call with no recording fails that node with ERR_REPLAY_UNRECORDED. It is never executed live.

Endpoints

The Replay object

Replay IDs match ^rpl_[A-Za-z0-9]+$.

Status

ReplayStatus

Verdict

Create a replay

Parameters

Request body

ReplayRequest overrides selects what to vary. Anything not overridden is taken from the source run’s recording. overrides.completion is a CompletionCriteria, overrides.models is a ModelConstraints and overrides.runtime is a RuntimeHints. No other override keys are accepted. A source run records a cassette when runtime.record_cassette is true, which is the default.

Responses

Example

Replay a run unchanged:
Replay with a stricter completion contract and a local-only model constraint:

Get a replay

Parameters

Responses

Example

Get replay results

The divergence report. It is available when the replay’s status is completed; before that the endpoint returns 409.

Parameters

Responses

ReplayResults. divergences is paginated with cursor and limit.

Example

Polling pattern