AgentExperience.Abstractions 0.1.0-preview.10

This is a prerelease version of AgentExperience.Abstractions.
dotnet add package AgentExperience.Abstractions --version 0.1.0-preview.10
                    
NuGet\Install-Package AgentExperience.Abstractions -Version 0.1.0-preview.10
                    
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="AgentExperience.Abstractions" Version="0.1.0-preview.10" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AgentExperience.Abstractions" Version="0.1.0-preview.10" />
                    
Directory.Packages.props
<PackageReference Include="AgentExperience.Abstractions" />
                    
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 AgentExperience.Abstractions --version 0.1.0-preview.10
                    
#r "nuget: AgentExperience.Abstractions, 0.1.0-preview.10"
                    
#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 AgentExperience.Abstractions@0.1.0-preview.10
                    
#: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=AgentExperience.Abstractions&version=0.1.0-preview.10&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=AgentExperience.Abstractions&version=0.1.0-preview.10&prerelease
                    
Install as a Cake Tool

AgentExperience.Abstractions

Preview — not production ready. This is a 0.1.0-preview package, and it claims no production readiness. Public APIs may change between previews. Read Known limits and documented boundaries before you rely on it.

The domain types and ports of AgentExperience.NET: what an agent tried, what happened, how it was verified, and the lesson drawn from it — plus the interfaces every storage, indexing, and sanitization adapter implements.

Dependencies: the BCL only. No Microsoft Agent Framework, EF Core, Npgsql, DbUp, OpenTelemetry, or model-provider package. Dependency-boundary tests enforce this on every build, and release verification re-checks it from the built package. Targets net10.0.

Do you need it directly?

Usually not: AgentExperience.Core and the adapters bring it in. Reference it on its own when you implement a port out of tree — a different store, index, sanitizer or key store — and want nothing else.

What is in it

Area Types
A captured run ExperienceRun, Attempt, ToolCallRecord, Outcome, Evidence, EnvironmentFingerprint, Provenance
Identity and authority Scope (where a record lives), AuthorizationContext (what the host authorized — always established by the host, never taken from model output)
A durable lesson ExperienceRecord, Reflection, ExperienceStatus, LifecycleEvent, StoredLifecycleEvent, ConfidenceUpdate
Sanitization port ISanitizer, RawPayload, SanitizedPayload, SanitizationDecision
Storage ports IExperienceRecordStore, IExperienceCandidateSource, IExperienceGrantStore, IExperienceGrantAccessLog, IExperienceReuseFeedbackStore
Derived-data ports IExperienceEmbeddingIndex, IExperienceEmbeddingGenerator
Key custody IExperienceKeyStore, for crypto-shredding
Reuse feedback ExperienceReuseFeedback, HumanReuseAssessment, ComparativeEvaluationResult, ReuseMeasure

Every port returns a structured result with an outcome enum rather than throwing for an expected refusal — Denied, NotFound, Invalid, Conflict, StaleRevision and so on — so a host can tell "not allowed" from "not there" from "not stored".

Using it

using AgentExperience.Abstractions;

// Established by the host from its own authentication, never built from request input or model output.
var authorization = new AuthorizationContext(
    TenantId: "tenant-1",
    PrincipalId: currentUser.Id,
    Roles: currentUser.Roles,
    IssuedAt: DateTimeOffset.UtcNow,
    ApplicationId: "support",
    ProjectId: "tickets");

var scope = new Scope(TenantId: "tenant-1", ApplicationId: "support", ProjectId: "tickets", TeamId: "team-a");

if (!authorization.Permits(scope))
{
    // Every adapter in the repository makes exactly this check before touching storage.
}

Permits requires the same tenant, and every non-null bound on the context to equal the scope's field exactly. A null bound leaves that field unrestricted; a null scope field is never a wildcard.

Implementing a port out of tree

The in-tree adapters are the reference implementations, and their tests are the conformance suite in practice. Read the port's XML documentation before implementing it: several obligations cannot be expressed in the type system and do not fail at compile time — for example, a store that accepts a lifecycle event carrying a Confidence payload has to persist it and enforce its independence key, or it will report Committed while silently dropping the payload. The full list is in For implementers of the ports.

The public surface of this package is pinned by an approval baseline in the repository, so any change to it is a reviewed diff.

More

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.
  • net10.0

    • No dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on AgentExperience.Abstractions:

Package Downloads
AgentExperience.Core

Preview, not production ready. AgentExperience.NET's Core: sanitization (per-Kind allowlists, secret-field classification, recursive traversal, fail-closed rejection), in-memory run capture, deterministic verification, auditable reflection, finalization, lifecycle and confidence updates, indexing, bounded retrieval with explainable ranking, and reuse feedback, built on AgentExperience.Abstractions' ports. No dependency on MAF, EF Core, PostgreSQL, model providers, or OpenTelemetry -- only the BCL, Abstractions, Microsoft.Extensions.Compliance.Redaction, and Microsoft.Extensions.DependencyInjection.Abstractions (AD-1).

AgentExperience.Storage.Postgres

Preview, not production ready. PostgreSQL adapter for AgentExperience.NET: persists canonical, scoped Experience Records through the IExperienceRecordStore port with plain Npgsql, host-authorization checks before any database access, exact scope predicates applied in SQL, and a journaled schema migration runner over embedded, versioned scripts. Requires Npgsql 10.0.3, dbup-postgresql 7.0.1, and dbup-core 6.1.1 or later within the same major.

AgentExperience.Storage.InMemory

Preview, not production ready. For development and tests only: a thread-safe, in-memory implementation of AgentExperience.NET's record store, candidate source and reuse-feedback store, so the learning loop runs without PostgreSQL. Data is lost when the process ends, and none of the PostgreSQL guarantees apply (append-only enforcement, erasure reach, backups, the two database roles, crypto-shredding). Its only registration, AddAgentExperienceInMemoryStorageForDevelopment, refuses to run in a Production host environment unless explicitly overridden. Passes the same store conformance suite as the PostgreSQL adapter. Requires Microsoft.Extensions.DependencyInjection.Abstractions 10.0.12 and Microsoft.Extensions.Hosting.Abstractions 10.0.3 or later within the same major.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.10 77 10/10/2026
0.1.0-preview.9 119 10/10/2026
0.1.0-preview.8 154 10/9/2026
0.1.0-preview.7 221 10/5/2026
0.1.0-preview.6 70 10/1/2026
0.1.0-preview.5 73 10/1/2026
0.1.0-preview.4 70 9/29/2026
0.1.0-preview.3 72 9/29/2026
0.1.0-preview.2 766 9/26/2026
0.1.0-preview.1 773 9/24/2026

Preview release. Not production ready, and it claims no production readiness: the Known limits table lists every unresolved item, and any unresolved item blocks a production-readiness claim. The Documented boundaries table beside it states exactly what no code change can remove. Public APIs may change between previews. See https://github.com/fabbrik/AgentExperience.NET/blob/main/docs/known-limits.md