Classifier or judge
Both interpret an answer, and they fail in different ways.
Reach for a classifier when the label settles the question: which route was taken, whether the agent attempted or refused, which of three shapes an output has. Reach for a judge when you need to read why, because a classifier returns no prose and the failure row shows the distribution in its place.
Deciding
A case passes when the winning label is the one you expect and its confidence is at leastminConfidence.
The two failures mean different things, and the distribution tells them apart. A different label winning is disagreement. The expected label winning below the floor is the model reporting that it could not separate your options, which usually means two of them overlap.
minConfidence defaults to 0, so a bare classifier accepts whichever label wins. Raise it when a near-tie should not count as agreement.
Configuration
A classifier accepts between 2 and 255 options. One option decides nothing, and an
expect outside options is rejected when the eval compiles.
Descriptions earn their place when labels are close. { returns: null, billing: null } leaves the model to infer what each means from the name alone; a sentence each removes the ambiguity that produces low-confidence answers.
Authentication
Classifiers call TypeSafe directly. Add a TypeSafe credential under Settings > Judges, or setTYPESAFE_API_KEY in the server and worker environment for a self-hosted deployment. No harness or sandbox is involved, so no harness connection is consulted.
Keep credentials out of eval definitions, prompts, and fixtures.
Evidence and isolation
A classifier receives the rendered task prompt and the final answer. It does not receive the task workspace, transcript, MCP or CLI configuration, or task environment. Evidence travels as state rather than as instructions, so an agent’s own output cannot redirect the classification. The model generates no text, so there is no schema to violate and no refusal to parse. A classifier that cannot be reached records the failure and does not pass. A case that was never classified has not agreed with anything.Results
Each classification carriesname, model, choice, expected, probabilities, confidence, minConfidence, durationMs, and error. The dashboard shows the distribution where a judge would show its reason.
Changing a classifier’s prompt, options, or expectation changes the case identity used for baselines. Calibrate against known inputs before trusting a floor: a threshold set above the model’s usual confidence fails every case, including the correct ones.