Sylin.Koan.AI
1.0.29
dotnet add package Sylin.Koan.AI --version 1.0.29
NuGet\Install-Package Sylin.Koan.AI -Version 1.0.29
<PackageReference Include="Sylin.Koan.AI" Version="1.0.29" />
<PackageVersion Include="Sylin.Koan.AI" Version="1.0.29" />
<PackageReference Include="Sylin.Koan.AI" />
paket add Sylin.Koan.AI --version 1.0.29
#r "nuget: Sylin.Koan.AI, 1.0.29"
#:package Sylin.Koan.AI@1.0.29
#addin nuget:?package=Sylin.Koan.AI&version=1.0.29
#tool nuget:?package=Sylin.Koan.AI&version=1.0.29
Sylin.Koan.AI
The AI capability ring for Koan: one business-facing client, capability-aware routing, provider composition, source health, and startup inspection.
The generated product surface owns support maturity. This page owns AI runtime setup, routing behavior, and limits.
Smallest meaningful use
Install this runtime and one provider, for example:
dotnet add package Sylin.Koan.AI
dotnet add package Sylin.Koan.AI.Connector.Ollama
using Koan.AI;
using Koan.Core;
using Microsoft.Extensions.Hosting;
var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddKoan();
using var app = builder.Build();
await app.StartAsync();
Console.WriteLine(await Client.Chat("Summarize today's orders."));
AddKoan() is the complete application bootstrap. Referenced provider modules describe their capabilities; Koan
compiles the host's provider topology, activates what is actually usable, and reports the result at startup. There is
no provider registration list for the application to maintain.
The application surface
Client exposes semantic operations such as Chat, Stream, Embed, Ocr, Imagine, Transcribe, Speak,
Rerank, Translate, and Moderate. The application asks for an operation; the AI pipeline elects a source and
adapter that truthfully advertise that capability.
string answer = await Client.Chat("Which orders need attention?");
float[] meaning = await Client.Embed("priority customer escalation");
Prompts are inspectable, immutable values and do not activate Data:
using Koan.AI.Prompt;
var prompt = Prompt.Create(p => p
.System("You summarize orders for an operations team.")
.Instruct("Summarize order {orderId} in one sentence.")
.Constrain("State uncertainty explicitly."));
string summary = await Client.Chat(prompt, new { orderId = order.Id });
Reference Sylin.Koan.AI.Prompt only when the application needs an Entity-backed catalog of named versions.
Category configuration can constrain source or model without leaking provider mechanics into business code. Named
sources under Koan:Ai:Sources are the advanced routing surface; ordinary applications normally need only a provider
reference and, when conventions cannot locate it, that provider's exact endpoint configuration.
When one request must select both, the choices compose:
var response = await Client.Conversation()
.WithUser("Summarize the deployment.")
.WithSource("local-gpu") // or "local-gpu::secondary" to pin one member
.WithModel("qwen3:8b")
.Send();
An explicit source or member is authoritative. Koan preserves it with the explicit model or rejects a
missing, disabled, or capability-incompatible choice with usable alternatives; it never silently elects
another source. Without WithSource, normal capability and priority election remains unchanged.
Applications that operate a changing endpoint catalog can request IAiSourceControl. Inspect an endpoint through
its provider protocol before applying it, then enable, disable, or remove the logical source without rebuilding the
host:
var inspection = await sourceControl.InspectAsync(new AiSourceCandidate
{
Provider = "ollama",
Endpoint = "http://model-host:11434"
});
if (inspection.Available)
{
Console.WriteLine(inspection.Version ?? "version unavailable");
Console.WriteLine($"Installed: {string.Join(", ", inspection.Models)}");
Console.WriteLine(inspection.ResidentModelsAvailable
? $"Resident: {string.Join(", ", inspection.ResidentModels)}"
: "Residency unavailable");
}
sourceControl.Disable("maintenance-pool");
sourceControl.Remove("retired-pool", expectedOrigin: "runtime");
Available means at least one provider-owned inspection facet answered. VersionAvailable,
ModelsAvailable, and ResidentModelsAvailable distinguish unavailable facts from successful empty values;
Models is the installed-model catalog. Ollama inspection owns its version, tags, and process APIs. LM Studio
inspection owns its OpenAI-compatible models API and reports only the facets that protocol can inspect. Inspection
does not register the endpoint. Disabled and removed sources leave routing and health probing immediately.
Host and failure contract
Client.IsAvailableandClient.TryResolve()are optional probes. They return absence for a missing or disposed host.- Required operations throw
KoanHostContextExceptionwhen no live composed AI pipeline exists. - Referencing the AI runtime without a usable provider is allowed; invoking an unsupported operation is not.
- Explicit provider configuration is intent and fails startup when invalid. Automatic candidates may be absent without making the application unhealthy.
- AI source health is always present alongside other Koan readiness components once AI is active. It is noncritical
by default: an unavailable provider remains visible as
Koan.AIwithout taking an otherwise healthy application offline. Members that have not completed a probe reportunknown; they are never counted as healthy. - Provider HTTP/model errors and cancellation remain visible to the caller.
Provider packages document their exact discovery, configuration, and guarantee boundaries. See TECHNICAL.md for the compilation and routing model.
| 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 (>= 10.8.0)
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging.Console (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.10)
- Newtonsoft.Json (>= 13.0.4)
- Sylin.Koan.AI.Contracts (>= 1.0.22 && < 2.0.0)
- Sylin.Koan.Core (>= 1.0.39 && < 2.0.0)
- System.Numerics.Tensors (>= 10.0.10)
NuGet packages (13)
Showing the top 5 NuGet packages that depend on Sylin.Koan.AI:
| Package | Downloads |
|---|---|
|
Sylin.Koan.Data.AI
Entity-aware AI operations for Koan: the Entity.Ai gateway (Search/SearchScored/Embed), the instance Similar verb, EntityAi chat/OCR helpers, [Embedding] convention defaults, [MediaAnalysis] auto-processing pipeline, and cross-modal search via the MediaAnalysisEmbeddingBridge. |
|
|
Sylin.Koan.AI.Orchestration
Typed, immutable chain composition for Koan AI: RAG, branching, structured output, and streaming. |
|
|
Sylin.Koan.AI.Web
Provider-neutral HTTP projection for Koan AI chat, embeddings, model inventory, and capability inspection. |
|
|
Sylin.Koan.AI.Connector.Ollama
Ollama provider for Koan AI (chat, streaming, embeddings) with Dev auto-discovery. |
|
|
Sylin.Koan.AI.Models
Centralized model lifecycle for Koan AI: pull, convert, deploy, version, and manage models across runtimes. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.29 | 478 | 9/10/2026 |
| 1.0.28 | 210 | 9/10/2026 |
| 1.0.27 | 209 | 9/9/2026 |
| 1.0.26 | 291 | 9/9/2026 |
| 1.0.23 | 301 | 9/9/2026 |
| 1.0.20 | 204 | 9/5/2026 |
| 1.0.19 | 224 | 8/30/2026 |
| 1.0.18 | 202 | 8/30/2026 |
| 1.0.17 | 368 | 8/28/2026 |
| 1.0.16 | 181 | 8/28/2026 |
| 1.0.15 | 191 | 8/28/2026 |
| 1.0.14 | 196 | 8/27/2026 |
| 1.0.11 | 230 | 8/25/2026 |
| 1.0.10 | 163 | 8/25/2026 |
| 1.0.9 | 227 | 8/24/2026 |
| 1.0.7 | 278 | 8/22/2026 |
| 1.0.2 | 266 | 8/20/2026 |
| 1.0.0 | 234 | 8/14/2026 |
| 0.20.8 | 124 | 7/23/2026 |
| 0.20.7 | 144 | 7/23/2026 |