EvaluationSettings is the grading config half on its own: build it once, then run it against any dataset by id, instead of every dataset carrying its own copy.
Since the judge-scorer unification, an evaluation-settings record IS the judge rubric + offline profile of an LLM Judge Scorer - the unified entity at client.monitor.judge_scorers, which also carries the optional online (live-traffic) profile. This surface keeps working unchanged (it now emits a default-hidden DeprecationWarning on first use); prefer judge_scorers for new code so both profiles live in one place - client.monitor.judge_scorers.builder(...) takes the same snake_case parameters as the builder below, plus tool_context, thresholds, and the live profile in the same call - and manage everything from the dashboard’s Scorers page.
Passing a grader id is entirely optional (scorer_id is the current name; evaluation_settings_id is the pre-consolidation alias for the same id). Omit it and a run grades against the dataset’s own bundled config, exactly as if this feature didn’t exist. On self-host, additional_scorer_ids=[...] adds up to 4 extra judges that each score every result too - the primary keeps the rating column, extra verdicts land in judge_scorer_results per row (see the quickstart).
Programmatic builder
builder() parameters
publish() sends the config to AgentX and returns an EvaluationSettings object with .id, which you pass as scorer_id (or the alias evaluation_settings_id) to client.evaluations.run().
With number_of_requests above 1, runs report per-case repetition spread as caseStatistics -
see Repetition statistics.
Configuring the judge
judge_prompt/judge_model apply to every scoring path, native dashboard runs and SDK/custom-agent runs alike:
judge_prompt is a raw template: {input}, {output}, and {expected} are substituted in. Everything else the judge needs (chain of thought, capabilities/references, criteria, per-question judge_guideline, delegation notes) is appended automatically after it, so a custom prompt can restructure the grading philosophy without ever losing that context. Omit judge_prompt to keep the default rubric, or judge_model to keep the default (gpt-5.6-luna).
Running against a dataset
evaluation_settings_id can be reused across as many dataset_ids as you want. Build it once, grade any dataset with it going forward.
Fetching an existing config
Next steps
Build Dataset
Create the test cases this config will grade
Quick Start
Run an evaluation end to end

