Overview
A grader is an automated judge that scores a trace as pass or fail against one specific property of a traced function, for example “the reply never invents an order number”. Graders turn a quality bar you would otherwise check by hand into a check that runs across every trace in a dataset and every replay in an experiment. Each grader belongs to one organization and one trace function. A trace function usually has several graders, one per property worth protecting.Graders only run where they are attached. A grader with no dataset or experiment attached is a definition that never executes.
Viewing Graders
Open a trace function and select Graders. The list shows one row per grader with:
Sort by status, most evaluated, recently updated, or name, and switch between the Active and Archived views. Click a row to open the grader.
Grader Detail
The detail page shows the grader’s criteria, its judge model, and every dataset and experiment it is attached to. From here you can change the judge model, archive the grader, or restore it.Status
Creating and Editing Graders
Graders are authored from your coding agent through the Bitfab plugin, not from a form in the web portal. Ask your agent in plain language:save_grader tool, which upserts. Pass a grader id to edit a specific grader, or reuse the name of an existing grader on the same trace function to update that one instead of creating a duplicate. The same tool renames graders, clears pass and fail criteria, selects the judge model, and archives or restores. list_graders enumerates what is already defined for a function.
See the Claude Code, Cursor, or Codex plugin reference for the full tool signatures.
Writing Good Criteria
A grader is defined by a small set of fields:
Keep the focus checkable from the trace alone, and spell out acceptable variations so the judge does not fail a correct answer for phrasing it differently.
Judge Model
Every grader runs on a selectable judge model:
Change it from the dropdown on the grader detail page, or have your agent pass a model to
save_grader. Start on the default and move up only for criteria the default judge gets wrong.
Running Graders
On a Dataset
Open a dataset and use Manage in its Graders section to attach or detach graders. Your agent can do the same withadd_graders_to_dataset and remove_graders_from_dataset. Only graders belonging to the same organization and trace function as the dataset can be attached, and detaching an assignment never deletes the grader itself.
Once graders are attached, Re-run grades the dataset’s traces with the graders you select. Only one re-run can be in flight per dataset at a time.
On an Experiment
When an experiment finishes replaying a dataset, its grader set is the union of the graders attached directly to that experiment and the dataset’s runnable graders at that moment. That set is then frozen onto the experiment, so its results stay reproducible even if the dataset’s attachments change afterwards. Attaching a grader to an experiment that has already completed records the assignment but does not regrade the traces it already produced. Use Re-run on the experiment, or run a fresh replay.On New Traces
Graders do not currently run automatically as new production traces arrive. Add traces to a dataset, attach the graders you want, and use Re-run to grade them.Reading Results
- Trace lists show grader outcomes in the Grader Results column, and you can filter traces by pass or fail on a specific grader.
- Dataset rows show a pass-rate pill once graders are attached, splitting green to red at the trace’s pass rate across those graders.
- Trace detail shows each grader’s verdict with the reason it gave. A failing grader also produces a failure diagnostic explaining what went wrong.
- Corrections appear when a reviewer labels a trace as a pass that a grader failed. The trace shows who corrected it, which is the clearest signal that the grader’s criteria need tightening.
Archiving
Archive a grader from its row in the list or from its detail page. Archived graders are hidden from the default view, stop running everywhere, and keep their history. Switch the list to Archived to restore one.Best Practices
- One property per grader: a focused grader produces an actionable failure.
- Attach before expecting results: a grader runs only on the datasets and experiments it is attached to.
- Re-run after editing criteria: existing evaluations reflect the criteria in place when they ran.
- Grade both directions: a dataset of only failures cannot tell you whether a grader is too strict.
- Escalate the judge model deliberately: reach for a stronger model when the default judge is measurably wrong, not by default.