loops/model-evaluation/plan.md
High-level plan. Execute end-to-end, making reasonable decisions when details are
ambiguous, and record them in the final report (report.md; all working artifacts go
under work/).
Benchmark open-source (Ollama) models that drive Data Formulator's analyst agents — inspect tabular data, write transformation code, and commit a visualization — and report two independent axes:
Keep them separate: a model can write good code yet fail to deliver it through the protocol. The dominant open-model failure mode is driving the tool/transport, not analyzing the data, so each model runs through more than one agent transport:
analyst — native function/tool calls (with a content-JSON salvage fallback).mini — single-decision, pure-prompt JSON contract; the production low-cost agent.Always include the Azure references gpt-5.5, gpt-5-mini as the baseline.
A frozen 45-question set across 15 datasets from the ../visbench benchmark, fed
as the raw / grouped source tables (not VisBench's derived single-table data.csv) so
the agent must do its own joins:
Reuse VisBench's quality-filtered question and reference chart for each item. The single- vs multi-table split (9 / 36) is the axis along which models diverge most.
(agent, model, question) cell with --agent in analyst
and mini; capture the event stream and render each chart to PNG. Frozen controls:
max_iterations = 5, 240 s timeout, resumable.0.3 × (success_rate × 100) + 0.7 × success-weighted quality. Always show
the single- vs multi-table split, the per-gate drop-off, comparison to the references,
and recommendations per size tier (with which --agent).combined is for ranking only.max_iterations, and timeout across every cell.mini is the production low-cost agent — simple was removed; don't run --agent simple.uv only, no secrets (Azure auth via Entra ID), resumable, all artifacts under work/.