diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows/AgentWorkflowBuilder.cs b/dotnet/src/Microsoft.Agents.AI.Workflows/AgentWorkflowBuilder.cs index 007920f6bc..8321efd99e 100644 --- a/dotnet/src/Microsoft.Agents.AI.Workflows/AgentWorkflowBuilder.cs +++ b/dotnet/src/Microsoft.Agents.AI.Workflows/AgentWorkflowBuilder.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using Microsoft.Extensions.AI; using Microsoft.Shared.Diagnostics; @@ -104,7 +103,6 @@ public static partial class AgentWorkflowBuilder /// The must be capable of understanding those provided. If the agent /// ignores the tools or is otherwise unable to advertize them to the underlying provider, handoffs will not occur. /// - [Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public static HandoffWorkflowBuilder CreateHandoffBuilderWith(AIAgent initialAgent) { Throw.IfNull(initialAgent); @@ -150,7 +148,6 @@ public static partial class AgentWorkflowBuilder /// Creates a new with the given . /// The LLM-powered manager agent that coordinates the team. /// The builder for creating a Magentic workflow. - [Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public static MagenticWorkflowBuilder CreateMagenticBuilderWith(AIAgent managerAgent) { Throw.IfNull(managerAgent); diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows/HandoffWorkflowBuilder.cs b/dotnet/src/Microsoft.Agents.AI.Workflows/HandoffWorkflowBuilder.cs index 30ec899edc..906ebab885 100644 --- a/dotnet/src/Microsoft.Agents.AI.Workflows/HandoffWorkflowBuilder.cs +++ b/dotnet/src/Microsoft.Agents.AI.Workflows/HandoffWorkflowBuilder.cs @@ -15,11 +15,6 @@ using ExecutorFactoryFunc = System.Func [ExcludeFromCodeCoverage] // This is obsolete, and 1:1 equivalent to HandoffWorkflowBuilder (no "s") [Obsolete("Prefer HandoffWorkflowBuilder (no 's') instead, which has the same API but the preferred name. This will be removed in a future release before GA.")] @@ -30,7 +25,6 @@ public sealed class HandoffsWorkflowBuilder(AIAgent initialAgent) : HandoffWorkf } /// -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public sealed class HandoffWorkflowBuilder(AIAgent initialAgent) : HandoffWorkflowBuilderCore(initialAgent) { } @@ -38,7 +32,6 @@ public sealed class HandoffWorkflowBuilder(AIAgent initialAgent) : HandoffWorkfl /// /// Provides a builder for specifying the handoff relationships between agents and building the resulting workflow. /// -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public class HandoffWorkflowBuilderCore : OrchestrationBuilderBase where TBuilder : HandoffWorkflowBuilderCore { diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticPlanReviewRequest.cs b/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticPlanReviewRequest.cs index 7e66cd4c1a..fd7b82afe6 100644 --- a/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticPlanReviewRequest.cs +++ b/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticPlanReviewRequest.cs @@ -1,7 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; using Microsoft.Extensions.AI; @@ -16,7 +15,6 @@ namespace Microsoft.Agents.AI.Workflows; /// contain the latest progress ledger that determined that no progress has been made or the workflow was in /// a loop. /// Whether the workflow is currently stalled. -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public record MagenticPlanReviewRequest(ChatMessage Plan, MagenticProgressLedger? CurrentProgress, bool IsStalled) { /// diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticPlanReviewResponse.cs b/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticPlanReviewResponse.cs index 952cd9fade..0a72ccfa0f 100644 --- a/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticPlanReviewResponse.cs +++ b/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticPlanReviewResponse.cs @@ -1,7 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using Microsoft.Extensions.AI; namespace Microsoft.Agents.AI.Workflows; @@ -13,7 +12,6 @@ namespace Microsoft.Agents.AI.Workflows; /// /// Review feedback for a generated plan. Empty if the plan is approved as-is and changes are requested. /// -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public record MagenticPlanReviewResponse(List Review) { internal bool IsApproved => this.Review.Count == 0; diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticProgressLedger.cs b/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticProgressLedger.cs index 65058e7430..698c2e890c 100644 --- a/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticProgressLedger.cs +++ b/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticProgressLedger.cs @@ -14,7 +14,6 @@ namespace Microsoft.Agents.AI.Workflows; /// /// Maintains a ledger of progress made by the Magentic workflow. /// -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public class MagenticProgressLedger { internal static readonly BooleanProgressLedgerSlot IsRequestSatisfiedSlot = new("is_request_satisfied", @@ -76,7 +75,7 @@ public class MagenticProgressLedger this.InstructionOrQuestion = instructionOrQuestion!; } - // TODO: To what extent do we want to enforce that the additional questions are also answered? + // TODO: To what extent do we want to enforce that the additional questions are also answered? return requiredQuestionsAnswered; } diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticWorkflowBuilder.cs b/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticWorkflowBuilder.cs index c75a3d045b..6ae123c55d 100644 --- a/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticWorkflowBuilder.cs +++ b/dotnet/src/Microsoft.Agents.AI.Workflows/MagenticWorkflowBuilder.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; using Microsoft.Agents.AI.Workflows.Specialized.Magentic; @@ -27,7 +26,6 @@ namespace Microsoft.Agents.AI.Workflows; /// not supported on the ManagerAgent. /// /// -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public class MagenticWorkflowBuilder(AIAgent managerAgent) : OrchestrationBuilderBase { private readonly List _team = new(); diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/HandoffAgentExecutor.cs b/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/HandoffAgentExecutor.cs index 02c48ea48d..914a96bfbe 100644 --- a/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/HandoffAgentExecutor.cs +++ b/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/HandoffAgentExecutor.cs @@ -81,7 +81,6 @@ internal sealed record StateRef(string Key, string? ScopeName) } /// Executor used to represent an agent in a handoffs workflow, responding to events. -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] internal sealed class HandoffAgentExecutor : StatefulExecutor { diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/HandoffMessagesFilter.cs b/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/HandoffMessagesFilter.cs index 61eebc0e2b..2ca73ca3d8 100644 --- a/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/HandoffMessagesFilter.cs +++ b/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/HandoffMessagesFilter.cs @@ -2,12 +2,10 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using Microsoft.Extensions.AI; namespace Microsoft.Agents.AI.Workflows.Specialized; -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] internal sealed class HandoffMessagesFilter { private readonly HandoffToolCallFilteringBehavior _filteringBehavior; @@ -17,7 +15,6 @@ internal sealed class HandoffMessagesFilter this._filteringBehavior = filteringBehavior; } - [Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] internal static bool IsHandoffFunctionName(string name) { return name.StartsWith(HandoffWorkflowBuilder.FunctionPrefix, StringComparison.Ordinal); diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/Magentic/MagenticOrchestrator.cs b/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/Magentic/MagenticOrchestrator.cs index 30a93c6850..ff85a65c71 100644 --- a/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/Magentic/MagenticOrchestrator.cs +++ b/dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/Magentic/MagenticOrchestrator.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Text.Json.Serialization; using System.Threading; @@ -18,7 +17,6 @@ namespace Microsoft.Agents.AI.Workflows.Specialized.Magentic; [JsonDerivedType(typeof(MagenticPlanCreatedEvent))] [JsonDerivedType(typeof(MagenticReplannedEvent))] [JsonDerivedType(typeof(MagenticProgressLedgerUpdatedEvent))] -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public abstract class MagenticOrchestratorEvent(object? data) : WorkflowEvent(data) { } @@ -27,7 +25,6 @@ public abstract class MagenticOrchestratorEvent(object? data) : WorkflowEvent(da /// Represents the creation of the initial plan /// /// -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public sealed class MagenticPlanCreatedEvent(ChatMessage fullTaskLeger) : MagenticOrchestratorEvent(fullTaskLeger) { /// @@ -40,7 +37,6 @@ public sealed class MagenticPlanCreatedEvent(ChatMessage fullTaskLeger) : Magent /// Represents the creation of a new plan in response to a stall. /// /// -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public sealed class MagenticReplannedEvent(ChatMessage fullTaskLeger) : MagenticOrchestratorEvent(fullTaskLeger) { /// @@ -53,7 +49,6 @@ public sealed class MagenticReplannedEvent(ChatMessage fullTaskLeger) : Magentic /// Represents an update to the when running a coordination round. /// /// -[Experimental(DiagnosticConstants.ExperimentalFeatureDiagnostic)] public sealed class MagenticProgressLedgerUpdatedEvent(MagenticProgressLedger progressLedger) : MagenticOrchestratorEvent(progressLedger) { /// @@ -138,7 +133,6 @@ internal class MagenticOrchestrator(AIAgent managerAgent, List team, Ta to the conversation and enters the inner loop. - If revision requested, append the review comments to the chat history, trigger replanning via the manager, emit a REPLANNED event, then run the outer loop. - */ if (this._taskContext == null || this._taskContext.TaskLedger == null) {