Multi-agent AI orchestration for .NET — built for local LLMs first.
Provider-agnostic. Zero vendor lock-in. Production-ready.
Documentation · Quickstart · Pricing · Discussions · Issues
LogicGrid is a .NET-native framework for building multi-agent AI systems — chatbots, RAG pipelines, autonomous workflows, tool-using agents, and orchestrated agent graphs.
It is the only major .NET agent framework designed for local LLMs first (Ollama, vLLM, LM Studio, TEI), with first-class support for OpenAI, Anthropic, Gemini, and any OpenAI-compatible endpoint. The same code runs against any provider — switch with one line.
// Same agent. Any provider. Zero code change.
var llm = LlmClientBase.Ollama("llama3.2");
// var llm = LlmClientBase.OpenAI("gpt-4o");
// var llm = LlmClientBase.Anthropic("claude-sonnet-4-6");
// var llm = LlmClientBase.Gemini("gemini-2.0-flash");
var agent = new SummaryAgent(llm);
var result = await agent.RunAsync("Summarise this document...", new AgentContext("run-1"));| LogicGrid | Semantic Kernel | LangChain (Python) | |
|---|---|---|---|
| .NET-native | Yes — pure C# | Yes | No |
| Local LLMs first | Yes — Ollama, vLLM, TEI built-in | Partial | Partial |
| Provider-agnostic | Same code, any provider | Same code, any provider | Same code, any provider |
| Air-gapped support | Full — offline license, no telemetry | N/A | N/A |
| Hybrid search (BM25 + dense + RRF) | Built-in | No | Yes |
| Multi-agent patterns | Sequential, GroupChat, Graph, Parallel, MapReduce, Reflexion | Sequential | Sequential, Graph |
| Tool calling + MCP | Yes | Yes | Yes |
| Targets | netstandard2.0, net6.0, net8.0 |
net8.0+ |
n/a |
| Hidden runtime deps | Zero | Several | Many |
Built for engineers who can't ship Python, and don't want their stack dictated by a single cloud vendor.
AgentBase<TOutput>with typed outputs, system-prompt slot templating, scoped memory, and pluggable retry policies.AdminBase<TInput, TOutput>for stateful orchestration with persistent message history.
- Sequential — chain agents end-to-end.
- Group Chat — agents converse, an admin decides who speaks next.
- Graph — fluent
AgentGraphBuilderAPI with branching, conditionals, and merges. - Parallel — run agents concurrently and aggregate.
- Map-Reduce — fan out, fan in.
- Reflexion — self-critique loops with configurable depth.
- Sliding-window conversation memory.
- Vector stores (in-memory, pluggable — bring your own backend).
- Embeddings via any provider (OpenAI, TEI, Ollama, custom).
- Full RAG pipeline: document loading, chunking, embedding, retrieval, generation.
- Hybrid search combining BM25 (keyword) and dense (semantic) retrieval, fused via Reciprocal Rank Fusion. Beats either alone for codes, IDs, proper nouns, and rare terms.
- Define tools as plain C# methods with attributes — schema is generated for you.
- Built-in MCP (Model Context Protocol) client over stdio and HTTP.
- First-class
AgentEventBus— every agent step, tool call, retry, and LLM call emits a structured event. - Pluggable log sinks (console, file, OTel).
- Run tracing for debugging and audit.
- Multi-targets
netstandard2.0,net6.0, andnet8.0— works with .NET Framework 4.7.2+, .NET Core, and modern .NET. - Zero hidden runtime dependencies. The full SBOM is published in this repository.
dotnet add package LogicGrid.Core # Core Agents and Admin Orchestrations, Tracing, Logging, Retry Policy
dotnet add package LogicGrid.Memory # vector stores, embeddings, hybrid search
dotnet add package LogicGrid.Rag # full RAG pipeline
dotnet add package LogicGrid.Tools # tool/function calling
dotnet add package LogicGrid.Mcp # MCP clientSee Quickstart for a quick walkthrough.
using LogicGrid.Core.Agents;
using LogicGrid.Core.Llm;
var SummaryAgent = LlmClientBase.Ollama("llama3.2");
IAgent agent = new Agent<string>(
name: "Summariser",
description: "Summarises any text concisely.",
systemPrompt: "Summarise the following in 2-3 sentences: {{input}}",
llm: llm);
var result = await new SummaryAgent(llm)
.RunAsync("Long document text here...", new AgentContext("run-1"));var store = new HybridVectorStore(new InMemoryVectorStore());
var pipeline = new RagPipeline(embedder, store);
await pipeline.IngestAsync("docs/manual.txt");
var results = await pipeline.HybridSearchAsync("SKU-4421 pricing policy", topK: 5);
foreach (var r in results)
Console.WriteLine($"{r.RrfScore:F4} dense={r.DenseScore:F3} sparse={r.SparseScore:F3} {r.Document.Text}");using LogicGrid.Core.Admins;
using LogicGrid.Core.Agents;
using LogicGrid.Core.Llm;
var llm = LlmClientBase.Ollama("llama3.2");
IAgent researcher = new Agent<string>(
"Researcher", "Gathers facts on a topic.",
"You research the topic and list 3 key facts.", llm);
IAgent writer = new Agent<string>(
"Writer", "Writes a short article.",
"You write a 200-word explainer using the researcher's facts.", llm);
IAgent critic = new Agent<string>(
"Critic", "Reviews the article.",
"You check the article. Reply DONE when it is publishable.", llm);
var admin = new GroupChatAdmin<string, string>(
name: "Editorial",
llmClient: llm,
agents: new[] { researcher, writer, critic });
Console.WriteLine(await admin.RunAsync(
"Explain Reciprocal Rank Fusion in 200 words."));More examples in the docs.
LogicGrid is free to use, including in commercial products. The source is proprietary; the binaries published to NuGet are free to install and ship. See LICENSE.txt
This is a closed-source commercial product. We understand that asking you to dotnet add package a binary is asking for trust. Here is how we earn it:
Every release ships with a CycloneDX 1.7 SBOM listing every transitive dependency, version, and SHA-512 hash. You can audit the full dependency graph before the package ever touches your build server.
# Verify a downloaded LogicGrid package against our published SBOM
cyclonedx-cli validate --input-file bom.json- No telemetry. No analytics from inside the runtime. Air-gapped deployments work end-to-end.
- The only outbound traffic LogicGrid makes is the LLM calls you configure.
Zero Hidden Dependencies
LogicGrid pulls in only what is strictly required:
System.Text.Json(Microsoft, BCL)- Stable, well-known packages with permissive licenses
No obscure transitive packages. No unexpected native binaries. Check bom.json yourself.
Every NuGet package version corresponds to a tagged, signed release. The SBOM, license, and changelog in this repository are the canonical record.
Security issues: security@logicgrid.dev (PGP key available on request). Please do not file public issues for vulnerabilities.
| .NET | Status |
|---|---|
| .NET Framework 4.7.2+ | Supported (via netstandard2.0) |
| .NET Core 3.1 | Supported (via netstandard2.0) |
| .NET 6 | Supported |
| .NET 7 | Supported (via net6.0) |
| .NET 8 | Supported |
| .NET 9 | Supported (via net8.0) |
Operating systems: Windows, Linux, macOS. Containers, air-gapped, on-prem, edge.
| Provider | Chat | Embeddings | Streaming | Tool calling |
|---|---|---|---|---|
| Ollama | ✓ | ✓ | ✓ | ✓ |
| OpenAI | ✓ | ✓ | ✓ | ✓ |
| Anthropic | ✓ | n/a | ✓ | ✓ |
| Google Gemini | ✓ | ✓ | ✓ | ✓ |
| vLLM | ✓ | n/a | ✓ | ✓ |
| TEI (HuggingFace) | n/a | ✓ | n/a | n/a |
| LM Studio | ✓ | ✓ | ✓ | ✓ |
| DeepSeek / Groq / any OpenAI-compatible | ✓ | ✓ | ✓ | ✓ |
- Documentation: logicgrid.dev/docs
- Discussions: GitHub Discussions — questions, ideas, show-and-tell.
- Issues: GitHub Issues — bug reports and feature requests.
- Email: support@logicgrid.dev
This repository is the public face of LogicGrid. The source for the framework itself is closed; this repo carries the README, license, SBOM, and the issue/discussion tracker.
Built for engineers who ship.
Get Started · Join the community
Copyright © 2026 LogicGrid. All rights reserved.