# Go back to the run that broke, and step through it.

Every run is preserved as a full trace: what the model saw, what each tool returned, in order, nothing truncated. Recorded fixtures let you replay the past deterministically, change one variable, and watch the same moment play out differently.

## The problem: You cannot debug what already evaporated

The agent failed yesterday. The API responses it saw are gone, the context it built is gone, and the log line says only that something went wrong. Reproducing the bug means recreating a moment in time, and normal tooling throws that moment away.

## How RunAgain does it

1. **The full moment, preserved.** Every span keeps its inputs and outputs, with large payloads offloaded to blob storage instead of truncated. What the model saw at step twelve is exactly what you read at step twelve.
2. **Deterministic replay.** The sandbox proxy records every outbound API and tool response as a fixture inside the trace. Replay serves yesterday's real responses back, so the run unfolds identically, every time, without touching live systems.
3. **Change one variable.** Rerun the same moment with a different prompt or model against the same fixtures, then diff the two runs. When only one thing changed, the cause is not a guess.
4. **The past becomes a test.** Capture the failing run into a versioned dataset and it is a regression case forever. The bug you time-traveled to fix cannot quietly come back.

## FAQ

**Q: What exactly is recorded for each run?**

A: The full OpenTelemetry trace: every LLM call, tool call and step with timing, status, token counts, cost and complete input and output payloads. Large payloads are stored in blob storage and referenced, not truncated.

**Q: Can I replay a run without hitting real APIs?**

A: Yes. The sandbox proxy captures outbound HTTP responses as fixtures matched to the trace. Replaying against fixtures is deterministic and free: same tool results, same path, no side effects.

**Q: How is this different from reading logs?**

A: Logs describe what code chose to print; a trace preserves the actual data flow, ordered and complete. And logs cannot be re-executed. A trace with fixtures can, which turns debugging from archaeology into an experiment.

## Built on these solutions

- [Debug AI agents](https://runagain.ai/solutions/debug-ai-agents.md)
- [Mocked environments](https://runagain.ai/solutions/mocked-environments.md)
- [Agent observability](https://runagain.ai/solutions/agent-observability.md)

Book a demo: https://cal.com/tamas-szuromi/30min · Get in touch: tamas@runagain.ai

---

Markdown mirror of https://runagain.ai/use-cases/time-travel-debugging for agents and LLMs. Append .md to any runagain.ai page URL for its markdown twin. Overview: https://runagain.ai/llms.txt · For agents: https://runagain.ai/for-agents.md
