Skip to content

Getting Started

MonadicSharp.Framework is a suite of six focused NuGet packages that extend MonadicSharp with enterprise-grade infrastructure for AI agents running on .NET 8.

Prerequisites

Install

Install the full framework meta-package, or pick only the packages you need:

bash
# Full framework
dotnet add package MonadicSharp.Framework

# Or individual packages
dotnet add package MonadicSharp.Framework.Agents
dotnet add package MonadicSharp.Framework.Security
dotnet add package MonadicSharp.Framework.Telemetry
dotnet add package MonadicSharp.Framework.Http
dotnet add package MonadicSharp.Framework.Persistence
dotnet add package MonadicSharp.Framework.Caching

Configure with Dependency Injection

csharp
using MonadicSharp.Framework;

var builder = WebApplication.CreateBuilder(args);

builder.Services
    .AddMonadicFramework()
    .AddAgents()
    .AddSecurity(opts => opts.EnablePromptInjectionGuard = true)
    .AddTelemetry()
    .AddHttpClient()
    .AddPersistence()
    .AddCaching();

var app = builder.Build();
app.Run();

Your First Agent Pipeline

csharp
public class DocumentSummaryAgent(
    IAgentPipeline pipeline,
    ISecurityGuard guard,
    ICacheService cache)
{
    public async Task<Result<string>> SummarizeAsync(string documentId, string content)
    {
        return await guard.ValidateInputAsync(content)
            .BindAsync(safe => cache.GetOrSetAsync(
                key: $"summary:{documentId}",
                factory: () => pipeline
                    .StartAsync(safe)
                    .BindAsync(CallLlmAsync)
                    .MapAsync(FormatSummary)));
    }

    private Task<Result<string>> CallLlmAsync(string input) =>
        _llmClient.CompleteAsync(input);

    private static string FormatSummary(string raw) =>
        raw.Trim();
}

Every step returns Result<T>. Security violations, cache errors, and LLM failures all propagate cleanly without a single try/catch.

Next Steps

Released under the MIT License.