Semantic Kernel Plugins Created: 03 Feb 2026 Updated: 03 Feb 2026

Native vs. Semantic Plugins in Semantic Kernel

In the rapidly evolving world of AI orchestration, Microsoft’s Semantic Kernel (SK) stands out by treating standard code and AI prompts as equals. This unification is achieved through Plugins. But for developers coming from a traditional object-oriented background, the distinction between "Native" and "Semantic" functions can blur.

This article breaks down the architectural differences, use cases, and how combining them unlocks the true power of LLM integration in .NET.

1. Native Plugins: The "Hands" of the AI

Native Plugins (often referred to as Native Functions) are essentially standard C# methods that you, the developer, write. They run on your local hardware (CPU), not on the LLM's servers.

Characteristics

  1. Deterministic: Input A always results in Output B.
  2. Syntax: Standard C# code decorated with the [KernelFunction] attribute.
  3. Role: They provide the AI with capabilities it physically cannot possess—such as checking the current time, querying a SQL database, or reading a localized file.

Example: Fetching Live Data

Large Language Models are frozen in time; they don't know what day it is. A native plugin solves this:

public class TimePlugin
{
[KernelFunction, Description("Retrieves the current date and time.")]
public string GetCurrentTime()
{
return DateTime.Now.ToString("f");
}
}

When you register this with the Kernel, the LLM can "decide" to call TimePlugin.GetCurrentTime when a user asks, "Is it the weekend yet?"

2. Semantic Plugins: The "Brain" of the AI

Semantic Plugins (or Semantic Functions) are encapsulated prompts—natural language instructions sent to the LLM. Unlike native code, these are probabilistic and creative.

Characteristics

  1. Probabilistic: The output can vary based on the model's temperature and token probabilities.
  2. Syntax: Defined using prompt templates (often stored in skprompt.txt files) or inline strings.
  3. Role: They perform cognitive tasks: summarization, translation, sentiment analysis, or creative writing.

Example: Tone Transformation

Instead of writing complex Regex to parse text, you simply ask the model to transform it:

var prompt = @"
Rewrite the following email to be professional and polite.
Fix any grammatical errors:
{{$input}}";

var politeFunction = kernel.CreateFunctionFromPrompt(prompt);

The Core Differences

FeatureNative PluginSemantic Plugin
Execution Engine.NET Runtime (Local CPU)LLM (e.g., Azure OpenAI)
Logic SourceC# / compiled codeNatural Language
CostFree (local compute)Cost per Token
Consistency100% DeterministicCreative / Variable
Best ForMath, I/O, Database accessReasoning, Generation, Summarizing

The Power of Orchestration

The magic of Semantic Kernel isn't using one or the other—it's chaining them.

Imagine a user asks: "Summarize the last 5 emails from John."

  1. Native Function: The Kernel calls OutlookPlugin.GetEmails("John", 5) to retrieve the raw data.
  2. Semantic Function: The Kernel passes that raw data to a SummarizePlugin to generate a concise summary.

By mixing the deterministic reliability of Native functions with the cognitive flexibility of Semantic functions, you create applications that are both smart and grounded in real-time data.

Conclusion

Understanding the distinction between Native and Semantic plugins is the first step in mastering Semantic Kernel. Native plugins give your AI hands to touch the world (data, APIs), while Semantic plugins give it the instructions to think about what it finds.

Share this lesson: