SystemOneSharp.Extensions.AI 0.2.0

dotnet add package SystemOneSharp.Extensions.AI --version 0.2.0
                    
NuGet\Install-Package SystemOneSharp.Extensions.AI -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" 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" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="SystemOneSharp.Extensions.AI" />
                    
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 --version 0.2.0
                    
#r "nuget: SystemOneSharp.Extensions.AI, 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@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&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=SystemOneSharp.Extensions.AI&version=0.2.0
                    
Install as a Cake Tool

SystemOneSharp.Extensions.AI

Turns a Microsoft.Extensions.AI conversation into System One state. It is the one projection the evaluation and Agent Framework packages also use, so a conversation looks the same to System One wherever it comes from.

dotnet add package SystemOneSharp.Extensions.AI

It depends on SystemOneSharp and Microsoft.Extensions.AI.Abstractions only.

Use

using SystemOneSharp;
using SystemOneSharp.Extensions.AI;

var request = new SystemOneRequestBuilder()
    .WithConversation(messages)                      // IEnumerable<ChatMessage>
    .AddNoul("answered", "Did the assistant answer the user's question?")
    .Build();

var response = await client.DecideAsync(request);

messages.ToSystemOneState() and SystemOneAiState.Create(messages, options) return the same state as a JsonObject.

The builder method is WithConversation, not WithState: SystemOneRequestBuilder.WithState<T>(T) would otherwise bind first and serialize every property of every ChatMessage.

The state schema

The schema belongs to SystemOneSharp, and it stays the same when ChatMessage gains properties:

{
  "messages": [
    { "role": "user", "contents": [ { "type": "text", "text": "Weather in Paris?" } ] },
    { "role": "assistant", "contents": [
      { "type": "function_call", "call_id": "call-1", "name": "get_weather", "arguments": { "city": "Paris" } } ] },
    { "role": "tool", "contents": [
      { "type": "function_result", "call_id": "call-1", "result": "Sunny, 21 °C" } ] }
  ]
}

Only TextContent, FunctionCallContent and FunctionResultContent are projected. Other types will be added once it is clear what they mean to System One. Reasoning, images, data, usage and tool-approval content are left out by default. A message whose contents are all left out keeps its turn with an empty contents array. Set SystemOneAiStateOptions.ThrowOnUnsupportedContent to get a NotSupportedException instead.

RawRepresentation, AdditionalProperties, author names and message IDs are never included.

Function arguments and results are serialized with AIJsonUtilities.DefaultOptions unless you set SystemOneAiStateOptions.SerializerOptions.

What this package does not do

It has no IChatClient and no decision-client abstraction. Microsoft's proposed provider-neutral decision API (dotnet/extensions#7764) has not shipped. When it does, an adapter from it to ISystemOneClient belongs in this package.

See also: evaluation, 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 (2)

Showing the top 2 NuGet packages that depend on SystemOneSharp.Extensions.AI:

Package Downloads
SystemOneSharp.Extensions.AI.Evaluation

A Microsoft.Extensions.AI.Evaluation evaluator that turns one System One request into several metrics.

SystemOneSharp.AgentFramework

System One completion loop evaluator and function-call gating middleware for Microsoft Agent Framework.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.0 138 9/26/2026 0.2.0 is deprecated because it is no longer maintained.
0.2.0-preview.1 77 9/25/2026