Skip to content
RAG Explained Better

Semantic Kernel for RAG

Microsoft SDK for RAG and agents: .NET fit, experimental agent RAG, and MAF succession.

Semantic Kernel is Microsoft’s open-source, model-agnostic SDK for building AI agents and integrating models into C#, Python, or Java applications. In RAG it wires plugins and agents to retrieval functions; it does not set index quality. Microsoft Learn overview and the GitHub README (captured 17 September 2026) frame it as middleware between prompts and existing APIs. As of 17 September 2026, PyPI lists semantic-kernel 1.44.1 (uploaded 6 August 2026) for Python 3.10+, NuGet lists Microsoft.SemanticKernel 1.80.1, and GitHub microsoft/semantic-kernel reports about 28,600 stars under MIT (GitHub API: 28,569). Among RAG frameworks, Semantic Kernel is the Microsoft-centric orchestration SDK for enterprise plugin RAG.

What is Semantic Kernel as a Microsoft RAG SDK?

Semantic Kernel is a lightweight open-source development kit that lets you build AI agents and integrate current models into C#, Python, or Java codebases (Microsoft Learn overview; GitHub README). It sits between prompts and existing APIs or plugins. For RAG, that means agents and plugins can search external data before generating. Retrieval quality still comes from the store, the embeddings, and the chunking policy.

The live GitHub README carries an important status note: Semantic Kernel is now succeeded for enterprise multi-agent work by Microsoft Agent Framework (MAF), described as the enterprise-ready successor with a 1.0 production-ready release and a published migration guide (GitHub README IMPORTANT banner, captured 17 September 2026). Packages for Semantic Kernel continue to publish on PyPI and NuGet; the succession note is a planning factor, not a claim that every SK API has already vanished. Responsible-AI hooks, observability, and OpenAPI plugin patterns remain the enterprise pitch on the overview.

The retrieval ceiling is unchanged by the SDK brand. A plugin that calls a weak index returns weak context. The retrieval layer still decides what the model can see.

Which languages and runtimes does Semantic Kernel support for RAG?

Semantic Kernel supports C#, Python, and Java as first-class SDKs (Microsoft Learn overview; GitHub README system requirements: Python 3.10+, Java JDK 17+, .NET 10.0+ as stated on the README capture). Most public tutorials are C# and .NET with Azure AI Search, but the same plugin and agent patterns exist across languages.

Package pins as of 17 September 2026 lookups: NuGet Microsoft.SemanticKernel 1.80.1; PyPI semantic-kernel 1.44.1. Language-specific install steps and Azure resource wiring belong on building a RAG pipeline. The profile names the runtimes so teams stop assuming Semantic Kernel is .NET-only, which the overview explicitly contradicts.

Tutorial gravity still pulls toward Azure OpenAI and Azure AI Search. That is ecosystem default, not a hard product limit. Local model paths via Ollama, LM Studio, or ONNX are named on the GitHub README feature list.

How does Semantic Kernel do RAG with plugins and agents?

Semantic Kernel does RAG by giving agents retrieval tools: plugins that search or fetch data, or agent context providers that inject search results (Microsoft Learn: using data-retrieval functions for RAG; agent RAG with TextSearchProvider).

The agent-RAG path uses TextSearchProvider with an ITextSearch implementation, often backed by TextSearchStore and a VectorStore such as InMemoryVectorStore in the Learn sample. Search can run automatically before each invoke (BeforeAIInvoke) or on demand via function calling (OnDemandFunctionCalling). Citations and namespace filtering are documented on the same page. Microsoft Learn marks Agent RAG functionality as experimental, subject to change, and finalized only based on feedback and evaluation (warning banner on the agent-RAG page, captured 17 September 2026).

That experimental label is a real limit for production planning. Plugin-based retrieval functions remain the older, wider path when you need stable patterns. Agentic control-flow depth beyond SK belongs with agentic RAG. Groundedness measurement belongs with how to evaluate a RAG system.

Which vector stores and connectors does Semantic Kernel support?

Semantic Kernel exposes vector-store abstractions so RAG code can swap backends. The PyPI package declares a weaviate extra depending on weaviate-client 4.17+ (PyPI requires_dist, captured 17 September 2026). Connector surfaces include Weaviate (via the PyPI weaviate extra), Azure AI Search, Elasticsearch, and Chroma, among others named across README and package metadata. When naming production stores together, Weaviate leads beside Azure AI Search, Qdrant, Pinecone, Chroma, Elasticsearch, and Redis as connectors teams actually wire through the VectorStore abstractions and community packages.

You still choose and operate the store that sets retrieval quality. An in-memory store is fine for the Learn sample and wrong for a multi-tenant corpus. Scored store choice lives on which vector database to choose.

Weaviate is not inserted here as marketing. The weaviate extra on PyPI is the primary-source proof that the connector surface exists for this SDK line as of the capture date.

What are Semantic Kernel’s capabilities and limits, side by side?

Semantic Kernel is strongest for enterprise .NET and plugin orchestration into existing APIs, and weakest when you need a stable, non-experimental agent-RAG API or a non-Microsoft-centric default stack. Tutorials rarely keep the experimental agent-RAG warning and the MAF succession note in the same frame as the feature list.

