STATE EXPORT · REPRODUCIBLE REPLAY

State export: preserve a reproducible replay

Export a ten-step agent session and replay it: see which bundle contents keep the replay faithful and which make it re-issue a real credit.

Computed experiment · sixty inspection seconds

Your experiment

A gold-tier customer asks about a late order. The agent looks it up, converts a 12 EUR goodwill credit at 91.8 INR per EUR, issues the credit and answers. The export holds all ten steps and the initial state, and the replay regenerates model turns with the pinned model version but calls tools live. Find what the bundle must contain for a faithful, harmless replay.

Play replays the computed run over sixty inspection seconds; Next event steps, Restart rewinds, and Inspection time scrubs. Any input change recomputes the run and rewinds it without autoplay.

Event trace

    Computed data

    Final metrics

    Fictional session. Regenerated model turns are assumed to reproduce the recorded output whenever their input is identical; real serving at temperature 0 is not guaranteed to be bit-identical, which is a further reason to inject recorded responses. The live rate, the newer model behind the alias and every reaction are fixed fixtures. No model, tool or payment service is called.

    What a replay needs

    A replay walks the exported steps again and compares each step’s input and output with what was recorded. Tools during replay either answer from the export or call the real services again. Model turns during replay are injected from the export or regenerated, with a pinned model version or with the “latest” alias. Export includes the initial state decides whether the replay starts from the same session state, here user:tier = gold. Customer email in the export keeps the address in clear, swaps it for a consistent token or removes it.

    The opening run: it ran the credit again

    The first four steps match. At S5 the live get_fx returns today’s 92.4 instead of the recorded 91.8, so every later model input differs. S7 then calls issue_credit for real: a second credit, cr_10, reaches the customer. The regenerated answer quotes 1,108.8 INR instead of 1,101.6. Only 5 of 10 steps match, one side effect ran twice, and the export carries the customer’s email in clear. A replay that calls live tools is a new run, not a reproduction.

    Making the bundle self-contained

    Set Tools during replay to Answered from the export: all 10 steps match and nothing is issued, but the email is still in clear. Set Customer email in the export to Consistent token: the model reproduces the token in its get_order call, so the replay stays at 10 of 10 and the gate passes. Injected from the export also passes with no model calls at all. Untick Export includes the initial state: without user:tier the instruction differs at S2 and the regenerated model offers no credit at S6, so the replay leaves the script.

    Failure boundary: what changes underneath you

    Set Model turns during replay to Regenerated, “latest” alias: the alias now points at a newer model that calls lookup_order at S2, and only 1 step matches. Removed emails pass only when nothing is regenerated; a regenerated model sees “[removed]” and asks the user for the address, and a live lookup without it finds no order. A reproducible export records every tool result, the model version, the initial state and stable placeholders for personal data, and replays them without touching a real system.

    Reading the run and its limits

    Play replays the ten steps, the privacy check and the outcome over sixty inspection seconds; the table marks each step’s input and output as same or differs. Next event, Restart, Speed and Inspection time control the replay, and any input change recomputes it. The fixture assumes regenerated turns repeat exactly when inputs match; real models at temperature 0 can still vary, so prefer injected responses when you need an exact reproduction.