Autoresearch
Autoresearch turns the loop of running an ML research program, propose a hypothesis, run
an experiment, read the result, decide what to try next, into pages and agent runs instead
of a spreadsheet and a Slack channel. A goal is a page. A hypothesis is a page with evidence
links. A run is the same mlops/run page MLOps already materializes,
just decorated with research lineage. The scheduler that decides what to launch next reads a
backlog page and a launcher’s live capacity. Nothing about the loop lives outside the
knowledge base you already work in.
Autoresearch is a plugin, plugins/autoresearch, installed on top of
plugins/mlops-core. It consumes both the mlops.tracker and mlops.launcher contracts
generically, so it works identically whether your goal’s runs come from the
filesystem tracker, MLflow, W&B, or Dagster, and
whether they launch through local-runs, W&B Launch, or the Dagster launcher.
Blind-first human review
Section titled “Blind-first human review”Autoresearch drafts, it never decides alone. When a run finishes, an agent observer reads it against your open hypotheses and drafts evidence, but those drafts stay hidden behind a needs-confirm card until you write your own independent interpretation first. Only after you commit does the card reveal the agent’s reading alongside yours and a merged draft, side by side, for a second confirm before either becomes evidence linked to a hypothesis. This blind-first ordering is deliberate: it stops the agent’s framing from anchoring your read of the same run. See research loops for the full mechanics.
A plugin, not a fixed product
Section titled “A plugin, not a fixed product”Because Autoresearch is a plugin over ordinary pages and registered workflows, the loop is yours to configure rather than a fixed pipeline you opt into wholesale. You decide per goal whether the heartbeat runs on a schedule, what budget bounds the scheduler, whether a hypothesis tournament runs at all, and which autonomy gates (if any) you lift. A goal with no trigger attached simply never runs the heartbeat; the domain model and the workflows are equally available to a bare install where you invoke everything by hand.