Why it matters
- Powers Microsoft Copilot internally — production-validated at Microsoft scale, giving enterprise teams confidence it handles real workloads.
- First-class C# and .NET support makes it the go-to LLM framework for .NET shops, where LangChain's Python-first design is a poor fit.
- Azure OpenAI native integration enables enterprise deployments with Microsoft's compliance and security guarantees (HIPAA, SOC2, FedRAMP).
- Plugin model enables building composable AI capabilities that an AI planner can chain automatically — the foundation for enterprise agent workflows.
Key capabilities
- Kernel: Central orchestrator managing LLM connections, memory, and plugin registration.
- Semantic functions: Prompt templates as first-class functions with input/output types.
- Native functions: Wrap C#/Python/Java code as callable AI tools.
- Plugins: Package semantic + native functions into reusable domain capability bundles.
- Planners: AI-driven automatic function selection and orchestration (sequential, stepwise).
- Memory: Vector store integrations (Azure AI Search, Chroma, Pinecone, Qdrant) for RAG.
- Multi-LLM: OpenAI, Azure OpenAI, Hugging Face, Mistral, Google Gemini connectors.
- Agents: ChatCompletionAgent and OpenAI Assistants API integration.
- Process Framework: Orchestrate multi-step business workflows with AI.
Technical notes
- Languages: C# (primary), Python, Java
- Install C#:
dotnet add package Microsoft.SemanticKernel
- Install Python:
pip install semantic-kernel
- License: MIT
- GitHub: github.com/microsoft/semantic-kernel
- Stars: 22K+
- Azure integration: Native Azure OpenAI, Azure AI Search, Azure Cosmos DB connectors
- LLM providers: OpenAI, Azure OpenAI, Hugging Face, Mistral, Google, Anthropic
Usage example (C#)
using Microsoft.SemanticKernel;
var builder = Kernel.CreateBuilder();
builder.AddOpenAIChatCompletion("gpt-4o", Environment.GetEnvironmentVariable("OPENAI_API_KEY"));
var kernel = builder.Build();
var result = await kernel.InvokePromptAsync("Write a haiku about {{$topic}}",
new KernelArguments { ["topic"] = "semantic kernels" });
Console.WriteLine(result);
Ideal for
- Enterprise .NET/C# development teams building AI features where Python-first LangChain is impractical.
- Microsoft ecosystem organizations using Azure OpenAI, Azure AI Search, and wanting native Microsoft-supported tooling.
- Teams building Copilot extensions or Microsoft 365 AI integrations.
Not ideal for
- Python-first teams — LangChain or LlamaIndex have better Python tooling and community resources.
- Simple single-LLM-call applications — SK's plugin model adds complexity; use the native SDK for simple use cases.
- Teams wanting the largest community and third-party integration ecosystem — LangChain has more community integrations.
See also
- LangChain — Python-first LLM orchestration framework; larger community, more integrations.
- Haystack — deepset NLP framework; strong RAG pipelines, type-safe components.
- Anthropic Python SDK — Direct Claude API access without orchestration overhead.