Guides
Read an agent's file with SQL
An agent's whole history is in one SQLite file, so the plainest way to understand what it did is to ask the file. This guide collects queries that answer common questions. They work in sqlite3, DB Browser for SQLite, Datasette, or any SQLite client.
Open a file with:
sqlite3 agent.sqliteThen, for readable output:
.mode boxA run, step by step
select s.n, s.stage, s.passed || '/' || s.total as passing, d.chosen, d.by, o.outcome, o.progress
from tablua_state s
join tablua_decision d using (task, n)
join tablua_outcome o using (task, n)
where s.task = 'plants'
order by s.n;Replace 'plants' with a task from select distinct task from tablua_state;.
How each run ended
select task, shipped, works, steps, round(cost, 4) as cost_usd from tablua_run order by at;Which moves help, in which stage
select s.stage, d.chosen as move, count(*) as times,
round(avg(o.progress), 2) as helped
from tablua_state s
join tablua_decision d using (task, n)
join tablua_outcome o using (task, n)
group by s.stage, d.chosen
having count(*) >= 5
order by s.stage, helped desc;This is the simplest version of what TabPFN learns, and often worth a look by itself.
Who decided
select d.by, count(*) as steps, round(avg(o.progress), 2) as helped
from tablua_decision d join tablua_outcome o using (task, n)
group by d.by;In rank mode, compare steps decided by jev with steps decided by tabpfn.
Where Jev and TabPFN disagreed
select c.task, c.n, d.chosen, c.move, round(c.jev_p, 2) as jev, round(c.p_progress, 2) as tabpfn
from tablua_candidate c
join tablua_decision d using (task, n)
where c.p_progress is not null and c.jev_p is not null
and abs(c.jev_p - c.p_progress) > 0.4
order by c.task, c.n;How sure Jev was, and how often it was right
select round(c.jev_p, 1) as jev_said, count(*) as steps,
round(avg(o.outcome = 'complete'), 2) as worked
from tablua_decision d
join tablua_candidate c on c.task = d.task and c.n = d.n and c.move = d.chosen
join tablua_outcome o on o.task = d.task and o.n = d.n
where c.jev_p is not null and o.outcome <> 'denied'
group by 1 order by 1;If Jev were perfectly calibrated, worked would match jev_said in every row.
What each step changed
select n, group_concat(keyword || case when arg <> '' then ' ' || arg else '' end, ', ') as effects
from tablua_effect where task = 'plants' group by n order by n;What is broken in the program
select file, kind, source, target from tablua_break;Each row is a link with nothing at its end: a button posting to an action nobody wrote, a scenario line with no test step, an action no page reaches.
Which rules a run ran under
select name, retired_by from tablua_gate;A gate with retired_by set was switched off for that run.
Writing your own
Most questions join on (task, n): a task and its step number identify one step in every table. Tables lists every column.
Note
Treat an agent's file as read-only while the agent is running. Reading is safe; writing to Tablua's tables changes what the agent learns from.