Rubric, scenario, rule
A rubric is a topology’s definition of correct. It contains scenarios, concrete situations the agent is designed to handle, and each scenario carries rules, the assertions that define success for that situation.Scenario
Scenario
A scenario belongs to one agent. It is written the way a support lead would describe a call: a name, a short scenario prompt (“Existing patient with a previous appointment wants a follow-up visit”), and the dataset rows it binds.
Rule
Rule
A rule is a name plus a sentence for the judge to check: “the agent collects the caller’s address before booking.” Each rule is scoped to the whole conversation or to a single node (for example
patient_lookup), so you can assert on one prompt without pulling in the rest of the graph.Rules read the transcript and the tool calls
A rule evaluates against both. “Told the caller it was booked” is a transcript assertion; “actually calledbook_appointment” is a tool-call assertion. An agent that does the first without the second is the most damaging production failure there is, and only a rule that sees both catches it.
Every rule is LLM-judged
No regex, no string matching, no assertion DSL. A rule is a sentence; a judge model reads the transcript and the tool calls and returns a verdict. This is a deliberate trade. Deterministic checks are cheaper and more stable, but almost nothing that matters about a conversation is deterministically checkable (“never quoted a dosage change” has no regex). The cost is that a rubric is only as good as its rules are specific: a vague rule produces a vague verdict.Three outcomes
Every rule comes back pass (the scenario matched and the rule held), fail (matched and violated), or skipped (this conversation was not that scenario).skipped is what lets one rubric describe a whole system, instead of a rubric per situation where correctness definitions drift apart, or one rubric where most rules fail on most conversations and real failures drown in noise. Scoring excludes skips:
One rubric grades production and redteam alike
Because rules are LLM-judged and scenarios are plain language, a rubric does not need a redteam to run. Any conversation can pass through it: the judge first matches the conversation to a scenario, then grades it against that scenario’s rules. Rules from other scenarios skip. This collapses two things most stacks keep apart: pre-merge testing and production monitoring become the same measurement, against the same definition of correct. A regression the redteam catches and a regression seen in production are the same number moving.Authoring
Scenarios and rules are authored through the Gradient UI or the API, so a coding agent (Claude Code or Codex) writes them the same way it writes prompts and tools: describe the situation in the terminal, and it creates the scenario, its rules, and the dataset rows they bind. Grade a trace on demand from its Rubric tab, or turn on auto-grading for an agent so every finished call is matched and graded automatically. Auto-grading is off by default and opt-in per agent.Results and traces
Read a run by scenario and by node, and turn a failing rule into a fix.
Redteam testing
Generate the graded conversations from forks of a seeded dataset.