SystemOneSharp.Extensions.AI.Evaluation
0.2.0
dotnet add package SystemOneSharp.Extensions.AI.Evaluation --version 0.2.0
NuGet\Install-Package SystemOneSharp.Extensions.AI.Evaluation -Version 0.2.0
<PackageReference Include="SystemOneSharp.Extensions.AI.Evaluation" Version="0.2.0" />
<PackageVersion Include="SystemOneSharp.Extensions.AI.Evaluation" Version="0.2.0" />
<PackageReference Include="SystemOneSharp.Extensions.AI.Evaluation" />
paket add SystemOneSharp.Extensions.AI.Evaluation --version 0.2.0
#r "nuget: SystemOneSharp.Extensions.AI.Evaluation, 0.2.0"
#:package SystemOneSharp.Extensions.AI.Evaluation@0.2.0
#addin nuget:?package=SystemOneSharp.Extensions.AI.Evaluation&version=0.2.0
#tool nuget:?package=SystemOneSharp.Extensions.AI.Evaluation&version=0.2.0
SystemOneSharp.Extensions.AI.Evaluation
An IEvaluator for Microsoft.Extensions.AI.Evaluation. It sends one System One request per evaluation and reports each answer as a metric. Several metrics cost one inference.
dotnet add package SystemOneSharp.Extensions.AI.Evaluation
It depends on SystemOneSharp, SystemOneSharp.Extensions.AI and Microsoft.Extensions.AI.Evaluation. It does not depend on Agent Framework.
Use
using Microsoft.Extensions.AI.Evaluation;
using SystemOneSharp.Extensions.AI.Evaluation;
var evaluator = new SystemOneEvaluator(client,
request => request
.AddNoul("completed", "Did the assistant complete the user's task?")
.AddScore("quality", "How good is the answer?", score => score.Level("poor").Level("fair").Level("good"))
.AddChoice("failure", "What went wrong, if anything?", choice => choice
.Option("none", "Nothing went wrong")
.Option("off_topic", "The answer is off topic")),
metrics => metrics
.Noul("completed", "TaskCompletion", value => value >= 0.95
? new EvaluationMetricInterpretation(EvaluationRating.Good)
: new EvaluationMetricInterpretation(EvaluationRating.Unacceptable, failed: true))
.Score("quality", "Quality")
.Choice("failure", "FailureMode"));
EvaluationResult result = await evaluator.EvaluateAsync(messages, chatResponse);
The state is messages plus chatResponse.Messages, built by the shared projection. Your delegate adds the questions, and can also call WithModel.
Metrics
| Answer | Metric | Value |
|---|---|---|
| Noul | NumericMetric |
the probability, 0–1 |
| Score | NumericMetric |
the weighted score, 0 to levels − 1 |
| Choice | StringMetric |
the selected label |
For Score and Choice metrics, confidence and the full distribution are kept in Metadata under systemone-confidence and systemone-probabilities (a JSON object). They are not separate metrics. Every metric also carries eval-model, eval-input-tokens, eval-output-tokens, eval-total-tokens and eval-duration-ms, which are the names the built-in evaluators use.
Thresholds
The evaluator reports the model's numbers as returned. A verdict such as "TaskCompletion ≥ 0.95 passes" comes from the optional interpretation delegate you pass per metric, which sets MEAI's own EvaluationMetricInterpretation. Without a delegate, a metric has a value and no verdict.
Failures and ignored inputs
- Exceptions from
ISystemOneClient.DecideAsync(API, transport, protocol, cancellation) propagate unchanged, so a failed decision is never reported as a score. - A metric mapped to a question that is missing, or of another type, throws
InvalidOperationException. ChatConfigurationis not used, because no generative model is involved.additionalContextis ignored.
See also: Agent Framework, core client.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.AI.Evaluation (>= 10.10.0)
- SystemOneSharp.Extensions.AI (>= 0.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 0.2.0 | 116 | 9/26/2026 | |
| 0.2.0-preview.1 | 62 | 9/25/2026 |