Universal.Operative.Sdk.Discrete.MoonshotAI
3.0.1
dotnet add package Universal.Operative.Sdk.Discrete.MoonshotAI --version 3.0.1
NuGet\Install-Package Universal.Operative.Sdk.Discrete.MoonshotAI -Version 3.0.1
<PackageReference Include="Universal.Operative.Sdk.Discrete.MoonshotAI" Version="3.0.1" />
<PackageVersion Include="Universal.Operative.Sdk.Discrete.MoonshotAI" Version="3.0.1" />
<PackageReference Include="Universal.Operative.Sdk.Discrete.MoonshotAI" />
paket add Universal.Operative.Sdk.Discrete.MoonshotAI --version 3.0.1
#r "nuget: Universal.Operative.Sdk.Discrete.MoonshotAI, 3.0.1"
#:package Universal.Operative.Sdk.Discrete.MoonshotAI@3.0.1
#addin nuget:?package=Universal.Operative.Sdk.Discrete.MoonshotAI&version=3.0.1
#tool nuget:?package=Universal.Operative.Sdk.Discrete.MoonshotAI&version=3.0.1
About
Universal.Operative.Sdk.MoonshotAI plugs Moonshot AI's Kimi models into Universal.Operative.Sdk via an IModel adapter (Model) backed by the Universal.MoonshotAI.Client transport.
Unlike OpenAI, Moonshot has no Responses-equivalent endpoint — Chat Completions is the only surface — so there's a single Model here rather than a Chat/Responses pair.
How to Use
Installation
dotnet add package Universal.Operative.Sdk.MoonshotAI
Configuration
using Universal.Operative.Sdk;
using Universal.Operative.Sdk.MoonshotAI;
IModel model = new Model(apiKey, new Model.Options
{
ModelId = "kimi-k3",
MaxCompletionTokens = 4096,
});
The constructor also accepts an existing Universal.MoonshotAI.Client.V1.V1Client in place of an API key, so you can reuse a pre-built client (custom endpoint — e.g. api.moonshot.cn — headers, etc.) across models:
using Universal.MoonshotAI.Client.V1;
V1Client client = new V1Client("https", "api.moonshot.cn", apiKey);
IModel model = new Model(client, new Model.Options { ModelId = "kimi-k3" });
Usage
Drop the model into EngineBuilder like any other IModel:
IEngine engine = EngineBuilder.FromDefaults(model)
.AddBaselineToolSet()
.Build();
await foreach (EngineEvent e in engine.ExecuteAsync(conversation))
{
// handle events as usual — see Universal.Operative.Sdk's Package.md
}
Reasoning models
kimi-k3 takes a ReasoningEffort hint ("low"/"high"/"max"); kimi-k2.6/kimi-k2.5 take a Thinking toggle instead (kimi-k2.7-code always reasons and exposes neither). Either way, the chain-of-thought comes back as a ReasoningBlock in the settled Message, same as any other provider's extended thinking:
IModel reasoningModel = new Model(apiKey, new Model.Options
{
ModelId = "kimi-k2.6",
Thinking = new ThinkingConfiguration { Type = ThinkingTypes.Enabled },
});
Structured output
Model.Options.ResponseFormat is the escape hatch for JSON object output, forwarded verbatim as response_format. Moonshot's own JSON-mode guide only documents {"type": "json_object"} — describe the desired shape in the prompt itself, since this parameter alone doesn't communicate a schema to the model.
Known gaps
Universal.MoonshotAI.Client has no typed content-block classes, so this adapter builds image_url content parts by hand from ImageBlock; DocumentBlock, AudioBlock, and VideoBlock throw NotSupportedException. Moonshot's built-in $web_search tool isn't wired up here — it fails server-side even when built exactly to Moonshot's documented protocol.
License
Free for noncommercial use under the Universal.Operative Noncommercial License. Source is closed; commercial use requires a separate license from Andrew Ong.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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
- Universal.MoonshotAI.Client (>= 1.0.0)
- Universal.Operative.Sdk.Discrete (>= 3.1.1)
-
net8.0
- Universal.MoonshotAI.Client (>= 1.0.0)
- Universal.Operative.Sdk.Discrete (>= 3.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Support portable tool identifiers, dispatch restoration, and freeform tool-call replay.