Flight recorder for AI agents

See exactly what your AI agent saw.

Record, replay, debug, and compare every decision your AI agents make.

RUN #a83f21
✓ Chain verified
Run startedObservationModel decisionTool callTool resultRun finished

Agents fail in the dark.

When a shopping agent buys the wrong item or a research agent hallucinates a citation, logs of the final answer are not enough. You need the trajectory: what it saw, why it chose a tool, and where versions diverge.

How it works

01

Instrument

Drop in the SDK, hosted MCP, or POST /api/ingest with an AI request. Tracebox pulls inference and records every observation, decision, and tool call.

02

Record

Runs land in Neon PostgreSQL as a hash-chained trajectory — tamper-evident and queryable.

03

Replay & compare

Step through decisions, fork from any event, and find the first divergence between agent versions.

Replay every decision

Step through events like a debugger. Jump to tool calls, inspect payloads, and verify the hash chain.

Compare agent versions

Diff two runs side-by-side and highlight the first divergence — the moment trajectories split.

Fork from any event

Insert the AI request. We pull inference.

POST a prompt or an OpenAI/Anthropic request to /api/ingest. Tracebox calls the model (or parses a response you already have), then records the full trajectory — tokens, latency, and the decision — into your workspace.

curl -X POST https://tracebox-ochre.vercel.app/api/ingest \
  -H "Authorization: Bearer tbx_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4.1-mini",
    "prompt": "Why did this agent fail?"
  }'

Signed in? Try it on the right. Or open the dashboard ingest page.

Live ingest

Built for agent developers

import { BlackBox } from "@tracebox/sdk";

const recorder = new BlackBox({
  apiKey: process.env.TRACEBOX_API_KEY!,
  projectId: "proj_...",
});

const run = await recorder.startRun({
  agent: "shopping-agent",
  version: "1.2.0",
});

await run.observe({ text: "Cart has 3 items" });
await run.decision({ action: "checkout", rationale: "Budget ok" });
await run.finish();
from tracebox import BlackBox

recorder = BlackBox(
    api_key="tbx_...",
    project_id="proj_...",
)

run = recorder.start_run(agent="research-agent", version="1.0")
run.observe(text="Found 12 papers")
run.tool_call(name="fetch_pdf", arguments={"id": "arxiv:2401"})
run.tool_result(name="fetch_pdf", result={"pages": 18})
run.finish()

Also ships an MCP server so Cursor and Claude can inspect runs without leaving the editor.

Privacy by default

  • Automatic redaction of API keys, tokens, passwords, and card numbers
  • API keys stored as SHA-256 hashes only
  • Tamper-evident event hash chains
  • Artifacts stored outside Postgres via a pluggable object store

Pricing

Simple plans for teams shipping agents. Upgrade in a checkout modal.

Developer
Free

1 project · 10k events/mo

  • 1 project
  • 10,000 events / month
  • 60 API requests / minute
  • Replay and timeline
  • Hosted MCP on Vercel
Team
$49/mo

Unlimited projects · 1M events

  • Unlimited projects
  • 1,000,000 events / month
  • 300 API requests / minute
  • Compare and fork runs
  • API keys + hosted MCP
  • Email support
Enterprise
$199/mo

SSO-ready · custom retention

  • Everything in Team
  • 10,000,000 events / month
  • 600 API requests / minute
  • Custom retention
  • Priority support
  • SSO-ready workspace

FAQ

Is Tracebox another LLM logging tool?

No. Tracebox records the full agent trajectory — observations, decisions, tools, artifacts — not just prompt/completion pairs.

Can I self-host?

Yes. Tracebox runs against Neon (or any Postgres) with a local storage adapter. Docker Compose is included for local development.

How do you handle secrets?

API keys are hashed at rest. The SDK redacts passwords, tokens, auth headers, and common secret patterns before events leave the agent process.

Does it work with Cursor / Claude via MCP?

Yes. The Tracebox MCP server exposes tools to create runs, inspect events, compare trajectories, and fork from any sequence number.

Stop guessing why your agent failed.

Open the black box. Replay the trajectory.