CircleAI.Inference 1.4.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package CircleAI.Inference --version 1.4.1
                    
NuGet\Install-Package CircleAI.Inference -Version 1.4.1
                    
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="CircleAI.Inference" Version="1.4.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CircleAI.Inference" Version="1.4.1" />
                    
Directory.Packages.props
<PackageReference Include="CircleAI.Inference" />
                    
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 CircleAI.Inference --version 1.4.1
                    
#r "nuget: CircleAI.Inference, 1.4.1"
                    
#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 CircleAI.Inference@1.4.1
                    
#: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=CircleAI.Inference&version=1.4.1
                    
Install as a Cake Addin
#tool nuget:?package=CircleAI.Inference&version=1.4.1
                    
Install as a Cake Tool

Circle AI

On-device companion AI for the Aether Protocol ecosystem. ~100 C# modules covering inference, multi-agent orchestration, memory + persona, voice, tooling, mesh transport, and 50+ domain adapters β€” plus an OpenAI-compatible self-hosted inference server you can drop behind a load balancer.

Built around one architectural promise: the SDK has zero model knowledge. ModelScope's catalog is the source of truth, discovered at runtime. A new Qwen / Kimi / DeepSeek variant lands on ModelScope, the SDK picks it up on next refresh. NuGet sleeps β€” releases are for SDK bugs and new runtime backends, not "we support a new model."

See ARCHITECTURE.md for why.


What's in here

🧠 Inference

The trinity every consumer binds to:

Type Where Purpose
IChatGenerator CircleAI.Inference The atomic seam: messages in, tokens out
IInferenceBridge CircleAI.Hosting.InferenceBridge Lifecycle + descriptor wrapper around a generator
IAIService CircleAI.Hosting The long-lived companion service β€” RAG, persona, tools, observers

Runtime: Alibaba MNN (Apache-2.0) on every platform. Models: Qwen 3+, Kimi-VL, DeepSeek, GLM β€” discovered through ModelScope, not pinned in source. See docs/ARCHITECTURE.md for the full Chinese-sovereign rationale.

πŸ–₯️ CircleAI.Inference.Server

