Overview
A dataset is a named bucket of traces for one trace function: the traces your team reviews, that graders score, and that experiments replay against. It is the unit of evaluation in Bitfab. Without a dataset, a grader has nothing to run on and an experiment has nothing to replay. Datasets usually start as a failure mode you want to fix, for example “Hallucinated order numbers” or “Long multi-turn threads”, and grow as you find more traces that belong in them.Creating a Dataset
Ask your coding agent:create_dataset with the trace function key, a short name, and an optional description, then populates it with add_traces_to_dataset. The portal’s New dataset button shows this prompt rather than opening a form.
Membership
- Adding traces is idempotent. Re-adding a trace already in the dataset does nothing.
- Traces are validated against the dataset’s trace function key. Ids that belong to another organization or another trace function are skipped, and the response reports how many were added versus skipped.
- Up to 100 traces per call.
- Removing a trace from a dataset does not delete the trace.
Reading a Dataset
The datasets list for a trace function shows each dataset’s name, trace count, and one verdict signal:
A dataset shows exactly one of these. Grader results and human labels are never mixed into a single verdict.
Open a dataset to see its traces, the graders attached to it, and the experiments that have replayed it.
Attaching Graders
The dataset detail view has a Graders section. Use Manage to attach or detach graders, and Re-run to grade the dataset’s traces with the graders you select. Only one re-run runs at a time per dataset. Graders must belong to the same organization and trace function as the dataset. Detaching a grader from a dataset never deletes the grader. See Graders for what the graders themselves do.Running Experiments Against a Dataset
An experiment replays a dataset’s traces against your current code and scores the results. The experiment inherits the dataset’s runnable graders at completion, so attaching a grader to the dataset is usually all the setup an experiment needs.Best Practices
- Include both directions. A dataset of only failures cannot tell you when a change makes things worse. Add the passing traces you refuse to regress.
- Keep a dataset about one thing. “Hallucinated order numbers” tells you what broke. “Bad outputs” does not.
- Grow it from real failures. Every production failure worth fixing is worth adding, so the fix is locked in.
- Size it for the loop you want. Small enough to replay quickly while iterating, large enough that the pass rate means something.