EvaluationQualityGate
NexusLabs.Foundry.Evaluation¶
NexusLabs.Foundry.Evaluation¶
EvaluationQualityGate Class¶
Configurable quality gate that asserts evaluation metrics meet defined thresholds. Designed for CI pipelines — call Assert(EvaluationResult[]) after running evaluators to fail the build when metrics regress.
Inheritance System.Object 🡒 EvaluationQualityGate
Example¶
var gate = new EvaluationQualityGate()
.RequireBoolean(ToolCallTrajectoryEvaluator.AllSucceededMetricName, expected: true)
.RequireBoolean(IterationCoherenceEvaluator.TerminatedCoherentlyMetricName, expected: true)
.RequireNumericMax(EfficiencyEvaluator.TotalTokensMetricName, max: 50_000)
.RequireBoolean(EfficiencyEvaluator.UnderBudgetMetricName, expected: true);
// Throws QualityGateFailedException if any threshold is violated.
gate.Assert(trajectoryResult, coherenceResult, efficiencyResult);
Remarks¶
Thresholds are defined fluently via RequireNumericMax(string, double),
RequireNumericMin(string, double), and RequireBoolean(string, bool). Each
threshold names a metric (using the *MetricName constants from
evaluator classes) and a bound. Assert(EvaluationResult[]) checks all thresholds
against the evaluation result and throws
QualityGateFailedException when the structured decision is
failed or inconclusive.
Required missing or invalid metrics produce an inconclusive decision.
Use the Optional* methods for metrics that are conditionally emitted.
Methods¶
EvaluationQualityGate.Assert(EvaluationResult[]) Method¶
Checks all thresholds against the provided evaluation results. Metrics are looked up across all results — the first match wins.
Parameters¶
results Microsoft.Extensions.AI.Evaluation.EvaluationResult[]
One or more Microsoft.Extensions.AI.Evaluation.EvaluationResult instances to check.
Exceptions¶
QualityGateFailedException
Thrown when the structured threshold decision is failed or inconclusive. The exception
message lists every failed, missing, or invalid required threshold.
EvaluationQualityGate.Evaluate(EvaluationResult[]) Method¶
Evaluates all configured thresholds without throwing.
public NexusLabs.Foundry.Evaluation.EvaluationThresholdResult Evaluate(params Microsoft.Extensions.AI.Evaluation.EvaluationResult[] results);
Parameters¶
results Microsoft.Extensions.AI.Evaluation.EvaluationResult[]
One or more evaluation results to check.
Returns¶
EvaluationThresholdResult
The structured threshold result.
EvaluationQualityGate.Evaluate(EvaluationMissingMetricBehavior, EvaluationResult[]) Method¶
Evaluates all configured thresholds without throwing.
public NexusLabs.Foundry.Evaluation.EvaluationThresholdResult Evaluate(NexusLabs.Foundry.Evaluation.EvaluationMissingMetricBehavior missingMetricBehavior, params Microsoft.Extensions.AI.Evaluation.EvaluationResult[] results);
Parameters¶
missingMetricBehavior EvaluationMissingMetricBehavior
The treatment for required missing or invalid metrics.
results Microsoft.Extensions.AI.Evaluation.EvaluationResult[]
One or more evaluation results to check.
Returns¶
EvaluationThresholdResult
The structured threshold result.
EvaluationQualityGate.OptionalBoolean(string, bool) Method¶
Checks a Microsoft.Extensions.AI.Evaluation.BooleanMetric value when the metric is present.
public NexusLabs.Foundry.Evaluation.EvaluationQualityGate OptionalBoolean(string metricName, bool expected);
Parameters¶
metricName System.String
The metric name.
expected System.Boolean
The required value when present.
Returns¶
EvaluationQualityGate
This gate instance for fluent chaining.
EvaluationQualityGate.OptionalNumericMax(string, double) Method¶
Checks a Microsoft.Extensions.AI.Evaluation.NumericMetric maximum when the metric is present.
public NexusLabs.Foundry.Evaluation.EvaluationQualityGate OptionalNumericMax(string metricName, double max);
Parameters¶
metricName System.String
The metric name.
max System.Double
The maximum allowed value.
Returns¶
EvaluationQualityGate
This gate instance for fluent chaining.
EvaluationQualityGate.OptionalNumericMin(string, double) Method¶
Checks a Microsoft.Extensions.AI.Evaluation.NumericMetric minimum when the metric is present.
public NexusLabs.Foundry.Evaluation.EvaluationQualityGate OptionalNumericMin(string metricName, double min);
Parameters¶
metricName System.String
The metric name.
min System.Double
The minimum allowed value.
Returns¶
EvaluationQualityGate
This gate instance for fluent chaining.
EvaluationQualityGate.RequireBoolean(string, bool) Method¶
Requires a Microsoft.Extensions.AI.Evaluation.BooleanMetric to equal expected.
public NexusLabs.Foundry.Evaluation.EvaluationQualityGate RequireBoolean(string metricName, bool expected);
Parameters¶
metricName System.String
The metric name (use evaluator *MetricName constants).
expected System.Boolean
The required boolean value.
Returns¶
EvaluationQualityGate
This gate instance for fluent chaining.
EvaluationQualityGate.RequireNumericMax(string, double) Method¶
Requires a Microsoft.Extensions.AI.Evaluation.NumericMetric to be at most max.
public NexusLabs.Foundry.Evaluation.EvaluationQualityGate RequireNumericMax(string metricName, double max);
Parameters¶
metricName System.String
The metric name (use evaluator *MetricName constants).
max System.Double
The maximum allowed value (inclusive).
Returns¶
EvaluationQualityGate
This gate instance for fluent chaining.
EvaluationQualityGate.RequireNumericMin(string, double) Method¶
Requires a Microsoft.Extensions.AI.Evaluation.NumericMetric to be at least min.
public NexusLabs.Foundry.Evaluation.EvaluationQualityGate RequireNumericMin(string metricName, double min);
Parameters¶
metricName System.String
The metric name (use evaluator *MetricName constants).
min System.Double
The minimum allowed value (inclusive).
Returns¶
EvaluationQualityGate
This gate instance for fluent chaining.