Datasets
A dataset is a set of examples. Each example is an input (the arguments and files the workflow receives) plus, optionally, the expected output (the ground-truth result). Datasets are portable folder archives, so you can build them locally and push them, or pull and edit them.Evaluators
An evaluator scores a run’s actual output against the example’s expected output and returns a pass or a number. Define them inevaluators.yaml. Three
types ship in the box:
exact-diffdoes a JSON deep-diff against the expected output. Use it when the output should match exactly. Author comparison with a per-fieldrulesmap: each key selects a path ($for the full output),{}uses inherited platform defaults, and options such asnumericTolerance,order: unordered,items: at-least | at-most | exactly, andallowExtraFieldsapply at that path and inherit down the tree unless a descendant overrides them. Unordered arrays of objects may also setmatchByon that array path; it requiresorder: unorderedon the same rule and is not inherited. Identity type and value must both match (numeric10differs from string'10'). Arrayorder/items/matchBybelong onlineItems, not on the item pathlineItems[]. Ordered arrays keep historical prefix matching:items: at-leastrequires expected to match actual from index 0 (trailing actual extras only). Setignore: trueon a descendant rule to exclude volatile evidence, citations, timestamps, or other captured golden fields from both sides of the comparison.llm-judgeuses an LLM to score the output against a rubric, with a pass threshold. Use it when “correct” is fuzzy (summaries, free text).custom-scriptruns a typed TypeScript scoring function in the sandbox. Use it when correctness is a calculation you can write. The function receivesexpectedandactualenvelopes (expected.data/actual.data; actual may also includefiles) and includes a required: numberreturn annotation, matchingtransform.script.
Experiments
An experiment runs a workflow version across the whole dataset and collects the scores in one place. Run two experiments on two versions and compare them to see what a change improved or broke.batchId. The
REST API and SDKs call the same value an experimentId.
See Evaluate a workflow for the end-to-end flow.
When production review uncovers a new miss, use
Review production runs to correct it and promote it into
the dataset.