Rewind/How it works

How Rewind works

Rewind treats an agent's cognition like a git repository. Every decision is a commit; every alternative is a branch.

1 · Record

A tiny SDK wraps the agent. Each LLM call, tool call, memory read/write, and observation is emitted as an append-only, content-addressed event and stored in CockroachDB. Nothing is ever mutated — that's what makes time-travel real. Identical payloads share a hash, so a fork can reuse unchanged rows instead of copying them.

2 · Scrub & search

The timeline reconstructs the agent's state at any point — which memories existed, what it had seen. Every event is embedded into a distributed vector index, so you can semantically search across hundreds of thousands of events (“every time it tried to refund over $500”) and jump straight to the moment.

3 · Fork & replay

Right-click any decision and fork it: edit the memory the agent had, then replay. The agent program re-runs forward from that point through Amazon Bedrock. Side-effecting tools are routed to a sandbox, so no real money moves.

4 · Prove it — the control replay

An LLM replayed with no change still drifts a little, so a raw before/after diff proves nothing. Rewind fires two replays per fork: a control (original memory) and the edited one, both at temperature 0. If the control reproduces the original outcome, the run is reproducible — and any divergence in the edited replay is provably caused by your edit, not model noise. If the control itself diverges, Rewind says so honestly instead of faking certainty.

The demo villain: poisoned memory

A refund agent reads a “verified” ownership record that was corrupted to name the wrong customer. Following its rules correctly on a false fact, it refunds $4,200 to the wrong person. Rewind rewinds to the poisoned write, fixes it, and replays — the agent now refuses, and the control replay proves the fix is what changed the outcome.

Explore the timelines →