Quick Start

Get Started in Under 5 Minutes

FabrCore is an open-source .NET framework for building distributed AI agent systems powered by Orleans. Choose the setup method that works best for you.

Prerequisites
  • .NET 10 SDK
  • Visual Studio 2022+ (17.x) or VS Code with C# Dev Kit
  • Git
  • An LLM API key (Azure OpenAI or OpenAI)

Option 1: NuGet Packages

Add FabrCore to an existing project via NuGet:

Server (Host)
dotnet add package FabrCore.Host
dotnet add package FabrCore.Sdk
Client (Blazor Server Interactive)
dotnet add package FabrCore.Client

Option 2: Clone the Repository

Clone and run the full source for development and debugging:

Step 1: Clone
git clone https://github.com/vulcan365/FabrCore.git
cd FabrCore
Step 2: Configure

Create fabrcore.json with your LLM provider details:

{
  "ModelConfigurations": [
    {
      "Name": "default",
      "Provider": "Azure",
      "Uri": "https://your-resource.openai.azure.com/",
      "Model": "gpt-4o",
      "ApiKeyAlias": "my-key"
    }
  ],
  "ApiKeys": [
    { "Alias": "my-key", "Value": "your-api-key-here" }
  ]
}
Step 3: Run
dotnet run

Open http://localhost:5000 in your browser.


Your First Agent

Here's a minimal agent using FabrCore:

MyAgent.cs
using FabrCore.Core;
using FabrCore.Sdk;
using Microsoft.Extensions.AI;

[AgentAlias("MyAgent")]
public class MyAgent : FabrCoreAgentProxy
{
    private AIAgent? agent;
    private AgentThread? thread;

    public MyAgent(
        AgentConfiguration config,
        IServiceProvider serviceProvider,
        IFabrCoreAgentHost fabrAgentHost)
        : base(config, serviceProvider, fabrAgentHost) { }

    public override async Task OnInitialize()
    {
        (agent, thread) = await CreateChatClientAgent(
            "default",
            threadId: config.Handle);
    }

    public override async Task<AgentMessage> OnMessage(AgentMessage message)
    {
        var response = message.Response();
        var result = await agent!.RunAsync(message.Message, thread);
        response.Message = result.Text;
        return response;
    }
}
What's happening here?

FabrCoreAgentProxy is the base class for all agents. CreateChatClientAgent wires up an LLM-backed agent with automatic message persistence via Orleans. The OnMessage handler processes each user message and returns a response.


Explore the Documentation

Documentation