{"id":1308,"date":"2023-10-10T04:19:34","date_gmt":"2023-10-10T11:19:34","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/semantic-kernel\/?p=1308"},"modified":"2024-01-10T15:12:08","modified_gmt":"2024-01-10T23:12:08","slug":"introducing-the-v1-0-0-beta1-for-the-net-semantic-kernel-sdk","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/agent-framework\/introducing-the-v1-0-0-beta1-for-the-net-semantic-kernel-sdk\/","title":{"rendered":"Introducing the v1.0.0 Beta1 for the .NET Semantic Kernel SDK"},"content":{"rendered":"<blockquote><p>Semantic Kernel <a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/releases\/tag\/dotnet-1.0.1\">v1.0<\/a> has shipped and the contents of this blog entry is now out of date.<\/p><\/blockquote>\n<h1 style=\"padding-bottom: 2rem;\"><a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-89\" src=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge.png\" alt=\"Image skpatternlarge\" width=\"1638\" height=\"136\" srcset=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge.png 1638w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge-300x25.png 300w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge-1024x85.png 1024w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge-768x64.png 768w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2023\/03\/skpatternlarge-1536x128.png 1536w\" sizes=\"(max-width: 1638px) 100vw, 1638px\" \/><\/a><\/h2>\n<p dir=\"auto\" data-line=\"4\">As mentioned in the <a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/skills-to-plugins-fully-embracing-the-openai-plugin-spec-in-semantic-kernel\/\">Skills to Plugins blog post<\/a>, the Semantic Kernel team has been preparing the Semantic Kernel SDK for v1.0.0. Today, we&#8217;re making our first big push by releasing the first release candidate: v1.0.0-beta1.<\/p>\n<p dir=\"auto\" data-line=\"4\">This release has several breaking changes that are necessary for us to get the SDK into spot where we can lock the API down for v1.0.0. To help existing developers using Semantic Kernel today, we&#8217;ve prepared this blog post to outline all the changes and how to resolve them when you uptake the initial release candidate.<\/p>\n<p dir=\"auto\" data-line=\"4\">At a high-level, the main breaking changes consist of the following:<\/p>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"6\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"6\">We are moving away from using the term &#8220;Skills&#8221; and standardizing on the term &#8220;Plugins&#8221; instead. To avoid confusion in the future we have renamed packages and classes that used the term &#8220;Skill&#8221; to now use &#8220;Plugin&#8221;. Functions and properties that use &#8220;Skill&#8221; in their names have been marked as obsolete and new equivalents provided. To learn more about our reasoning, check out the <a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/skills-to-plugins-fully-embracing-the-openai-plugin-spec-in-semantic-kernel\/\">Skills to Plugins blog post<\/a>.<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"7\"><span class=\"ui-provider dz cjh bjm coy coz cpa cpb cpc cpd cpe cpf cpg cph cpi cpj cpk cpl cpm cpn cpo cpp cpq cpr cps cpt cpu cpv cpw cpx cpy cpz cqa cqb cqc cqd\" dir=\"ltr\">We are changing Semantic Kernel core to be AI service agnostic. A few of the Semantic Kernel abstractions were very OpenAI specific. We have fixed this to make the Semantic Kernel AI provider agnostic<\/span>.<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"8\">We have consolidated our planner implementations into a single package and introduced more code sharing. This will make it easier for developer to create their own custom planner implementations.<\/li>\n<\/ul>\n<p dir=\"auto\" data-line=\"10\">The following sections provide a more detailed migration guide for developers using a pre-release candidate of the .NET version of Semantic Kernel.<\/p>\n<h2 style=\"clear: both; padding-top: 2rem;\">Migration overview for Semantic Kernel v1.0.0-beta1 (.Net)<\/h2>\n<h3 style=\"clear: both; padding-top: 1rem;\">Full list of breaking changes.<\/h3>\n<p class=\"code-line\" dir=\"auto\" data-line=\"30\">Below is the full list of PRs we&#8217;ve merged into v1.0.0.0-beta1 that resulted in breaking changes. Each of the PRs have a dedicated section in this blog post describing what was changed and how to update your code. Continue reading to learn more about these changes.<\/p>\n<ol class=\"code-line\" dir=\"auto\" data-line=\"32\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"32\"><a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/?p=1308#rename-importaipluginasync-update-plugin-import-method-and-planner-and-rename-aiplugin-to-plugin-in\">Add Models collection to PromptTemplateConfig Update PromptTemplateConfig to support multiple AI models<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"33\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2991\">Remove SKParameterAttribute and related code<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"34\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2968\">Rename ImportAIPluginAsync Update plugin import method and planner, and rename AIPlugin to Plugin<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"35\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2961\">Extract semantic functions from Kernel.Core<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"36\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2949\">Refactor planners, memory config, and function extensions<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"37\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2943\">Rename ImportXXXPlugins methods to ImportXXXFunctions for GRPC<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"38\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2937\">Rename ImportXXXPlugins methods to ImportXXXFunctions<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"39\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2931\">Merge planner packages2<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"40\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2918\">Rename &#8216;Skills&#8217; -&gt; &#8216;Plugins&#8217; &#8211; Part 5<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"41\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2912\">Refactor PlannerConfig classes for better organization<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"42\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2904\">Rename &#8216;Skills&#8217; -&gt; &#8216;Plugins&#8217; &#8211; Part 3<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"43\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2886\">Remove IServiceConfig as it is not used<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"44\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2881\">Removing IsSemantic and IsAsync properties from ISKFunction and FunctionView<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"45\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2878\">Replacing FunctionsView class with List<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"46\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2864\">New result types &#8211; FunctionResult and KernelResult<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"47\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2863\">Rename &#8216;Skills&#8217; -&gt; &#8216;Plugins&#8217; &#8211; Part 2<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"48\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2854\">Rename &#8216;Skills&#8217; -&gt; &#8216;Plugins&#8217; &#8211; Part 1<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"49\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2852\">Making ContextVariables into a proper Dictionary<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"50\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2850\">Update StepwisePlannerConfig to Improve MaxPromptTokens Calculation and Add Tests for Edge Cases<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"51\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2849\">Make planner constructors more similar<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"52\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2846\">Adding IKernel property the SKContext &#8211; Phase 1<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"53\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2836\">Removing Kernel.Func() shorthand<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"54\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2829\">Option #3 &#8211; Refactor to support generic LLM request settings (use AIRequestSettings)<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"55\"><a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2809\">Removed GPT3Tokenizer and related files<\/a><\/li>\n<\/ol>\n<h3 style=\"clear: both; padding-top: 1rem;\">Updating your NuGet packages.<\/h3>\n<p class=\"code-line\" dir=\"auto\" data-line=\"10\">Before updating your code, you&#8217;ll want to make sure you&#8217;re using the latest NuGet packages. As part of this release, several packages have been renamed and some new packages have been introduced. Below is a table that describes the changes.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 1368px;\">\n<tbody>\n<tr style=\"background: #fff;\">\n<td style=\"height: 28px; width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code class=\" prettyprinted\"><span class=\"typ\">Microsoft<\/span><span class=\"pun\">.<\/span><span class=\"typ\">SemanticKernel<\/span><\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"height: 28px; width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code class=\" prettyprinted\"><span class=\"typ\">Microsoft<\/span><span class=\"pun\">.<\/span><span class=\"typ\">SemanticKernel<\/span><\/code> (no name change)<\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"height: 29px; width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><span style=\"color: #000000;\">Meta package has been updated to include core Semantic Kernel functionality, for more details see<\/span>\u00a0<a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/blob\/main\/dotnet\/src\/SemanticKernel.MetaPackage\/SemanticKernel.MetaPackage.csproj\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/blob\/main\/dotnet\/src\/SemanticKernel.MetaPackage\/SemanticKernel.MetaPackage.csproj\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/blob\/main\/dotnet\/src\/SemanticKernel.MetaPackage\/SemanticKernel.MetaPackage.csproj\">here<\/a>.<\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><code>Microsoft.SemanticKernel.Abstractions<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Abstractions<\/code> (no name change)<\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><span style=\"color: #000000;\">Some unused abstractions have been removed.<\/span><\/td>\n<\/tr>\n<tr style=\"background: #fff; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><code>Microsoft.SemanticKernel.Core<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Core<\/code> (no name change)<\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><span style=\"color: #000000;\">Some functionality has been extracted to separate packages, see below.<\/span><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\">N\/A<\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.TemplateEngine.Basic<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><span style=\"color: #000000;\">Default prompt template engine has been extracted to this package.<\/span><\/td>\n<\/tr>\n<tr style=\"background: #fff; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\">N\/A<\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Reliability.Basic<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><span style=\"color: #000000;\">Default prompt template engine has been extracted to this package.<\/span><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\">N\/A<\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Reliability.Polly<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><span style=\"color: #000000;\">Polly based reliability support has been extracted to this package.<\/span><\/td>\n<\/tr>\n<tr style=\"background: #fff; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\">N\/A<\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Functions.Semantic<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><span style=\"color: #000000;\">Semantic Function support has been extracted to this package.<\/span><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><span style=\"color: #000000;\">N\/A<\/span><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Plugins.Memory<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><span style=\"color: #000000;\">Semantic Kernel memory support has been extracted to this package.<\/span><\/td>\n<\/tr>\n<tr style=\"background: #fff; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><code>Microsoft.SemanticKernel.Skills.Grpc<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Functions.Grpc<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><span style=\"color: #000000;\">Package renamed to reflect it&#8217;s purpose.<\/span><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><code>Microsoft.SemanticKernel.Skills.OpenAPI<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Functions.OpenAPI<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><span style=\"color: #000000;\">Package renamed to reflect it&#8217;s purpose.<\/span><\/td>\n<\/tr>\n<tr style=\"background: #fff; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><code>Microsoft.SemanticKernel.Skills.OpenAPI<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Functions.OpenAPI<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><span style=\"color: #000000;\">Package renamed to reflect it&#8217;s purpose.<\/span><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><code>Microsoft.SemanticKernel.Planning.ActionPlanner<\/code><\/p>\n<p><code><\/code><code>Microsoft.SemanticKernel.Planning.SequentialPlanner<\/code><\/p>\n<p><code><\/code><code>Microsoft.SemanticKernel.Planning.StepwisePlanner<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Planners.Core<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><span style=\"color: #000000;\">Planner packages have been consolidated into a single package.<\/span><\/td>\n<\/tr>\n<tr style=\"background: #fff; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><code>Microsoft.SemanticKernel.Skills.Core<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Plugins.Core<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><span style=\"color: #000000;\">Rename from<\/span>\u00a0<code>Skills<\/code>\u00a0<span style=\"color: #000000;\">to\u00a0<\/span><code>Plugins<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><code>Microsoft.SemanticKernel.Skills.Document<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Plugins.Document<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><span style=\"color: #000000;\">Rename from<\/span>\u00a0<code>Skills<\/code>\u00a0<span style=\"color: #000000;\">to\u00a0<\/span><code>Plugins<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><code>Microsoft.SemanticKernel.Skills.MsGraph<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Plugins.MsGraph<\/code><\/td>\n<\/tr>\n<tr style=\"background: #fff;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><span style=\"color: #000000;\">Rename from<\/span>\u00a0<code>Skills<\/code>\u00a0<span style=\"color: #000000;\">to\u00a0<\/span><code>Plugins<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9; border-top: #999 solid 2px;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Previous name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><code>Microsoft.SemanticKernel.Skills.Web<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">New name<\/span><\/td>\n<td style=\"width: 90.2706%; height: 28px;\"><code>Microsoft.SemanticKernel.Plugins.Web<\/code><\/td>\n<\/tr>\n<tr style=\"background: #f9f9f9;\">\n<td style=\"width: 9.7561%;\"><span style=\"color: #000000;\">Notes<\/span><\/td>\n<td style=\"width: 90.2706%; height: 29px;\"><span style=\"color: #000000;\">Rename from<\/span>\u00a0<code>Skills<\/code>\u00a0<span style=\"color: #000000;\">to\u00a0<\/span><code>Plugins<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 style=\"clear: both; padding-top: 1rem;\"><\/h3>\n<h2 style=\"clear: both; padding-top: 1rem;\">Updating your code.<\/h2>\n<h3 id=\"rename-importaipluginasync-update-plugin-import-method-and-planner-and-rename-aiplugin-to-plugin-in\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"71\">Rename ImportAIPluginAsync Update plugin import method and planner, and rename AIPlugin to Plugin in<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"73\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"73\">Rename\u00a0<code>ImportAIPluginAsync<\/code>\u00a0to\u00a0<code>ImportPluginFunctionsAsync<\/code><\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"75\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2968\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2968\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2968\">PR #2968<\/a><\/p>\n<h3 id=\"extract-semantic-functions-from-kernelcore\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"77\">Extract semantic functions from Kernel.Core<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"79\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"79\">All functionality related to semantic functions has been extracted from the\u00a0<code>Microsoft.SemanticKernel.Core<\/code>\u00a0package and moved to\u00a0<code>Microsoft.SemanticKernel.Functions.Semantic<\/code><\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"81\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2961\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2961\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2961\">PR #2961<\/a><\/p>\n<h3 id=\"refactor-planners-memory-config-and-function-extensions\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"83\">Refactor planners, memory config, and function extensions<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"85\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"85\">When creating a\u00a0<code>SequentialPlanner<\/code>\u00a0change:\n<pre><span class=\"hljs-keyword\">var<\/span> planner = <span class=\"hljs-keyword\">new<\/span> SequentialPlanner(kernel, <span class=\"hljs-keyword\">new<\/span> SequentialPlannerConfig { RelevancyThreshold = <span class=\"hljs-number\">0.5<\/span>, Memory = kernel.Memory });\r\n\/\/ to..\r\n<span class=\"hljs-keyword\">var<\/span> planner = <span class=\"hljs-keyword\">new<\/span> SequentialPlanner(kernel, <span class=\"hljs-keyword\">new<\/span> SequentialPlannerConfig { SemanticMemoryConfig = <span class=\"hljs-keyword\">new<\/span>() { RelevancyThreshold = <span class=\"hljs-number\">0.5<\/span>, Memory = kernel.Memory } });<\/pre>\n<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"92\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2949\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2949\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2949\">PR #2949<\/a><\/p>\n<h3 id=\"rename-importxxxplugins-methods-to-importxxxfunctions-for-grpc\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"94\">Rename ImportXXXPlugins methods to ImportXXXFunctions for GRPC<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"96\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"96\">Rename\u00a0<code>OpenApiPluginExecutionParameters<\/code>\u00a0to\u00a0<code>OpenApiFunctionExecutionParameters<\/code><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"97\">Rename\u00a0<code>ImportGrpcPluginFromFile<\/code>\u00a0or\u00a0<code>ImportGrpcSkillFromFile<\/code>\u00a0to\u00a0<code>ImportGrpcFunctionsFromFile<\/code><\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"99\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2943\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2943\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2943\">PR #2943<\/a><\/p>\n<h3 id=\"rename-importxxxplugins-methods-to-importxxxfunctions\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"101\">Rename ImportXXXPlugins methods to ImportXXXFunctions<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"103\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"103\">As part of the Skill -&gt; Plugin rename the\u00a0<code>ImportSkill<\/code>\u00a0and\u00a0<code>ImportSemanticSkillFromDirectory<\/code>\u00a0are renamed to use the term\u00a0<code>Function<\/code>\u00a0because these methods actually import functions to the Kernel so this PR renames them to match what they actually do.<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"105\"><strong>Note: We want to reserve the ImportPlugin method for later use for when we add more plugin support to Semantic Kernel.<\/strong><\/p>\n<p class=\"code-line\" dir=\"auto\" data-line=\"107\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2937\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2937\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2937\">PR #2937<\/a><\/p>\n<h3 id=\"merge-planner-packages2\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"109\">Merge planner packages2<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"111\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"111\">Packages\u00a0<code>Microsoft.SemanticKernel.Planning.ActionPlanner<\/code>,\u00a0<code>Microsoft.SemanticKernel.Planning.SequentialPlanner<\/code>,\u00a0<code>Microsoft.SemanticKernel.Planning.StepwisePlanner<\/code>\u00a0have been merged into\u00a0<code>Microsoft.SemanticKernel.Planners.Core<\/code><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"112\">Namespaces for all planners have been changed from\u00a0<code>Microsoft.SemanticKernel.Planning<\/code>\u00a0to\u00a0<code>Microsoft.SemanticKernel.Planners<\/code><\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"114\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2931\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2931\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2931\">PR #2931<\/a><\/p>\n<h3 id=\"rename-skills---plugins---part-5\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"116\">Rename &#8216;Skills&#8217; -&gt; &#8216;Plugins&#8217; &#8211; Part 5<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"118\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"118\">These changes only impact our samples<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"120\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2918\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2918\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2918\">PR #2918<\/a><\/p>\n<h3 id=\"refactor-plannerconfig-classes-for-better-organization\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"122\">Refactor PlannerConfig classes for better organization<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"124\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"124\">Moved common properties and methods from\u00a0<code>SequentialPlannerConfig<\/code>\u00a0and\u00a0<code>StepwisePlannerConfig<\/code>\u00a0to the base class\u00a0<code>PlannerConfigBase<\/code>.<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"126\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2912\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2912\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2912\">PR #2912<\/a><\/p>\n<h3 id=\"rename-skills---plugins---part-3\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"128\">Rename &#8216;Skills&#8217; -&gt; &#8216;Plugins&#8217; &#8211; Part 3<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"130\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"130\">Remove the\u00a0<code>Microsoft.SemanticKernel.SkillDefinition<\/code>\u00a0namespace and promote classes previously contained to\u00a0<code>Microsoft.SemanticKernel<\/code>, this is to reduce the number of usings that client code required.<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"131\">Rename variable\/function names using\u00a0<code>skillName<\/code>\u00a0to\u00a0<code>pluginName<\/code>.<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"132\">Rename skill collection interfaces\/classes to use function collection in naming:\n<ul class=\"code-line\" dir=\"auto\" data-line=\"133\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"133\"><code>IReadOnlySkillCollection<\/code>\u00a0-&gt;\u00a0<code>IReadOnlyFunctionCollection<\/code><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"134\"><code>SkillCollection<\/code>\u00a0-&gt;\u00a0<code>FunctionCollection<\/code><\/li>\n<\/ul>\n<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"135\">Leave some obsolete methods\/properties to help with the upgrade from earlier releases.<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"137\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2904\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2904\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2904\">PR #2904<\/a><\/p>\n<h3 id=\"remove-iserviceconfig-as-it-is-not-used\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"139\">Remove IServiceConfig as it is not used<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"141\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"141\"><code>IServiceConfig<\/code>\u00a0(and the associated implementation\u00a0<code>ServiceConfig<\/code>) has been removed as it was not being used.<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"143\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2886\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2886\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2886\">PR #2886<\/a><\/p>\n<h3 id=\"removing-issemantic-and-isasync-properties-from-iskfunction-and-functionview\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"145\">Removing IsSemantic and IsAsync properties from ISKFunction and FunctionView<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"147\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"147\"><code>ISKFunction.IsSemantic<\/code>\u00a0is obsolete and will be removed in a future release.<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"149\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2881\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2881\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2881\">PR #2881<\/a><\/p>\n<h3 id=\"replacing-functionsview-class-with-list\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"151\">Replacing FunctionsView class with List<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"153\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"153\">The\u00a0<code>FunctionsView<\/code>\u00a0class has been simplified to have a single list containing native and semantic functions<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"154\">To iterate over all functions associated with a kernel do this:\n<pre><code class=\"code-line language-csharp\" dir=\"auto\" data-line=\"155\"><\/code><\/pre>\n<pre><span class=\"hljs-keyword\">var<\/span> functions = kernel.Functions.GetFunctionViews();\r\n<span class=\"hljs-keyword\">foreach<\/span> (FunctionView func <span class=\"hljs-keyword\">in<\/span> functions)\r\n{\r\n    Console.WriteLine(<span class=\"hljs-string\">$\"<span class=\"hljs-subst\">{func.Name}<\/span>: <span class=\"hljs-subst\">{func.Description}<\/span>\"<\/span>);\r\n}<\/pre>\n<pre><code class=\"code-line language-csharp\" dir=\"auto\" data-line=\"155\"><\/code><\/pre>\n<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"163\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2878\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2878\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2878\">PR #2878<\/a><\/p>\n<h3 id=\"new-result-types---functionresult-and-kernelresult\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"165\">New result types &#8211; FunctionResult and KernelResult<\/h3>\n<p class=\"code-line\" dir=\"auto\" data-line=\"167\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2864\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2864\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2864\">PR #2864<\/a><\/p>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"169\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"169\">The return type from\u00a0<code>ISKFunction.InvokeAsync<\/code>\u00a0has been changed from\u00a0<code>Task&lt;SKContext&gt;<\/code>\u00a0to\u00a0<code>Task&lt;FunctionResult&gt;<\/code>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"170\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"170\"><code>FunctionResult<\/code>\u00a0&#8211; new return type from single function invocation. It contains\u00a0<code>object? Value<\/code>\u00a0which can be any primitive, complex type or\u00a0<code>IAsyncEnumerable&lt;T&gt;<\/code>.<\/li>\n<\/ul>\n<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"171\">The return type from\u00a0<code>IKernel.RunAsync<\/code>\u00a0has been changed from\u00a0<code>Task&lt;SKContext&gt;<\/code>\u00a0to\u00a0<code>Task&lt;KernelResult&gt;<\/code>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"172\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"172\"><code>KernelResult<\/code>\u00a0&#8211; new return type from Kernel invocation. It contains\u00a0<code>object? Value<\/code>\u00a0which can be any primitive, complex type or\u00a0<code>IAsyncEnumerable&lt;T&gt;<\/code>.<\/li>\n<\/ul>\n<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"173\">Update your code to use\u00a0<code>result.GetValue&lt;string&gt;<\/code>\u00a0instead of\u00a0<code>result.Result<\/code>.<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"175\">KernelResult &#8211; new return type in Kernel.RunAsync method. It doesn&#8217;t contain SKContext, just object? Value to get execution result. FunctionResult also contains Metadata &#8211; property, that contains additional data, including AI model response (e.g. token usage). KernelResult contains collection of FunctionResult &#8211; all function results from pipeline, so it&#8217;s possible to check result of each function in pipeline, observe result value, AI-related information, like amount of tokens etc.<\/p>\n<p class=\"code-line\" dir=\"auto\" data-line=\"179\">Syntax in examples and tests were changed from result.Result to result.GetValue, but now it should be possible to get any type as a result and not only string.<\/p>\n<h3 id=\"rename-skills---plugins---part-1\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"185\">Rename &#8216;Skills&#8217; -&gt; &#8216;Plugins&#8217; &#8211; Part 1<\/h3>\n<p class=\"code-line\" dir=\"auto\" data-line=\"187\">The following packages have been renamed and :<\/p>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"189\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"189\"><code>Microsoft.SemanticKernel.Skills.Core<\/code>\u00a0-&gt;\u00a0<code>Microsoft.SemanticKernel.Plugins.Core<\/code><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"190\"><code>Microsoft.SemanticKernel.Skills.Document<\/code>\u00a0-&gt;\u00a0<code>Microsoft.SemanticKernel.Plugins.Document<\/code><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"191\"><code>Microsoft.SemanticKernel.Skills.MsGraph<\/code>\u00a0-&gt;\u00a0<code>Microsoft.SemanticKernel.Plugins.MsGraph<\/code><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"192\"><code>Microsoft.SemanticKernel.Skills.Web<\/code>\u00a0-&gt;\u00a0<code>Microsoft.SemanticKernel.Plugins.Web<\/code><\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"194\">All classes ending in\u00a0<code>Skill<\/code>\u00a0have been renamed to end in\u00a0<code>Plugin<\/code>.<\/p>\n<p class=\"code-line\" dir=\"auto\" data-line=\"196\">All namespaces that included\u00a0<code>Skills<\/code>\u00a0have been changed to use\u00a0<code>Plugins<\/code>\u00a0instead.<\/p>\n<p class=\"code-line\" dir=\"auto\" data-line=\"198\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2854\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2854\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2854\">PR #2854<\/a><\/p>\n<h3 id=\"making-contextvariables-into-a-proper-dictionary\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"200\">Making ContextVariables into a proper Dictionary<\/h3>\n<p class=\"code-line\" dir=\"auto\" data-line=\"202\">Simplifying\u00a0<code>ContextVariables<\/code>\u00a0by making it into an actual\u00a0<code>Dictionary&lt;string, string&gt;<\/code>\u00a0instead of implementing\u00a0<code>IDictionary&lt;string, string&gt;<\/code>.<\/p>\n<p class=\"code-line\" dir=\"auto\" data-line=\"204\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2852\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2852\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2852\">PR #2852<\/a><\/p>\n<h3 id=\"update-stepwiseplannerconfig-to-improve-maxprompttokens-calculation-and-add-tests-for-edge-cases\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"206\">Update StepwisePlannerConfig to Improve MaxPromptTokens Calculation and Add Tests for Edge Cases<\/h3>\n<p class=\"code-line\" dir=\"auto\" data-line=\"208\">This pull request updates the StepwisePlannerConfig class in the Planning.StepwisePlanner project to improve the calculation of the MaxPromptTokens property, ensuring that the maximum number of iterations allowed in a plan is properly taken into account.<\/p>\n<p class=\"code-line\" dir=\"auto\" data-line=\"210\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2850\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2850\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2850\">PR #2850<\/a><\/p>\n<h3 id=\"make-planner-constructors-more-similar\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"212\">Make planner constructors more similar<\/h3>\n<p class=\"code-line\" dir=\"auto\" data-line=\"214\">This change addresses inconsistencies in planner constructors.<\/p>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"216\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"216\">Added\u00a0<code>GetPromptTemplate<\/code>\u00a0delegate function to the planner base config. All planners will use this to get the prompt override.<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"217\">Removed logger factory argument from ActionPlanner constructor. Used the Kernel&#8217;s logger factory to create a new logger within each planner constructor.<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"218\">Renamed private\u00a0<code>Config<\/code>\u00a0private instance field to\u00a0<code>_config<\/code>.<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"220\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2849\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2849\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2849\">PR #2849<\/a><\/p>\n<h3 id=\"adding-ikernel-property-the-skcontext---phase-1\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"222\">Adding IKernel property the SKContext &#8211; Phase 1<\/h3>\n<p class=\"code-line\" dir=\"auto\" data-line=\"224\">This change is to support using\u00a0<code>IKernel.RunAsync<\/code>\u00a0as the primary way to invoke functions. If you code is currently using\u00a0<code>ISKFunction.InvokeAsync<\/code>\u00a0it is recommended that you change to use\u00a0<code>IKernel.RunAsync<\/code>\u00a0as this pattern will be enforced in a future update.<\/p>\n<p class=\"code-line\" dir=\"auto\" data-line=\"226\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2846\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2846\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2846\">PR #2846<\/a><\/p>\n<h3 id=\"removing-kernelfunc-shorthand\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"228\">Removing Kernel.Func() shorthand<\/h3>\n<p class=\"code-line\" dir=\"auto\" data-line=\"230\">This helper function is being removed and instead developers should call\u00a0<code>kernel.Functions.GetFunction(skill, functionName);<\/code>\u00a0instead.<\/p>\n<p class=\"code-line\" dir=\"auto\" data-line=\"232\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2836\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2836\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2836\">PR #2836<\/a><\/p>\n<h3 id=\"refactor-to-support-generic-llm-request-settings-use-airequestsettings\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"234\">Refactor to support generic LLM request settings (use AIRequestSettings)<\/h3>\n<p class=\"code-line\" dir=\"auto\" data-line=\"236\">This change is requested to allow the Semantic Kernel abstractions to be AI Service agnostic i.e., remove OpenAI specific properties. For more information on the reason for this breaking change see ADR\u00a0<a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/blob\/main\/docs\/decisions\/0008-support-generic-llm-request-settings.md\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/blob\/main\/docs\/decisions\/0008-support-generic-llm-request-settings.md\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/blob\/main\/docs\/decisions\/0008-support-generic-llm-request-settings.md\">0008-support-generic-llm-request-settings.md<\/a><\/p>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"238\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"238\">Introduces\u00a0<code>AIRequestSettings<\/code>\u00a0to replace\u00a0<code>PromptTemplateConfig.CompletionConfig<\/code>. This is the base class for all AI Service request settings.<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"239\">Introduces\u00a0<code>OpenAIRequestSettings<\/code>\u00a0as the OpenAI specific request settings class.<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"240\">Update code and samples to use\u00a0<code>AIRequestSettings<\/code>\u00a0or\u00a0<code>OpenAIRequestSettings<\/code>\u00a0to configure AI Service request settings.<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"242\">All of the\u00a0<a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/tree\/main\/dotnet\/samples\/KernelSyntaxExamples\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/tree\/main\/dotnet\/samples\/KernelSyntaxExamples\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/tree\/main\/dotnet\/samples\/KernelSyntaxExamples\">Kernel Syntax Examples<\/a>\u00a0have been updated to use the new pattern.<\/p>\n<p class=\"code-line\" dir=\"auto\" data-line=\"244\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2829\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2829\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2829\">PR #2829<\/a><\/p>\n<h3 id=\"removed-gpt3tokenizer-and-related-files\" class=\"code-line\" dir=\"auto\" style=\"margin-top: 1.5rem;\" data-line=\"246\">Removed GPT3Tokenizer and related files<\/h3>\n<ul class=\"code-line\" dir=\"auto\" data-line=\"248\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"248\"><code>GPT3Tokenizer<\/code>\u00a0has been removed from Semantic Kernel repository<\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"249\">Alternatives:\n<ul class=\"code-line\" dir=\"auto\" data-line=\"250\">\n<li class=\"code-line\" dir=\"auto\" data-line=\"250\"><a title=\"https:\/\/github.com\/microsoft\/Tokenizer\" href=\"https:\/\/github.com\/microsoft\/Tokenizer\" data-href=\"https:\/\/github.com\/microsoft\/Tokenizer\">Microsoft Tokenizer<\/a><\/li>\n<li class=\"code-line\" dir=\"auto\" data-line=\"251\"><a title=\"https:\/\/github.com\/dmitry-brazhenko\/sharptoken\" href=\"https:\/\/github.com\/dmitry-brazhenko\/sharptoken\" data-href=\"https:\/\/github.com\/dmitry-brazhenko\/sharptoken\">SharpToken<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"code-line\" dir=\"auto\" data-line=\"253\"><a title=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2809\" href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2809\" data-href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/pull\/2809\">PR #2809<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Semantic Kernel v1.0 has shipped and the contents of this blog entry is now out of date. As mentioned in the Skills to Plugins blog post, the Semantic Kernel team has been preparing the Semantic Kernel SDK for v1.0.0. Today, we&#8217;re making our first big push by releasing the first release candidate: v1.0.0-beta1. This release [&hellip;]<\/p>\n","protected":false},"author":121401,"featured_media":1359,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1308","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-semantic-kernel"],"acf":[],"blog_post_summary":"<p>Semantic Kernel v1.0 has shipped and the contents of this blog entry is now out of date. As mentioned in the Skills to Plugins blog post, the Semantic Kernel team has been preparing the Semantic Kernel SDK for v1.0.0. Today, we&#8217;re making our first big push by releasing the first release candidate: v1.0.0-beta1. This release [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/1308","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\/121401"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/comments?post=1308"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/1308\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media\/1359"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media?parent=1308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/categories?post=1308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/tags?post=1308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}