From 9e525dc2d54974a46886da20e12e41a8ca5606d4 Mon Sep 17 00:00:00 2001 From: SergeyMenshykh Date: Wed, 1 Jul 2026 15:27:53 +0100 Subject: [PATCH 1/3] .NET: Remove Experimental attribute from Skills API in Microsoft.Agents.AI Closes microsoft/agent-framework#6835 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../Agent_Step01_FileBasedSkills.csproj | 1 - .../Agent_Step02_CodeDefinedSkills.csproj | 1 - .../Agent_Step03_ClassBasedSkills.csproj | 2 +- .../Agent_Step04_MixedSkills/Agent_Step04_MixedSkills.csproj | 2 +- .../Agent_Step05_SkillsWithDI.csproj | 2 +- .../Agent_Step06_McpBasedSkills.csproj | 2 +- .../Agent_Step07_SkillsAutoApproval.csproj | 3 +-- .../Microsoft.Agents.AI/Skills/AgentInMemorySkillsSource.cs | 3 --- dotnet/src/Microsoft.Agents.AI/Skills/AgentSkill.cs | 3 --- .../src/Microsoft.Agents.AI/Skills/AgentSkillFrontmatter.cs | 2 -- dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillResource.cs | 3 --- dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillScript.cs | 3 --- dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProvider.cs | 3 --- .../Microsoft.Agents.AI/Skills/AgentSkillsProviderBuilder.cs | 3 --- .../Microsoft.Agents.AI/Skills/AgentSkillsProviderOptions.cs | 4 ---- dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsSource.cs | 3 --- .../Microsoft.Agents.AI/Skills/AgentSkillsSourceContext.cs | 3 --- .../Skills/AggregatingAgentSkillsSource.cs | 3 --- .../Skills/Decorators/CachingAgentSkillsSource.cs | 3 --- .../Skills/Decorators/CachingAgentSkillsSourceOptions.cs | 3 --- .../Skills/Decorators/DeduplicatingAgentSkillsSource.cs | 3 --- .../Skills/Decorators/DelegatingAgentSkillsSource.cs | 3 --- .../Skills/Decorators/FilteringAgentSkillsSource.cs | 3 --- dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkill.cs | 3 --- .../Skills/File/AgentFileSkillFilterContext.cs | 3 --- .../Microsoft.Agents.AI/Skills/File/AgentFileSkillScript.cs | 3 --- .../Skills/File/AgentFileSkillScriptRunner.cs | 3 --- .../Microsoft.Agents.AI/Skills/File/AgentFileSkillsSource.cs | 2 -- .../Skills/File/AgentFileSkillsSourceOptions.cs | 3 --- .../Skills/Programmatic/AgentClassSkill.cs | 2 -- .../Skills/Programmatic/AgentInlineSkill.cs | 3 --- .../Skills/Programmatic/AgentInlineSkillResource.cs | 3 --- .../Skills/Programmatic/AgentInlineSkillScript.cs | 3 --- .../Skills/Programmatic/AgentSkillResourceAttribute.cs | 3 --- .../Skills/Programmatic/AgentSkillScriptAttribute.cs | 3 --- 35 files changed, 5 insertions(+), 90 deletions(-) diff --git a/dotnet/samples/02-agents/AgentSkills/Agent_Step01_FileBasedSkills/Agent_Step01_FileBasedSkills.csproj b/dotnet/samples/02-agents/AgentSkills/Agent_Step01_FileBasedSkills/Agent_Step01_FileBasedSkills.csproj index d52c8e294f2..ecbb316344c 100644 --- a/dotnet/samples/02-agents/AgentSkills/Agent_Step01_FileBasedSkills/Agent_Step01_FileBasedSkills.csproj +++ b/dotnet/samples/02-agents/AgentSkills/Agent_Step01_FileBasedSkills/Agent_Step01_FileBasedSkills.csproj @@ -6,7 +6,6 @@ enable enable - $(NoWarn);MAAI001 diff --git a/dotnet/samples/02-agents/AgentSkills/Agent_Step02_CodeDefinedSkills/Agent_Step02_CodeDefinedSkills.csproj b/dotnet/samples/02-agents/AgentSkills/Agent_Step02_CodeDefinedSkills/Agent_Step02_CodeDefinedSkills.csproj index 9eb69fbebab..09da9660d6e 100644 --- a/dotnet/samples/02-agents/AgentSkills/Agent_Step02_CodeDefinedSkills/Agent_Step02_CodeDefinedSkills.csproj +++ b/dotnet/samples/02-agents/AgentSkills/Agent_Step02_CodeDefinedSkills/Agent_Step02_CodeDefinedSkills.csproj @@ -6,7 +6,6 @@ enable enable - $(NoWarn);MAAI001 diff --git a/dotnet/samples/02-agents/AgentSkills/Agent_Step03_ClassBasedSkills/Agent_Step03_ClassBasedSkills.csproj b/dotnet/samples/02-agents/AgentSkills/Agent_Step03_ClassBasedSkills/Agent_Step03_ClassBasedSkills.csproj index 487949d7329..f27d4ece483 100644 --- a/dotnet/samples/02-agents/AgentSkills/Agent_Step03_ClassBasedSkills/Agent_Step03_ClassBasedSkills.csproj +++ b/dotnet/samples/02-agents/AgentSkills/Agent_Step03_ClassBasedSkills/Agent_Step03_ClassBasedSkills.csproj @@ -6,7 +6,7 @@ enable enable - $(NoWarn);MAAI001;IDE0051 + $(NoWarn);IDE0051 diff --git a/dotnet/samples/02-agents/AgentSkills/Agent_Step04_MixedSkills/Agent_Step04_MixedSkills.csproj b/dotnet/samples/02-agents/AgentSkills/Agent_Step04_MixedSkills/Agent_Step04_MixedSkills.csproj index ea87d5646f5..de6fe0bc88c 100644 --- a/dotnet/samples/02-agents/AgentSkills/Agent_Step04_MixedSkills/Agent_Step04_MixedSkills.csproj +++ b/dotnet/samples/02-agents/AgentSkills/Agent_Step04_MixedSkills/Agent_Step04_MixedSkills.csproj @@ -6,7 +6,7 @@ enable enable - $(NoWarn);MAAI001;IDE0051 + $(NoWarn);IDE0051 diff --git a/dotnet/samples/02-agents/AgentSkills/Agent_Step05_SkillsWithDI/Agent_Step05_SkillsWithDI.csproj b/dotnet/samples/02-agents/AgentSkills/Agent_Step05_SkillsWithDI/Agent_Step05_SkillsWithDI.csproj index e46fe9a86a9..80fe3b73a9f 100644 --- a/dotnet/samples/02-agents/AgentSkills/Agent_Step05_SkillsWithDI/Agent_Step05_SkillsWithDI.csproj +++ b/dotnet/samples/02-agents/AgentSkills/Agent_Step05_SkillsWithDI/Agent_Step05_SkillsWithDI.csproj @@ -6,7 +6,7 @@ enable enable - $(NoWarn);MAAI001;CA1812;IDE0051 + $(NoWarn);CA1812;IDE0051 diff --git a/dotnet/samples/02-agents/AgentSkills/Agent_Step06_McpBasedSkills/Agent_Step06_McpBasedSkills.csproj b/dotnet/samples/02-agents/AgentSkills/Agent_Step06_McpBasedSkills/Agent_Step06_McpBasedSkills.csproj index ace1538c3d8..b2fd42ccd61 100644 --- a/dotnet/samples/02-agents/AgentSkills/Agent_Step06_McpBasedSkills/Agent_Step06_McpBasedSkills.csproj +++ b/dotnet/samples/02-agents/AgentSkills/Agent_Step06_McpBasedSkills/Agent_Step06_McpBasedSkills.csproj @@ -6,7 +6,7 @@ enable enable - $(NoWarn);MAAI001;MCPEXP001 + $(NoWarn);MCPEXP001 diff --git a/dotnet/samples/02-agents/AgentSkills/Agent_Step07_SkillsAutoApproval/Agent_Step07_SkillsAutoApproval.csproj b/dotnet/samples/02-agents/AgentSkills/Agent_Step07_SkillsAutoApproval/Agent_Step07_SkillsAutoApproval.csproj index 7e7e9ef0fab..3afd2c2ca79 100644 --- a/dotnet/samples/02-agents/AgentSkills/Agent_Step07_SkillsAutoApproval/Agent_Step07_SkillsAutoApproval.csproj +++ b/dotnet/samples/02-agents/AgentSkills/Agent_Step07_SkillsAutoApproval/Agent_Step07_SkillsAutoApproval.csproj @@ -1,4 +1,4 @@ - + Exe @@ -6,7 +6,6 @@ enable enable - $(NoWarn);MAAI001 diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/AgentInMemorySkillsSource.cs b/dotnet/src/Microsoft.Agents.AI/Skills/AgentInMemorySkillsSource.cs index 464e05fa4dd..94cec231ac2 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/AgentInMemorySkillsSource.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/AgentInMemorySkillsSource.cs @@ -1,11 +1,9 @@ // Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading; using System.Threading.Tasks; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -13,7 +11,6 @@ namespace Microsoft.Agents.AI; /// /// A skill source that holds instances in memory. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentInMemorySkillsSource : AgentSkillsSource { private readonly List _skills; diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkill.cs b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkill.cs index 38342d68164..55a256bb9ec 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkill.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkill.cs @@ -1,9 +1,7 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; -using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; @@ -20,7 +18,6 @@ namespace Microsoft.Agents.AI; /// Skill metadata follows the Agent Skills specification. /// /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public abstract class AgentSkill { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillFrontmatter.cs b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillFrontmatter.cs index df087ff2bbf..136d4d6833a 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillFrontmatter.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillFrontmatter.cs @@ -4,7 +4,6 @@ using System.Diagnostics.CodeAnalysis; using System.Text.RegularExpressions; using Microsoft.Extensions.AI; -using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; @@ -23,7 +22,6 @@ namespace Microsoft.Agents.AI; /// and throws if either value is invalid. /// /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentSkillFrontmatter { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillResource.cs b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillResource.cs index b3cfc3f1176..b1f8e0616cb 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillResource.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillResource.cs @@ -1,10 +1,8 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -12,7 +10,6 @@ namespace Microsoft.Agents.AI; /// /// Abstract base class for skill resources. A resource provides supplementary content (references, assets) to a skill. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public abstract class AgentSkillResource { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillScript.cs b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillScript.cs index bbfbcb86167..f816804e94d 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillScript.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillScript.cs @@ -1,11 +1,9 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; using System.Text.Json; using System.Threading; using System.Threading.Tasks; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -13,7 +11,6 @@ namespace Microsoft.Agents.AI; /// /// Abstract base class for skill scripts. A script represents an executable action associated with a skill. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public abstract class AgentSkillScript { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProvider.cs b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProvider.cs index 74322af5040..c1564aeb9a0 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProvider.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProvider.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Security; using System.Text; @@ -12,7 +11,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -40,7 +38,6 @@ namespace Microsoft.Agents.AI; /// parameter and defaults to the caller retaining ownership. /// /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed partial class AgentSkillsProvider : AIContextProvider, IDisposable { /// The name of the tool that loads a skill. diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProviderBuilder.cs b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProviderBuilder.cs index 87b2056056c..e8ccf9ffb81 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProviderBuilder.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProviderBuilder.cs @@ -2,9 +2,7 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using Microsoft.Extensions.Logging; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -39,7 +37,6 @@ namespace Microsoft.Agents.AI; /// .Build(); /// /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentSkillsProviderBuilder { private readonly List> _sourceFactories = []; diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProviderOptions.cs b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProviderOptions.cs index 20b5af51978..de9f764b476 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProviderOptions.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsProviderOptions.cs @@ -1,14 +1,10 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; -using Microsoft.Shared.DiagnosticIds; - namespace Microsoft.Agents.AI; /// /// Configuration options for . /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentSkillsProviderOptions { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsSource.cs b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsSource.cs index e5d730d5e94..e348144bf29 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsSource.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsSource.cs @@ -2,10 +2,8 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; -using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; @@ -18,7 +16,6 @@ namespace Microsoft.Agents.AI; /// resources they own. The default implementation does nothing; sources /// that hold disposable resources override it. Decorators dispose the source they wrap. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public abstract class AgentSkillsSource : IDisposable { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsSourceContext.cs b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsSourceContext.cs index 1a94a5f74ec..04b0b2e15fb 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsSourceContext.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/AgentSkillsSourceContext.cs @@ -1,7 +1,5 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -10,7 +8,6 @@ namespace Microsoft.Agents.AI; /// Provides contextual information about the agent and session to an /// when retrieving skills. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentSkillsSourceContext { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/AggregatingAgentSkillsSource.cs b/dotnet/src/Microsoft.Agents.AI/Skills/AggregatingAgentSkillsSource.cs index 57b2620733c..d918660827a 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/AggregatingAgentSkillsSource.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/AggregatingAgentSkillsSource.cs @@ -1,10 +1,8 @@ // Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -16,7 +14,6 @@ namespace Microsoft.Agents.AI; /// Skills from each child source are returned in the order the sources were registered, /// with each source's skills appended sequentially. No deduplication or filtering is applied. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AggregatingAgentSkillsSource : AgentSkillsSource { private readonly IEnumerable _sources; diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/CachingAgentSkillsSource.cs b/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/CachingAgentSkillsSource.cs index f4354cbccaf..6f938edb228 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/CachingAgentSkillsSource.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/CachingAgentSkillsSource.cs @@ -3,10 +3,8 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; -using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; @@ -31,7 +29,6 @@ namespace Microsoft.Agents.AI; /// that fails is not cached and subsequent calls will retry. /// /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class CachingAgentSkillsSource : DelegatingAgentSkillsSource { private const string SharedCacheKey = "CachingAgentSkillsSource-SharedCacheKey"; diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/CachingAgentSkillsSourceOptions.cs b/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/CachingAgentSkillsSourceOptions.cs index b19c4b60134..81f50067150 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/CachingAgentSkillsSourceOptions.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/CachingAgentSkillsSourceOptions.cs @@ -1,15 +1,12 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; -using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; /// /// Options for configuring . /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class CachingAgentSkillsSourceOptions { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/DeduplicatingAgentSkillsSource.cs b/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/DeduplicatingAgentSkillsSource.cs index 42503289df2..52f5661b3b3 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/DeduplicatingAgentSkillsSource.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/DeduplicatingAgentSkillsSource.cs @@ -2,19 +2,16 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; /// /// A skill source decorator that removes duplicate skills by name, keeping only the first occurrence. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed partial class DeduplicatingAgentSkillsSource : DelegatingAgentSkillsSource { private readonly ILogger _logger; diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/DelegatingAgentSkillsSource.cs b/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/DelegatingAgentSkillsSource.cs index c12fef729fb..231822248f3 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/DelegatingAgentSkillsSource.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/DelegatingAgentSkillsSource.cs @@ -1,10 +1,8 @@ // Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -18,7 +16,6 @@ namespace Microsoft.Agents.AI; /// enabling the creation of source pipelines where each layer can add functionality (caching, deduplication, /// filtering, etc.) while delegating core operations to an underlying source. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public abstract class DelegatingAgentSkillsSource : AgentSkillsSource { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/FilteringAgentSkillsSource.cs b/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/FilteringAgentSkillsSource.cs index e8a98cdc38e..6ab127b4ab0 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/FilteringAgentSkillsSource.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/Decorators/FilteringAgentSkillsSource.cs @@ -2,12 +2,10 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -19,7 +17,6 @@ namespace Microsoft.Agents.AI; /// Skills for which the predicate returns are included in the result; /// skills for which it returns are excluded and logged at debug level. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed partial class FilteringAgentSkillsSource : DelegatingAgentSkillsSource { private readonly Func _predicate; diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkill.cs b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkill.cs index 36636a4a851..6e4b18af52b 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkill.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkill.cs @@ -1,11 +1,9 @@ // Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading; using System.Threading.Tasks; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -13,7 +11,6 @@ namespace Microsoft.Agents.AI; /// /// An discovered from a filesystem directory backed by a SKILL.md file. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentFileSkill : AgentSkill { private readonly IReadOnlyList _resources; diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillFilterContext.cs b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillFilterContext.cs index 34937baed54..899a7a064d3 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillFilterContext.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillFilterContext.cs @@ -1,7 +1,5 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -11,7 +9,6 @@ namespace Microsoft.Agents.AI; /// and /// predicates. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentFileSkillFilterContext { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillScript.cs b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillScript.cs index 74c0cd2f01a..9bb6fdd798d 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillScript.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillScript.cs @@ -1,11 +1,9 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; using System.Text.Json; using System.Threading; using System.Threading.Tasks; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -13,7 +11,6 @@ namespace Microsoft.Agents.AI; /// /// A file-path-backed skill script. Represents a script file on disk that requires an external runner to run. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentFileSkillScript : AgentSkillScript { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillScriptRunner.cs b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillScriptRunner.cs index 1746150ca2b..b85851987ab 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillScriptRunner.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillScriptRunner.cs @@ -1,11 +1,9 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; using System.Text.Json; using System.Threading; using System.Threading.Tasks; -using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; @@ -23,7 +21,6 @@ namespace Microsoft.Agents.AI; /// Optional service provider for dependency injection. /// Cancellation token. /// The script execution result. -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public delegate Task AgentFileSkillScriptRunner( AgentFileSkill skill, AgentFileSkillScript script, diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillsSource.cs b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillsSource.cs index 9b7770908eb..ae1714f237d 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillsSource.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillsSource.cs @@ -12,7 +12,6 @@ using Microsoft.Extensions.AI; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -26,7 +25,6 @@ namespace Microsoft.Agents.AI; /// directory for files with matching extensions. Invalid resources are skipped with logged warnings. /// Resource and script paths are checked against path traversal and symlink escape attacks. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed partial class AgentFileSkillsSource : AgentSkillsSource { private const string SkillFileName = "SKILL.md"; diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillsSourceOptions.cs b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillsSourceOptions.cs index c9604e166d4..ff0aa1d1d55 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillsSourceOptions.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/File/AgentFileSkillsSourceOptions.cs @@ -2,8 +2,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; @@ -15,7 +13,6 @@ namespace Microsoft.Agents.AI; /// positional constructor or method parameters. New options can be added here /// without breaking existing callers. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentFileSkillsSourceOptions { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentClassSkill.cs b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentClassSkill.cs index 03bae591565..24dedd50a26 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentClassSkill.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentClassSkill.cs @@ -10,7 +10,6 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.AI; -using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; @@ -87,7 +86,6 @@ namespace Microsoft.Agents.AI; /// } /// /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public abstract class AgentClassSkill< [DynamicallyAccessedMembers( DynamicallyAccessedMemberTypes.PublicProperties | diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkill.cs b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkill.cs index 7a5093830fe..4342779de85 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkill.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkill.cs @@ -2,13 +2,11 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.AI; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -25,7 +23,6 @@ namespace Microsoft.Agents.AI; /// resources and scripts before registering the skill with an /// or . /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentInlineSkill : AgentSkill { private readonly string _instructions; diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkillResource.cs b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkillResource.cs index 556cfdc7811..94cd469acd6 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkillResource.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkillResource.cs @@ -1,13 +1,11 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; using System.Reflection; using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.AI; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -15,7 +13,6 @@ namespace Microsoft.Agents.AI; /// /// A skill resource defined in code, backed by either a static value or a delegate. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] internal sealed class AgentInlineSkillResource : AgentSkillResource { private readonly object? _value; diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkillScript.cs b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkillScript.cs index e482cc45acc..b640e08d8e6 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkillScript.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentInlineSkillScript.cs @@ -2,13 +2,11 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Reflection; using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.AI; -using Microsoft.Shared.DiagnosticIds; using Microsoft.Shared.Diagnostics; namespace Microsoft.Agents.AI; @@ -16,7 +14,6 @@ namespace Microsoft.Agents.AI; /// /// A skill script backed by a delegate. /// -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] internal sealed class AgentInlineSkillScript : AgentSkillScript { private readonly AIFunction _function; diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentSkillResourceAttribute.cs b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentSkillResourceAttribute.cs index 7094ab57cef..febd767847b 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentSkillResourceAttribute.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentSkillResourceAttribute.cs @@ -2,8 +2,6 @@ using System; using System.ComponentModel; -using System.Diagnostics.CodeAnalysis; -using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; @@ -45,7 +43,6 @@ namespace Microsoft.Agents.AI; /// /// [AttributeUsage(AttributeTargets.Property | AttributeTargets.Method, AllowMultiple = false, Inherited = false)] -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentSkillResourceAttribute : Attribute { /// diff --git a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentSkillScriptAttribute.cs b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentSkillScriptAttribute.cs index afb76c108d7..93fef3ac2e2 100644 --- a/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentSkillScriptAttribute.cs +++ b/dotnet/src/Microsoft.Agents.AI/Skills/Programmatic/AgentSkillScriptAttribute.cs @@ -2,8 +2,6 @@ using System; using System.ComponentModel; -using System.Diagnostics.CodeAnalysis; -using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Agents.AI; @@ -44,7 +42,6 @@ namespace Microsoft.Agents.AI; /// /// [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)] -[Experimental(DiagnosticIds.Experiments.AgentsAIExperiments)] public sealed class AgentSkillScriptAttribute : Attribute { /// From bdef791cba17285a3431ddcbffcc4425c6dcacff Mon Sep 17 00:00:00 2001 From: SergeyMenshykh Date: Wed, 1 Jul 2026 15:49:32 +0100 Subject: [PATCH 2/3] Restore MAAI001 suppression for Step07 sample (still uses ToolApproval experimental APIs) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../Agent_Step07_SkillsAutoApproval.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/dotnet/samples/02-agents/AgentSkills/Agent_Step07_SkillsAutoApproval/Agent_Step07_SkillsAutoApproval.csproj b/dotnet/samples/02-agents/AgentSkills/Agent_Step07_SkillsAutoApproval/Agent_Step07_SkillsAutoApproval.csproj index 3afd2c2ca79..4da23d66392 100644 --- a/dotnet/samples/02-agents/AgentSkills/Agent_Step07_SkillsAutoApproval/Agent_Step07_SkillsAutoApproval.csproj +++ b/dotnet/samples/02-agents/AgentSkills/Agent_Step07_SkillsAutoApproval/Agent_Step07_SkillsAutoApproval.csproj @@ -6,6 +6,7 @@ enable enable + $(NoWarn);MAAI001 From a1e57a4a0c2b61946f9d46e47ad6456963e8d5fb Mon Sep 17 00:00:00 2001 From: SergeyMenshykh Date: Wed, 1 Jul 2026 17:45:26 +0100 Subject: [PATCH 3/3] Keep bare NoWarn placeholder in Step01 and Step02 samples Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../Agent_Step01_FileBasedSkills.csproj | 1 + .../Agent_Step02_CodeDefinedSkills.csproj | 1 + 2 files changed, 2 insertions(+) diff --git a/dotnet/samples/02-agents/AgentSkills/Agent_Step01_FileBasedSkills/Agent_Step01_FileBasedSkills.csproj b/dotnet/samples/02-agents/AgentSkills/Agent_Step01_FileBasedSkills/Agent_Step01_FileBasedSkills.csproj index ecbb316344c..89300e56b04 100644 --- a/dotnet/samples/02-agents/AgentSkills/Agent_Step01_FileBasedSkills/Agent_Step01_FileBasedSkills.csproj +++ b/dotnet/samples/02-agents/AgentSkills/Agent_Step01_FileBasedSkills/Agent_Step01_FileBasedSkills.csproj @@ -6,6 +6,7 @@ enable enable + $(NoWarn); diff --git a/dotnet/samples/02-agents/AgentSkills/Agent_Step02_CodeDefinedSkills/Agent_Step02_CodeDefinedSkills.csproj b/dotnet/samples/02-agents/AgentSkills/Agent_Step02_CodeDefinedSkills/Agent_Step02_CodeDefinedSkills.csproj index 09da9660d6e..66139b0a10a 100644 --- a/dotnet/samples/02-agents/AgentSkills/Agent_Step02_CodeDefinedSkills/Agent_Step02_CodeDefinedSkills.csproj +++ b/dotnet/samples/02-agents/AgentSkills/Agent_Step02_CodeDefinedSkills/Agent_Step02_CodeDefinedSkills.csproj @@ -6,6 +6,7 @@ enable enable + $(NoWarn);