{"id":4852,"date":"2025-05-21T07:47:05","date_gmt":"2025-05-21T14:47:05","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/semantic-kernel\/?p=4852"},"modified":"2025-05-27T03:27:58","modified_gmt":"2025-05-27T10:27:58","slug":"semantic-kernel-and-microsoft-extensions-ai-better-together-part-1","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/agent-framework\/semantic-kernel-and-microsoft-extensions-ai-better-together-part-1\/","title":{"rendered":"Semantic Kernel and Microsoft.Extensions.AI: Better Together, Part 1"},"content":{"rendered":"<p><span data-contrast=\"none\">This is the start of a series highlighting the integration between Microsoft Semantic Kernel and Microsoft.Extensions.AI. Future parts will provide detailed examples of using Semantic Kernel with Microsoft.Extensions.AI abstractions.<\/span><span data-ccp-props=\"{&quot;335551550&quot;:1,&quot;335551620&quot;:1}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">The most common questions are:<\/span><span data-ccp-props=\"{&quot;335551550&quot;:1,&quot;335551620&quot;:1}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">&#8220;Do Microsoft&#8217;s AI extensions replace Semantic Kernel?&#8221;<\/span><span data-ccp-props=\"{&quot;335551550&quot;:1,&quot;335551620&quot;:1}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"none\">&#8220;When should I use Microsoft&#8217;s AI extensions instead of Semantic Kernel?&#8221;<\/span><span data-ccp-props=\"{&quot;335551550&quot;:1,&quot;335551620&quot;:1}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"none\">This blog post will address these questions and offer guidance on when and how to use them. First, we will explore what Microsoft Extensions AI is and its relationship with Semantic Kernel.<\/span><span data-ccp-props=\"{&quot;335551550&quot;:1,&quot;335551620&quot;:1}\">\u00a0<\/span><\/p>\n<h2 id=\"the-evolution-of-embedding-generation-in-semantic-kernel\" class=\"code-line\" dir=\"auto\" data-line=\"4\">The Evolution of AI Integration in .NET with Microsoft Extensions AI<\/h2>\n<p><span data-contrast=\"auto\">Artificial Intelligence, or AI, is evolving at a rapid pace that many developers struggle to keep up with. The Semantic Kernel team responded to this shift in how apps are written with a suite of solutions that run on multiple platforms and support most popular languages, leading with C#.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The .NET team recognized the importance and impact of AI and built a set of foundational building blocks to support a thriving ecosystem and ease the burden of learning and integrating AI into applications for .NET developers.\u00a0 This foundation is based on established patterns, and in many cases Semantic Kernel used as the prototype. This foundation exists in the Microsoft.Extensions.AI namespace and provides AI extensions for .NET.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The AI extensions not only catalyzed a thriving and rapidly growing ecosystem but also simplified many common interactions developers have with LLMs such as bidirectional chat and image analysis. The team worked closely with Semantic Kernel to ensure that once the building blocks were released, Semantic Kernel could easily migrate from their built-in primitives to use AI extensions. Due to the timing needed to make this possible, the interim state led to some confusion amongst developers wondering whether the AI extensions would replace the corresponding concepts in Semantic Kernel.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The release of the AI extensions for .NET (the types and interfaces provided by the Microsoft.Extensions.AI.* set of packages) set an important catalyst for the evolution of Intelligent Apps in .NET. The AI extensions are intended to provide the grounds of common primitives and building blocks that the .NET ecosystem can use to build higher level AI applications and solutions including orchestrators and agentic frameworks. They serve as \u201cexchange types\u201d, types .NET libraries can and should expose and consume so that many such libraries can be composed and easily interoperate. Semantic Kernels is such a set of libraries.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The concept of the .NET AI extensions is based on successful patterns from other popular .NET frameworks including ASP.NET. If you are a web developer, you may be familiar with some of the concepts that ASP.NET supports, including dependency injection, middleware, and support for multiple providers. The extensions for AI in .NET are based on these proven patterns.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2 id=\"the-evolution-of-embedding-generation-in-semantic-kernel\" class=\"code-line\" dir=\"auto\" data-line=\"4\">How Microsoft Extensions AI relates to Semantic Kernel<\/h2>\n<p>To better understand the relationship between\u00a0<strong>Microsoft Extensions AI<\/strong>\u00a0and\u00a0<strong>Semantic Kernel<\/strong>, consider the analogy of a foundational SDK and a specialized SDK built on top of it.<\/p>\n<p><strong>Microsoft Extensions AI<\/strong>\u00a0serves as a foundational SDK, providing low-level abstractions and APIs for integrating AI capabilities into your applications. It offers flexible tools that enable you to build custom AI workflows tailored to your specific needs.<\/p>\n<p><strong>Semantic Kernel<\/strong>, on the other hand, is a specialized SDK built on top of Microsoft Extensions AI. It extends the foundational capabilities by introducing higher-level features designed for more advanced AI scenarios, such as agents, plugins, prompt templates, and workflow automation. Semantic Kernel simplifies tasks that would otherwise require significant effort if built purely with the foundational SDK.<\/p>\n<p>A useful analogy within the C# ecosystem is the relationship between\u00a0<strong>System.Net.Http<\/strong>\u00a0and\u00a0<strong>ASP.NET Core MVC<\/strong>:<\/p>\n<ul>\n<li><strong>System.Net.Http<\/strong>\u00a0is a foundational SDK that provides the tools for sending and receiving HTTP requests. It allows developers to work directly with the HTTP protocol, enabling full control over how data is sent and received.<\/li>\n<li><strong>ASP.NET Core<\/strong>, while not a framework in this analogy, can be thought of as a specialized SDK that builds upon foundational tools like System.Net.Http. It abstracts away many of the lower-level details of making HTTP requests and provides additional features such as routing, model binding, and view rendering, tailored specifically for building web applications.Similarly:<\/li>\n<li><strong>Microsoft Extensions AI<\/strong>\u00a0is the foundational SDK, offering the core abstractions for building AI-enabled applications.<\/li>\n<li><strong>Semantic Kernel<\/strong> is the specialized SDK that builds on Microsoft Extensions AI, simplifying advanced AI workflows and enabling features like agents, plugins, and automation. By leveraging both, developers can choose the right level of abstraction for their application, whether they need the flexibility of Microsoft Extensions AI or the higher-level capabilities of Semantic Kernel for complex AI scenarios.Because many of the current <strong>Microsoft Extensions AI<\/strong>\u00a0abstractions were inspired by the initial abstractions in\u00a0<strong>Semantic Kernel<\/strong>, some overlap exists in terms of functionality. To address this, <strong>Semantic Kernel<\/strong>\u00a0has recently been updated to natively support\u00a0<strong>Microsoft Extensions AI<\/strong>\u00a0abstractions in its APIs, such as\u00a0<code>IChatClient<\/code>\u00a0and others. This alignment ensures a smoother integration experience and allows developers to leverage the strengths of both SDKs seamlessly.<\/li>\n<\/ul>\n<h2 id=\"the-evolution-of-embedding-generation-in-semantic-kernel\" class=\"code-line\" dir=\"auto\" data-line=\"4\">When to use Microsoft Extensions AI and Semantic Kernel?<\/h2>\n<p><span data-contrast=\"auto\">Microsoft Extensions AI provides a lower-level abstraction layer. By creating your code on top of Microsoft Extensions AI, you automatically can use those implementations with Semantic Kernel.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>In cases where overlapping abstractions exist between Semantic Kernel and Microsoft Extensions AI, we recommend transitioning your code to use\u00a0<strong>Microsoft Extensions AI<\/strong>\u00a0abstractions. Over time, the overlapping abstractions in Semantic Kernel will be phased out in favor of the newer, more standardized abstractions in Microsoft Extensions AI. Detailed migration guidance will be shared in upcoming blog posts to help you make this transition smoothly.<\/p>\n<p>For most applications, you will begin development using libraries implemented on top of\u00a0<strong>Microsoft.Extensions.AI<\/strong>, which provide foundational AI capabilities.\u00a0<strong>Semantic Kernel<\/strong>\u00a0should be used when your application requires higher-level features such as Agents, Plugins, Prompt Templates, or Workflow Automation. Semantic Kernel builds on the foundational abstractions of Microsoft Extensions AI to simplify advanced AI scenarios and streamline development for more complex use cases.<\/p>\n<h2 id=\"chat-completion\">How Semantic Kernel Supports Microsoft.Extensions.AI Types<\/h2>\n<h3 id=\"chat-completion\">Chat Completion<\/h3>\n<p class=\"augment-markdown-paragraph svelte-1edcdk9\">Semantic Kernel&#8217;s chat completion functionality now natively supports Microsoft.Extensions.AI types:<\/p>\n<ol start=\"1\">\n<li><strong>Kernel Builder Extensions<\/strong>\n<ul>\n<li>The\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">AddOpenAIChatClient()<\/code>,\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">AddAzureOpenAIChatClient()<\/code>, and other connector extension methods were added and now register the new\u00a0 Microsoft.Extensions.AI&#8217;s <code class=\"markdown-codespan svelte-1ufogiu\">IChatClient<\/code>\u00a0implementations<\/li>\n<li>This allows you easily migrate to the new API with the same configuration<\/li>\n<\/ul>\n<\/li>\n<li><strong>Service Collection Extensions<\/strong>\n<ul>\n<li>Similar to KernelBuilder, DI extensions like <code class=\"markdown-codespan svelte-1ufogiu\">services.AddOpenAIChatClient()<\/code> now register the new <code class=\"markdown-codespan svelte-1ufogiu\">IChatClient<\/code><\/li>\n<li>This enables seamless integration in dependency injection scenarios<\/li>\n<\/ul>\n<\/li>\n<li><strong>ChatCompletionAgent<\/strong>\n<ul>\n<li>Can now work with either\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">IChatCompletionService<\/code>\u00a0or\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">IChatClient<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 id=\"embedding-generation\">Embedding Generation<\/h3>\n<p class=\"augment-markdown-paragraph svelte-1edcdk9\">Semantic Kernel has moved from its own <code class=\"markdown-codespan svelte-1ufogiu\">ITextEmbeddingGenerationService<\/code> to Microsoft.Extensions.AI&#8217;s <code class=\"markdown-codespan svelte-1ufogiu\">IEmbeddingGenerator&lt;string, Embedding&lt;float&gt;&gt;<\/code>:<\/p>\n<ol start=\"1\">\n<li><strong>Embedding Service Registration<\/strong>\n<ul>\n<li>Methods like\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">AddOpenAIEmbeddingGenerator()<\/code>\u00a0and\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">AddAzureOpenAIEmbeddingGenerator()<\/code>\u00a0now register Microsoft.Extensions.AI&#8217;s\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">IEmbeddingGenerator&lt;string, Embedding&lt;float&gt;&gt;<\/code><\/li>\n<li>The older interfaces are marked as obsolete<\/li>\n<\/ul>\n<\/li>\n<li><strong>Automatic Conversion<\/strong>\n<ul>\n<li>Semantic Kernel provides extension methods to convert between its older embedding interfaces and the new Microsoft.Extensions.AI interfaces<\/li>\n<li>This ensures backward compatibility while encouraging migration to the new types<\/li>\n<\/ul>\n<\/li>\n<li><strong>Vector Operations<\/strong>\n<ul>\n<li>Vector operations in Semantic Kernel now work with Microsoft.Extensions.AI&#8217;s\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">Embedding&lt;float&gt;<\/code>\u00a0type<\/li>\n<li>This provides a standardized way to work with embeddings across different providers<\/li>\n<li>For more information check our <a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/vector-data-extensions-are-now-generally-available-ga\">vector data extensions blog post<\/a>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 id=\"function-calling\">Function Calling<\/h3>\n<p class=\"augment-markdown-paragraph svelte-1edcdk9\">Semantic Kernel&#8217;s function calling capabilities now integrate with Microsoft.Extensions.AI types:<\/p>\n<ol start=\"1\">\n<li><strong>UseKernelFunctionInvocation<\/strong>\n<ul>\n<li>Allows any\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">IChatClient<\/code> to be configured to invoke Kernel functions<\/li>\n<li>Automatically handles function calling protocol conversion<\/li>\n<\/ul>\n<\/li>\n<li><strong>AIFunction Integration<\/strong>\n<ul>\n<li>Semantic Kernel&#8217;s\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">KernelFunction<\/code> is now a <code class=\"markdown-codespan svelte-1ufogiu\">AIFunction<\/code> and can be used with Microsoft.Extensions.AI&#8217;s compatible environment.<\/li>\n<li>Extension methods like\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">AsKernelFunction()<\/code> are also available to allow specializing your existing <code class=\"markdown-codespan svelte-1ufogiu\">AIFunction<\/code> for easy conversion<\/li>\n<\/ul>\n<\/li>\n<li><strong>Function Arguments<\/strong>\n<ul>\n<li>Semantic Kernel&#8217;s\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">KernelArguments<\/code> are now Microsoft.Extensions.AI&#8217;s <code class=\"markdown-codespan svelte-1ufogiu\">AIFunctionArguments<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 id=\"content-types\">Content Types<\/h3>\n<p class=\"augment-markdown-paragraph svelte-1edcdk9\">Semantic Kernel now supports retrieval of Microsoft.Extensions.AI content types:<\/p>\n<ol start=\"1\">\n<li><strong>ChatMessageContent<\/strong>\n<ul>\n<li>Can be converted to\/from Microsoft.Extensions.AI&#8217;s\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">ChatMessage<\/code><\/li>\n<li>Supports all the same content types (text, images, function calls, etc.)<\/li>\n<\/ul>\n<\/li>\n<li><strong>Streaming Support<\/strong>\n<ul>\n<li>Semantic Kernel&#8217;s streaming interfaces now work with Microsoft.Extensions.AI&#8217;s\u00a0<code class=\"markdown-codespan svelte-1ufogiu\">ChatResponseUpdate<\/code><\/li>\n<li>This enables consistent streaming behavior across different providers<\/li>\n<\/ul>\n<\/li>\n<li><strong>Kernel InvokeAsync&lt;T&gt;<\/strong>\n<ul>\n<li>Providing a T of Microsoft.Extensions.AI type is now supported when retrieving kernel contents.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 id=\"service-selection\">Service Selection<\/h3>\n<p class=\"augment-markdown-paragraph svelte-1edcdk9\">Semantic Kernel&#8217;s service selection mechanism now works with Microsoft.Extensions.AI services:<\/p>\n<ol start=\"1\">\n<li>Added a new <strong>IChatClientSelector<\/strong> abstraction\n<ul>\n<li>Specialized selector for chat clients<\/li>\n<li>Kernel instances now also rely on this new interface for Microsoft.Extensions.AI&#8217;s <code class=\"markdown-codespan svelte-1ufogiu\">IChatClient<\/code> discovery and selection<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 id=\"dependency-injection\">Dependency Injection<\/h3>\n<p class=\"augment-markdown-paragraph svelte-1edcdk9\">Semantic Kernel&#8217;s DI support now includes Microsoft.Extensions.AI types:<\/p>\n<ol start=\"1\">\n<li><strong>Service Registration<\/strong>\n<ul>\n<li><code class=\"markdown-codespan svelte-1ufogiu\">IChatClient<\/code> added to your service collection will be automatically visible to the Kernel selector.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Automatic Adaptation<\/strong>\n<ul>\n<li>When using DI, Semantic Kernel automatically adapts between its own types and Microsoft.Extensions.AI types<\/li>\n<li>This ensures a consistent experience regardless of which API style you prefer<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p class=\"augment-markdown-paragraph svelte-1edcdk9\">This native support for Microsoft.Extensions.AI types means you can now use Semantic Kernel with the broader Microsoft AI ecosystem more seamlessly, with consistent programming models and easy interoperability between different components.<\/p>\n<p><span data-contrast=\"auto\">Eager to explore the new\u202f<\/span><b><span data-contrast=\"auto\">Microsoft.Extensions.AI with Semantic Kernel?<\/span><\/b><span data-contrast=\"auto\"> Please check out these packages and samples:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Package<\/span><\/b><span data-contrast=\"auto\">:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Extensions.AI.Abstractions\/latest%22%20\/o%20%22https:\/\/www.nuget.org\/packages\/microsoft.extensions.ai\/9.0.0-preview.9.24507.7%22%20\/t%20%22_blank\"><span data-contrast=\"none\">NuGet Gallery | Microsoft.Extensions.AI.Abstractions\u202f<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Extensions.AI\/latest%22%20\/o%20%22https:\/\/www.nuget.org\/packages\/microsoft.extensions.ai\/9.0.0-preview.9.24507.7%22%20\/t%20%22_blank\"><span data-contrast=\"none\">NuGet Gallery | Microsoft.Extensions.AI\u202f<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><b><span data-contrast=\"auto\">References<\/span><\/b><span data-contrast=\"auto\">:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Semantic Kernel <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/semantic-kernel\/frameworks\/agent\/?pivots=programming-language-csharp\"><span data-contrast=\"none\"> Agent Framework | Microsoft Learn<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Semantic Kernel <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/semantic-kernel\/frameworks\/process\/process-framework\"><span data-contrast=\"none\">Process Framework | Microsoft Learn<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">Semantic Kernel <\/span><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/tree\/main\/dotnet\/samples\"><span data-contrast=\"none\">Samples<\/span><\/a><span data-ccp-props=\"{}\">\n<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\">Vector Data Extensions &#8211; <a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/vector-data-extensions-are-now-generally-available-ga\">Blog Post<\/a><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"auto\">Microsoft.Extensions.AI <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/ai\/microsoft-extensions-ai\"><span data-contrast=\"none\">Microsoft.Extensions.AI libraries &#8211; .NET | Microsoft Learn<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"5\" data-aria-level=\"1\"><span data-contrast=\"auto\">EShop Support with Microsoft.Extensions.AI \u2013 \u202f<\/span><a href=\"https:\/\/github.com\/dotnet\/eShopSupport\/tree\/main\"><span data-contrast=\"none\">eShop Support<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"6\" data-aria-level=\"1\"><span data-contrast=\"auto\">.NET AI Samples \u2013\u202f<\/span><a href=\"https:\/\/github.com\/dotnet\/ai-samples\"><span data-contrast=\"none\">https:\/\/github.com\/dotnet\/ai-samples<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This is the start of a series highlighting the integration between Microsoft Semantic Kernel and Microsoft.Extensions.AI. Future parts will provide detailed examples of using Semantic Kernel with Microsoft.Extensions.AI abstractions.\u00a0 The most common questions are:\u00a0 &#8220;Do Microsoft&#8217;s AI extensions replace Semantic Kernel?&#8221;\u00a0 &#8220;When should I use Microsoft&#8217;s AI extensions instead of Semantic Kernel?&#8221;\u00a0 This blog post [&hellip;]<\/p>\n","protected":false},"author":63983,"featured_media":4896,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[78,27,47,141,2,1],"tags":[],"class_list":["post-4852","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net","category-agents","category-announcement","category-extensions-ai","category-samples","category-semantic-kernel"],"acf":[],"blog_post_summary":"<p>This is the start of a series highlighting the integration between Microsoft Semantic Kernel and Microsoft.Extensions.AI. Future parts will provide detailed examples of using Semantic Kernel with Microsoft.Extensions.AI abstractions.\u00a0 The most common questions are:\u00a0 &#8220;Do Microsoft&#8217;s AI extensions replace Semantic Kernel?&#8221;\u00a0 &#8220;When should I use Microsoft&#8217;s AI extensions instead of Semantic Kernel?&#8221;\u00a0 This blog post [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/4852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/users\/63983"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/comments?post=4852"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/4852\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media\/4896"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media?parent=4852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/categories?post=4852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/tags?post=4852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}