A lightweight, enterprise-ready multi-agent orchestration framework designed for the .NET ecosystem.
Python-centric tools like CrewAI or LangChain are great, but many enterprise systems run on .NET. This framework fills that gap by providing native, idiomatic C# abstractions for building autonomous agents, equipping them with tools, and orchestrating complex workflows.
- Native .NET: Built targeting .NET 8/9 with minimal external dependencies.
- Agent Abstraction: Define agents with distinct personas (Role, Goal, Backstory) and give them specific tools to accomplish their objectives.
- Extensible Orchestration: Chain agents together via
SequentialWorkflowto pass conversational context, memory, and state smoothly from one agent to the next. - LLM Agnostic: The
ILlmProviderinterface makes it trivial to swap backends (OpenAI, Semantic Kernel, local Ollama) by simply changing the provider injection. - RAG Ready: Built-in simple
IVectorStoreinterfaces with anInMemoryVectorStoreexample to get you started with Retrieval-Augmented Generation immediately.
Implement ILlmProvider or use the included OpenAILlmProvider.
var llmProvider = new OpenAILlmProvider("sk-your-openai-api-key");Tools implement the ITool interface. Give your agents access to search, APIs, or databases.
var vectorStore = new InMemoryVectorStore(); // Load with data
var searchTool = new VectorSearchTool(vectorStore);Assign roles and tools to your agents.
var researcherAgent = new Agent(
name: "Research Agent",
role: "Senior AI Researcher",
goal: "Gather information about AI orchestration frameworks.",
backstory: "You are an expert in AI frameworks and provide summaries for developers.",
llmProvider: llmProvider,
tools: new[] { searchTool }
);Link agents into a workflow.
var workflow = new SequentialWorkflow()
.AddAgent(researcherAgent)
.AddAgent(developerAgent)
.AddAgent(reviewerAgent);
var context = new DefaultOrchestrationContext();
context.AddMessage(new ChatMessage(ChatRole.User, "Build an Agent class."));
var finalContext = await workflow.RunAsync(context);All four library projects (AgentFramework.Core, .Memory, .Orchestration, .Providers.OpenAI) carry full NuGet metadata and are packed/pushed as a set by .github/workflows/publish-nuget.yml whenever a v* tag is pushed:
git tag v0.1.0
git push origin v0.1.0Requires a NUGET_API_KEY repo secret with push rights on nuget.org. AgentFramework.Examples is intentionally excluded — it's a console demo, not a library.
We welcome contributions! Please see our Contributing Guide for more details.
This project is licensed under the MIT License - see the LICENSE file for details.
Machine-readable repository context for AI agents and crawlers lives in llms.txt.