AiCleverness 1.9.0
dotnet add package AiCleverness --version 1.9.0
NuGet\Install-Package AiCleverness -Version 1.9.0
<PackageReference Include="AiCleverness" Version="1.9.0" />
<PackageVersion Include="AiCleverness" Version="1.9.0" />
<PackageReference Include="AiCleverness" />
paket add AiCleverness --version 1.9.0
#r "nuget: AiCleverness, 1.9.0"
#:package AiCleverness@1.9.0
#addin nuget:?package=AiCleverness&version=1.9.0
#tool nuget:?package=AiCleverness&version=1.9.0
AiCleverness — Provider-Neutral AI Execution Runtime for .NET
AiCleverness is a lightweight execution runtime for building AI-powered .NET applications. Agents are one execution pattern; the core value is orchestration: policies, planning, deterministic strategies, tool execution, quality gates, transformations, and observability around any provider adapter.
Read the developer manual — getting started guides, core concepts, tool authoring, streaming, memory tiers, security, workflows, and a full API reference.
Installation
dotnet add package AiCleverness
Requires .NET 10.0 or later. Zero external AI provider SDKs — bring your own.
What You Can Build
| Use case | What the runtime gives you | Docs |
|---|---|---|
| Tool-calling assistant | LLM tool loop with discovery, idempotent execution, and compensation | Tools |
| Guarded production agent | Prompt guards, human-in-the-loop approval, output validation | Security |
| Quality-controlled output | Quality gates evaluate every result and force retries until it meets your bar | Quality Gates |
| Real-time chat UX | Stream execution events as IAsyncEnumerable<AgentEvent> |
Streaming |
| Multi-agent pipelines | DAG workflows with explicit dependencies and data flow | Workflows |
| Declarative decision workflows | JSON decision trees with bounded classifications, actions, bounded action-data summaries, predicates, budgets, and verdicts | Decision Trees |
| Context-aware agents | Tiered memory — working, long-term, vector — behind one aggregate interface | Memory Tiers |
| Cost-efficient routing | Deterministic strategies bypass the LLM; planners decompose complex goals | Policies and Strategies |
| Auditable AI services | Structured metrics and diagnostic traces for every run | Observability |
Quick Start
using AiCleverness.Abstractions;
using AiCleverness.Models;
var services = new ServiceCollection();
services.AddAiClevernessRuntime();
services.AddAiClevernessLlmClient<MyLlmClient>(); // your provider adapter
services.AddAgentTool<WeatherTool>(); // your tool
var provider = services.BuildServiceProvider();
var runtime = provider.GetRequiredService<IAgentRuntime>();
var result = await runtime.RunAsync(new AgentRequest(
Goal: "What is the weather in Tokyo?",
AllowedToolNames: ["get_weather"]));
Console.WriteLine(result.Output);
Three pieces — ILlmClient, ITool, DI wiring — and you have a working execution runtime.
Transcripts and decision-tree diagnostics
Transcript persistence is opt-in. For ordinary agent runs, configure an
absolute directory in the request and provide a redactor in
AgentRuntimeOptions:
services.AddAiClevernessRuntime(options =>
{
options.TranscriptRedactor = text =>
text.Replace("customer@example.invalid", "[REDACTED]", StringComparison.OrdinalIgnoreCase);
});
var request = new AgentRequest(
Goal: "Summarize the evidence",
Parameters: new Dictionary<string, object>
{
[AgentPropertyKeys.MarkdownTranscriptDirectory] =
Path.GetFullPath("transcripts")
});
Normal transcripts pass persisted content through the host redactor. Debug transcripts are explicitly unredacted and should be used only with controlled data and access. The built-in Markdown builder and file sink work without additional setup once the directory and redactor are configured.
Decision-tree applications configure DecisionTreeExecutionOptions with an
absolute TranscriptDirectory, optional DecisionTranscriptPolicy limits,
and the same redaction/debug choices. Both agent and decision-tree options
support per-execution TranscriptBuilderFactory and TranscriptSinkFactory
delegates for JSON/HTML/structured formatting or non-file destinations such as
databases and queues. For small Markdown changes, derive from
TranscriptBuilderDecorator and override only the section you need; implement
ITranscriptBuilder directly only for a completely different representation.
Factories must create fresh builder and sink instances; never return cached
mutable transcript objects or register them as singletons. Transcript failures
are best effort and do not replace the primary execution result. See the full decision-transcript guide for action outcome summaries, readable node names, policy limits, logical sink paths, and failure semantics.
Full Reference
The repository README contains the complete reference: core concepts, full DI setup, models, streaming, memory tiers, security, workflows, persistence, observability, and agent scoping — github.com/AlexNek/AICleverness.
License
MIT
| 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.DependencyInjection.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
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 |
|---|---|---|
| 1.9.0 | 100 | 9/11/2026 |
| 1.8.0 | 97 | 9/1/2026 |
| 1.7.0 | 111 | 8/31/2026 |
| 1.6.0 | 105 | 8/28/2026 |
| 1.5.0 | 115 | 8/26/2026 |
| 1.4.1 | 116 | 8/22/2026 |
| 1.4.0 | 119 | 8/22/2026 |
| 1.3.3 | 156 | 8/19/2026 |
| 1.3.2 | 120 | 8/17/2026 |
| 1.3.1 | 111 | 8/17/2026 |
| 1.3.0 | 122 | 8/16/2026 |
| 1.2.0 | 112 | 8/16/2026 |
| 1.1.0 | 112 | 8/15/2026 |
| 1.0.0 | 131 | 8/14/2026 |