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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SystemOneSharp.Extensions.AI.Evaluation" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SystemOneSharp.Extensions.AI.Evaluation" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="SystemOneSharp.Extensions.AI.Evaluation" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SystemOneSharp.Extensions.AI.Evaluation --version 0.2.0
                    
#r "nuget: SystemOneSharp.Extensions.AI.Evaluation, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SystemOneSharp.Extensions.AI.Evaluation@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SystemOneSharp.Extensions.AI.Evaluation&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=SystemOneSharp.Extensions.AI.Evaluation&version=0.2.0
                    
Install as a Cake Tool

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.
  • ChatConfiguration is not used, because no generative model is involved. additionalContext is ignored.

See also: Agent Framework, core client.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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 is deprecated because it is no longer maintained.
0.2.0-preview.1 62 9/25/2026