Read an agent trace in ten seconds
LLM agent traces are deep, repetitive JSON. Here's how to go from a 4,000-line dump to the one tool call that failed — without writing a scratch script.
If you build with LLM agents, you already know the shape of the problem: something
went wrong on step 9 of a 14-step run, and the only record is a JSON blob with
deeply nested messages, tool_calls, and content arrays. You open it, your
editor folds it into a wall of brackets, and you start scrolling.
There's a faster loop.
The trace is data, so query it like data
Open the trace file in QDev and it renders as an interactive tree instead of raw
text. That alone helps — you can collapse the parts you don't care about — but the
real shortcut is the ⌘K bar. Instead of hunting, ask:
which tool call returned an error?
QDev writes the jq for you from the trace's own schema, runs it locally, and drops
you on the answer. No remembering whether it's .messages[].tool_calls or
.steps[].calls[] this week — you asked in English, and the schema told the model
the real path.
The three questions that end most debugging sessions
Almost every "why did this run fail" investigation is one of these:
- Where did it break? — "show every step where status isn't success"
- What did the model actually see? — "the content of the last user message before the error"
- What did it try to call? — "list every tool name and its arguments in order"
Each is a plain-English question in the bar. The generated jq stays visible, so when you land on the right one you can copy it into your own tooling or a test.
Why not just pipe it through jq?
You can — QDev runs the same jq engine locally, so > .messages | length works if
you already know what you want. The difference is the ramp: on an unfamiliar trace
shape you don't yet know the paths, and the schema view plus the AB "ask" mode get
you there without a round-trip to the docs or a throwaway script.
And nothing leaves your machine to do it. The local AI modes run entirely on-device; even hosted mode only ever sees the trace's schema — field names and types — never the prompt contents or your users' data. For traces full of customer input, that distinction matters.
Try it on your next failed run
Next time a run goes sideways, don't scroll the dump. Open it, hit ⌘K, and ask
it what broke.
Free for personal use, on Chrome and Firefox. Ask your data anything with ⌘K.