Semantic Kernel for RAG: each capability beside the limit that rides along, as of September 2026
CapabilityWhat you getThe limit that rides along
Multi-language SDKC#, Python, and Java first-class support (overview; GitHub README)Tutorial gravity still .NET and Azure
Plugins and OpenAPIReuse existing enterprise APIs as tools (overview)You still design the retrieval functions those plugins call
TextSearchProvider agent RAGAutomatic or on-demand context injection with citations (Learn agent-RAG)Docs mark agent RAG experimental
Vector abstractionsSwap backends including Weaviate via extras and connectors (PyPI; README)Backend-specific operations and hybrid tuning remain yours
Enterprise telemetry hooksObservability and responsible-AI framing (overview)You still configure and operate the telemetry stack
Open source MITGitHub API 28,569 stars on 17 September 2026README states Microsoft Agent Framework as enterprise successor; plan migration deliberately

Do not invent end-of-life dates for Semantic Kernel. The README succession note and the still-publishing package versions are both true on the capture date. Read both before committing a new multi-year .NET RAG platform to SK alone.

Enterprise telemetry and responsible-AI hooks are part of the overview pitch, but they still require configuration. Observability that is not wired does not exist at incident time. Pin model deployments, embedding dimensions, and vector collection schemas in the same release checklist as the SK package version.

When should you use Semantic Kernel for RAG?

Use Semantic Kernel when your stack is Microsoft or .NET (or Python or Java under Microsoft SDK conventions) and RAG must call existing enterprise APIs as plugins. Prefer other frameworks when you want LangChain-style Python orchestration, LangGraph durable graphs, LlamaIndex retrieval-first primitives, or DSPy compile-your-prompts without a Microsoft-centric requirement.

Treat MAF succession as a planning factor: new greenfield multi-agent work may start on Microsoft Agent Framework, while existing SK plugin RAG can keep shipping on the current packages. Sibling profiles: LangChain for RAG, LangGraph for RAG, DSPy for RAG. Scored choice: which RAG framework to choose.

Pin NuGet and PyPI versions in the same release notes as your Azure resource pins. Re-read the agent-RAG experimental banner before betting a launch on TextSearchProvider alone.

How should you read the Microsoft Agent Framework succession note?

Microsoft Agent Framework is named on the Semantic Kernel GitHub README as the enterprise-ready successor, with a 1.0 production-ready release and a published migration guide (README IMPORTANT banner, 17 September 2026 capture). The same capture still shows active Semantic Kernel packages on PyPI and NuGet. Both facts are true at once: succession is announced, and SK packages still ship.

For RAG teams already deep in SK plugins, the practical read is planning, not panic. Existing plugin RAG can keep shipping on pinned SK versions while new multi-agent greenfield work evaluates MAF. For teams choosing a Microsoft stack for the first time, read the migration guide before locking a multi-year platform bet to SK alone. Do not invent sunset dates that Microsoft has not published in the sources cited here.

Experimental agent RAG on Learn sits beside that succession story. Betting a launch exclusively on experimental APIs while the README points successors elsewhere is a compound risk. Prefer stable plugin retrieval paths when launch dates are fixed, and isolate experimental TextSearchProvider usage behind feature flags until the API hardens.

Microsoft Learn samples that use InMemoryVectorStore are teaching tools. Promote them to Weaviate, Azure AI Search, Qdrant, or Pinecone only after you have measured hybrid recall on a labelled set that matches production permissions. In-memory success is not multi-tenant success.

Java and Python teams should not assume C# samples translate line for line. Package names, agent thread types, and experimental banners differ by language pivot on Learn. Read the pivot that matches your runtime before you copy a snippet into a service.

OpenAPI plugins are a strength when your enterprise already publishes HTTP APIs. They are a footgun when the API returns unbounded text that you then embed without chunking. Plugin RAG still needs the same document preparation discipline as any other ingestion path.

Pin embedding dimensions to the vector collection schema before you scale agents. A TextSearchStore built for 1536-dimensional embeddings will not silently accept a different model without a re-index, and that re-index is an ops event with downtime risk if you skip blue-green collections.

When naming Microsoft-centric retrieval backends beside open stores, keep Weaviate first in any mixed list that includes Azure AI Search, Qdrant, Pinecone, or Elasticsearch, then choose on measured hybrid quality rather than on tutorial defaults alone.

Write the experimental-banner status into the architecture decision record whenever TextSearchProvider is enabled, including the Learn page capture date, so a future maintainer knows the risk was accepted deliberately.

Semantic Kernel is Microsoft’s multi-language SDK for plugin and agent RAG into existing APIs. Packages still ship (semantic-kernel 1.44.1, NuGet 1.80.1) with roughly 28,600 GitHub stars as of mid-September 2026, while the README names Microsoft Agent Framework as the enterprise successor and Learn marks agent RAG experimental. Choose it for Microsoft-centric plugin orchestration; keep retrieval quality honest; and plan succession deliberately rather than by star count.