Reproduce any agent failure in minutes. Gate every release against real production behaviour. Keep a tamper-evident record your auditor can verify independently.
loan-approval-agent · 2:47 AM · root cause in 4m 23s not 3h 48m walk it →
Replay the exact decision from captured context. Every incident becomes a permanent regression test in one click.
Get started free →Every decision sealed in a tamper-evident chain. APRA CPS 230, EU AI Act Art. 12, NIST AI RMF — one record covers all three. Self-hosted in your own VPC.
Enterprise & compliance →Every AI session captured and sealed. Replay the exact session for court or regulator. Policy gates flag high-risk outputs before they reach the lawyer.
Governance for legal →Policy gates run before the call — the block is sealed into the tamper-evident record. No wrong decision executes unchecked.
How it works →Every model call — context, tools, tokens — captured at the boundary. PII redacted in-process before anything leaves your app.
Capture →Re-run from the exact captured context — tools, retrieval, messages[] held fixed. A different output means behaviour changed. Root cause in minutes, not a war room.
Walk the demo →Simulate a policy against 90 days of decisions. Enforce it live — block the violating action before it runs.
Policy gates →SHA-256 hash-chained, HMAC-signed record. Tamper-evident. The artifact your compliance team actually asks for.
Enterprise →In software, the commit is the fundamental unit — immutable, attributed, tamper-evident. AI agent decisions have had no equivalent. The Runback cassette is that primitive: every decision sealed in a hash-chained record you can verify without us, move off-platform, and produce on demand to any auditor.
Not a new platform to migrate onto — Runback wraps the model calls your agents already make. Add it to one agent today, in your existing pipeline, and it's live from the next request.
import { withDebugger } from "@runback/sdk";
const dbg = withDebugger(model, { runName: "support-agent", redact: "standard" });
const res = await generateText({ model: dbg.model, tools: dbg.tools(myTools), prompt: task });
await dbg.finish({ output: res.text, status: "success" });Observability tools were built for deterministic systems — software runs the same way twice, so a trace is enough to understand what happened. AI agents don't. Every decision is a function of a context assembled at runtime: retrieved documents, tool outputs, the exact messages[] array the model saw. A log records the outcome. Only a re-executable run shows you the reasoning.
Swipe to see all columns →
Verified July 2026 — reviewed quarterly.




Open one and walk through it yourself — no signup.
Start free and self-host in minutes — or book a call and we'll walk through it live in your environment.