create criterion
create_criterionCreate a judge criterion to score traffic automatically and calibrate it against human labels. Define the rubric, judge model, and population for reliable evaluations.
Instructions
Create a judge criterion (a rubric prompt run by a judge model) that can score traffic online and be calibrated against human labels. POST /v1/criteria (API-key scope: evals:write). Returns: 201 with the criterion object (same shape as list items): id, name, description, judge_prompt, judge_model, status, source, unit, population, population_family, online_* fields, tier, trust, ci, drift, tpr, tnr, kappa, alignment_n, aligned_at, created_at Notes: OWNER/ADMIN only (403). Creating does not spend; judging (align, online monitoring) does. Body keys are snake_case exactly as listed; other criterion knobs (coverage, pre-checks, contract rules) are not settable through this endpoint.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Unique within the workspace, trimmed, 1..80 chars. Duplicate name is a 400. | |
| unit | No | What one verdict covers: "request" judges one exchange, "trace" judges a whole agent run. CREATE-ONLY; cannot be changed later. Default: "request". | |
| population | No | Request tag this criterion judges online AND calibrates against (one binding). Max 64 chars; "" = all traffic. | |
| description | No | Optional note, max 500 chars (nullable). | |
| judge_model | Yes | Model id that runs the judgment. Must be an available model (400 "Judge model '<id>' is not available."). | |
| judge_prompt | Yes | The rubric the judge model applies, trimmed, 10..4000 chars. | |
| population_family | No | Auto-detected traffic segment (a `family` value from GET /v1/logs facets, 16 hex chars or "none") scoping the same binding. Max 32 chars; "" = no segment scope. |