Semantic Kernel
TL;DR
Semantic Kernel is Microsoft's MIT-licensed SDK for building agents and multi-agent systems in C#/.NET, Python and Java. Microsoft now names Microsoft Agent Framework as its successor and says most new features go there, while Semantic Kernel 1.x keeps receiving critical and security fixes. It suits teams maintaining existing Semantic Kernel applications.
Key facts
| Type | Framework |
|---|---|
| Languages / SDKs | C#, Python, Java |
| License | MIT |
| Pricing model | Open source, free |
| Orchestration pattern | Other |
| GitHub stars | 28,614 (as of 2026-09-30) |
| GitHub forks | 4,795 |
| Last push | 2026-09-29 |
| Latest release | dotnet-1.80.1 |
| Repository | microsoft/semantic-kernel |
| Website | aka.ms |
| Documentation | learn.microsoft.com |
| Last verified | 2026-09-30 |
Key features
- Agent abstraction with several agent types (chat completion, Azure AI Agent, OpenAI Assistant, Bedrock, Copilot Studio) and AgentThread for conversation state. (source)
- Built-in orchestrations: concurrent, sequential, handoff, group chat and Magentic, all started through the same invoke interface. (source)
- Plugins from native functions, prompt templates, OpenAPI specs or MCP servers (MCPStdioPlugin, MCPStreamableHttpPlugin in Python). (source)
- Process Framework (experimental) for event-driven business workflows built from steps. (source)
- Agent memory through a Mem0 provider attached to an agent thread (experimental). (source)
- Filters that run around function calls and prompts, for example to check permissions or stop auto function calling. (source)
- A2A support in .NET: A2AAgent calls remote A2A agents and A2AHostAgent exposes an agent over A2A. (source)
Architecture and orchestration pattern
Pattern: Other
The kernel holds AI services and plugins; an Agent wraps a service, instructions and plugins, and an AgentThread holds conversation state (some agent types require a matching server-side thread, such as AzureAIAgentThread). Tools are kernel functions, which can come from code, prompt templates, OpenAPI specs or MCP servers.
Multi-agent coordination is offered as orchestration classes (concurrent, sequential, handoff, group chat with a manager, and Magentic) that share one construction and invoke pattern and run on a runtime such as InProcessRuntime. Agents can also be passed to another agent as plugins, as in the README triage example. The docs mark orchestration as experimental and not yet available in Java.
Longer workflows can use the experimental Process Framework, where steps react to events. Memory beyond the thread comes from providers such as Mem0 (experimental) and from vector store connectors.
Human in the loop
Handoff and group chat orchestrations accept a human-response callback (human_response_function in Python, InteractiveCallback in .NET) that is called whenever an agent needs user input; response callbacks let an app watch each agent message. In the Process Framework, a step can wait for an external approval event before continuing, as shown in the human-in-the-loop example. Function invocation filters can inspect calls and terminate auto function calling.
Protocols
| Protocol | Support | Note |
|---|---|---|
| MCP | Yes evidence | Client: Python MCPStdioPlugin, MCPSsePlugin and MCPStreamableHttpPlugin load MCP tools as plugins; .NET and Java MCP docs are marked coming soon (.NET has repo samples). |
| A2A | Partial evidence | .NET only: Microsoft.SemanticKernel.Agents.A2A has A2AAgent (client) and A2AHostAgent (server); no Python or Java A2A support found. |
| AG-UI | Unknown | Searched README, Learn docs source (MicrosoftDocs/semantic-kernel-docs), GitHub code search for ag-ui, and the AG-UI integration list (which lists Microsoft Agent Framework, not Semantic Kernel). |
Best for
- Maintaining existing Semantic Kernel applications that still receive fixes.
- .NET-first teams building agents with plugins and filters.
- JVM teams, using the separate Java SDK (without agent orchestration, which is not yet available in Java).
- Running agents against local models via Ollama, LM Studio or ONNX.
Not for
- New projects that can adopt Microsoft Agent Framework, which Microsoft recommends as the successor.
- Java teams that need built-in multi-agent orchestration.
- Teams that need stable APIs for orchestration, memory or processes, which are all marked experimental.
Quickstart
pip install semantic-kernel import asyncio
from semantic_kernel.agents import ChatCompletionAgent, SequentialOrchestration
from semantic_kernel.agents.runtime import InProcessRuntime
from semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletion
async def main():
service = OpenAIChatCompletion() # reads OPENAI_API_KEY and OPENAI_CHAT_MODEL_ID
outliner = ChatCompletionAgent(service=service, name="Outliner", instructions="Turn the request into a 3-point outline.")
writer = ChatCompletionAgent(service=service, name="Writer", instructions="Write one short paragraph per outline point.")
orchestration = SequentialOrchestration(members=[outliner, writer])
runtime = InProcessRuntime()
runtime.start()
result = await orchestration.invoke(task="Explain what a vector index is", runtime=runtime)
print(await result.get(timeout=60))
await runtime.stop_when_idle()
asyncio.run(main())
Common pitfalls
- Requirements per the README: Python 3.10+, .NET 10.0+, or JDK 17+.
- Set
OPENAI_API_KEY(orAZURE_OPENAI_API_KEYfor Azure) before running; the OpenAI connector also readsOPENAI_CHAT_MODEL_ID. - Agent orchestration, agent memory and the Process Framework are experimental and may change; orchestration is not available in the Java SDK.
- .NET packages are
Microsoft.SemanticKernelplusMicrosoft.SemanticKernel.Agents.Core; Java lives in the separate semantic-kernel-java repository. - Microsoft publishes a migration guide from Semantic Kernel to Microsoft Agent Framework.
Pros
- Official SDKs in three languages: Python, .NET and Java. (source)
- Five orchestration patterns share one interface, so switching pattern does not require rewriting agent code. (source)
- Microsoft states it will keep fixing critical bugs and security issues and support Semantic Kernel for at least a year after Agent Framework reaches general availability. (source)
- Filters give a hook around function calls and prompts for permission checks and early termination. (source)
- Works with local models through Ollama, LM Studio or ONNX, per the README. (source)
Cons
- Superseded: the README states Semantic Kernel is now Microsoft Agent Framework, which Microsoft calls its successor. (source)
- Microsoft says the majority of new features will be built for Agent Framework rather than Semantic Kernel. (source)
- Agent orchestration is marked experimental and is not yet available in the Java SDK. (source)
- Agent memory (Mem0 provider) is experimental and subject to change. (source)
- MCP documentation covers Python only; the .NET and Java sections say it is coming soon. (source)
Alternatives
FAQ
Is Semantic Kernel being replaced by Microsoft Agent Framework?
Microsoft's README says Semantic Kernel is now Microsoft Agent Framework and calls the framework its successor. Microsoft's blog says Semantic Kernel 1.x keeps getting critical bug and security fixes, with most new features going to Agent Framework.
Does Semantic Kernel support MCP?
Yes. The Python SDK loads MCP servers as plugins (stdio, SSE and Streamable HTTP); .NET has repository samples, and the docs mark .NET and Java MCP docs as coming soon.
Does Semantic Kernel support A2A?
Partly. The .NET SDK includes A2AAgent and A2AHostAgent for calling and hosting A2A agents; no Python or Java A2A support was found.
Which languages does Semantic Kernel support?
C#/.NET and Python in the main repository, and Java in the separate semantic-kernel-java repository. Agent orchestration is not yet available in Java.
Is Semantic Kernel free?
Yes. It is MIT-licensed and has no paid tier; you pay for whichever model service you connect.
Sources
- microsoft/semantic-kernel repository (README)
- Semantic Kernel and Microsoft Agent Framework (Agent Framework blog)
- Migration guide from Semantic Kernel to Agent Framework
- Semantic Kernel overview
- Quick start guide
- Agent architecture
- Agent orchestration
- Handoff orchestration
- Orchestration advanced topics (human-in-the-loop)
- Agent memory
- Add plugins from an MCP server
- Process Framework
- Process Framework human-in-the-loop example
- Filters
- A2AAgent.cs (.NET A2A agent)
- .NET A2A client and server demo
- semantic-kernel-java repository