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