OpenAI-compatible HTTP server. Endpoints: /v1/chat/completions (SSE streaming), /v1/embeddings, /v1/companion/*, /v1/diagnostics, /v1/healthz, /v1/readyz. JWT and API-key auth out of the box. Ships with a Dockerfile, a systemd unit, and a Windows-service install script.

Drop it behind a load balancer and any OpenAI-SDK consumer talks to it unchanged.

πŸ‘₯ Companion + Memory

  • CircleAI.Companion β€” long-running session loop with proactive turn generation and mesh-state sync.
  • CircleAI.Memory β€” episodic memory + RAG context builder, persona evolution, affect state, goal tracking, feedback signals.
  • CircleAI.Orchestration β€” multi-agent loop (LokiOrchestrator) with quality gates and concurrent dispatch.

πŸ”§ Tools + Skills + Voice

  • CircleAI.Tools β€” IToolBridge for function calling. Built-in HttpToolBridge maps REST APIs to tool definitions.
  • CircleAI.Skills β€” pluggable capability surface the model can invoke contextually.
  • CircleAI.Voice β€” ONNX TTS / STT pipeline (the only ONNX dependency in the codebase β€” text inference stays MNN).

πŸ•ΈοΈ Networking + Security

  • CircleAI.Networking.* β€” pluggable transports (HTTP / WebSocket / AetherNet are production; BLE / DTN / NearLink are scaffolded). ITransportSelector picks per-message based on connectivity, not by consumer choice.
  • CircleAI.Security.* β€” mesh-directive-driven chat refusal, AetherMesh bindings.

πŸ›οΈ β‰ˆ50 domain adapters

CircleAI.Beauty, CircleAI.Construction, CircleAI.Faith, CircleAI.Family, CircleAI.Fitness, CircleAI.Food, CircleAI.Healthcare, CircleAI.RealEstate, CircleAI.Tourism, CircleAI.Tradesperson, … β€” each provides domain-specific system-prompt context, knowledge facets, and lifecycle hooks. The companion engine loads only the adapters whose required sensors / UI fit the host device.


Quick install β€” C# (.NET 9 / .NET 10)

dotnet add package CircleAI.Inference.Server   # if you want the HTTP server
dotnet add package CircleAI.Hosting             # if you want the in-process service

Zero-knob consumer

using CircleAI.Hosting;

// The SDK figures out: which model fits this device, what context window
// it can sustain, how many agents it can dispatch concurrently, which
// KV-compression mode to use. The consumer only states intent.
var ai = new AIService(new AIOptions
{
    SystemPrompt         = "You are B!, the helpful one.",
    RequiredCapabilities = ChatCapability.Default | ChatCapability.Tools,
});

await ai.StartAsync();

var answer = await ai.AskAsync("What's the capital of Morocco?");
Console.WriteLine(answer);

That's it. No ModelId. No ContextSize. No MaxConcurrency. The SDK probes the device, queries the ModelScope catalog, picks the highest-quality bundle that fits + satisfies the capability flags, and keeps that decision live as the catalog refreshes.

For the full picture (overrides, injection points, observer events, bring-your-own-runtime), see CONSUMING.md.


Self-hosted inference server

docker run -d -p 5050:5050 \
  -v ~/.circleai/models:/var/lib/circleai/models \
  ghcr.io/bhengubv/circleai-inference-server:latest
# Drop-in OpenAI replacement
curl http://localhost:5050/v1/chat/completions \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model":"auto","messages":[{"role":"user","content":"Hi"}]}'

"model":"auto" β‡’ IModelSelector.BestFit(deviceProbe, ChatCapability.Default). The server picks; you don't.

Full deployment guide in docs/DEPLOY.md.


Sister repository β€” the 10-language portable kernel

The portable Circle AI kernel (AffectState math, KnownLanguages registry, ICompanionSession contracts) ships in 10 languages so every Aether node can host the companion stack natively β€” C#, Python, TypeScript, Go, Kotlin, Swift, Rust, C, Android (Kotlin), HarmonyOS (ArkTS).

The 10-language SDK lives alongside the C# framework in this repository. Per-language quickstarts: see docs/quickstart/.


License

MIT. See LICENSE.


Pointers

Doc Purpose
ARCHITECTURE.md Why ModelScope is the catalog and NuGet sleeps
docs/ARCHITECTURE.md The full Chinese-sovereign stack rationale
CONSUMING.md The trinity, the three injection points, worked example
SETUP.md MNN native-runtime setup per platform
TODO.md Open work, current priorities
docs/quickstart/ Per-language quickstart for the portable kernel
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on CircleAI.Inference:

Package Downloads
CircleAI.Embeddings

On-device text embeddings for Circle AI. Sovereign-origin embedder (BGE / Qwen-Embedding) for fully offline semantic search.

CircleAI.Hosting

DI wiring, scheduled tasks, and proactive reasoning host for Circle AI agents. 1.4.0 wires the P0 architectural shift end-to-end: AIOptions.ModelId / ContextSize / AgenticMaxIterations all nullable (default null = derive from device tier via IModelSelector + DeviceTierDefaults); AIOptions gains CatalogClient (opt-in ModelScope refresh) and RequiredCapabilities (Vision routes IChatGenerator to KimiVlGenerator). New AIService overload accepts IModelSelector; ResolveModelPathAsync auto-resolves ModelId via BestFit when null, emits IAIObserver.OnModelFetchingAsync before download with autoSelected flag. ServiceCollectionExtensions registers IDeviceContext (DefaultDeviceContext.Instance), ICatalogSignatureVerifier (NullCatalogSignatureVerifier fail-closed), ModelRegistryService, IModelSelector (DeviceAwareModelSelector), IPromptTemplateEngine β€” all via TryAdd so consumer overrides win.

CircleAI.Languages.Translation

On-device real-time translation for Circle AI. No API call, no data leaving device. Context-aware, live conversation mode, document translation.

CircleAI.Hosting.InferenceBridge

Cross-OS LLM inference daemon contract for Circle AI β€” one model loaded once per device, shared by every app via OS-specific IPC. Ship-once, run-everywhere.

CircleAI.Inference.Server

OpenAI-compatible hosted inference server over CircleAI.Hosting.InferenceBridge. Endpoints: /v1/chat/completions (SSE streaming), /v1/embeddings, /v1/companion/*, /v1/diagnostics, /v1/healthz, /v1/readyz. JWT and API-key auth out of the box. Ships Dockerfile, systemd unit, and a Windows-service install script. 1.3.6 picks up CircleAI.Inference 1.3.6 β€” adds linux-arm64 (Raspberry Pi 4/5, AWS Graviton, Apple-Silicon-via-Linux-VM, ARM-based cloud VMs). Server now runs on 5 host platforms: win-x64, linux-x64, linux-arm64, osx-arm64, osx-x64.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.5.0 0 6/9/2026
1.4.1 0 6/9/2026
1.4.0 0 6/9/2026
1.3.6 41 6/8/2026
1.3.5 37 6/8/2026
1.3.4 42 6/8/2026
1.3.3 38 6/8/2026
1.3.2 40 6/8/2026
1.3.1 51 6/8/2026
1.3.0 44 6/8/2026
1.2.3 45 6/7/2026
1.2.2 49 6/6/2026
1.2.1 45 6/6/2026
1.2.0 310 6/6/2026
1.0.0 99 6/3/2026