skip to content
exer//build · building

agent that files its own bug reports

typescript · local model · sqlite

A long-running agent with a memory of what it broke. It reads its own traces, works out which step failed, and opens the ticket. Mostly it opens the ticket about itself.

[ placeholder content ] — shipped with the site so the layout can be reviewed. Not a published project.

What it actually does

An agent runs a task. Something fails four steps in. The trace exists, but nobody reads traces — so the failure becomes a vague memory and the same bug gets reintroduced a fortnight later.

This one keeps a durable record of every step it took, what it expected, and what came back. When a run fails it replays its own trace, isolates the step that diverged, and writes a bug report with the reproduction attached.

What worked

The memory layer. A single SQLite table with the run id, step index, tool call, arguments and result turned out to be enough. No vector store, no retrieval step, no embedding budget. Traces are structured data and structured data has a query language already.

What failed

Every retry policy I wrote. Twice.

The first attempt retried on any error, which turned one bad tool schema into forty identical bug reports. The second attempt classified errors before retrying, which meant the classifier became the thing that needed retrying.

What comes next

The reports are still too polite. It writes three paragraphs of context when the useful content is one line and a stack trace. That is a prompt problem, not an architecture problem, which is the most annoying kind.

This is placeholder content shipped with the site so the layout can be reviewed with realistic text. Replace it with a real project.