ConcurrentWorkflowBuilder Class

Definition

Fluent builder for concurrent agent workflows: a fan-out start that broadcasts the incoming messages to every participating agent, a per-agent accumulator that batches each agent's outgoing messages, and a fan-in aggregator that reduces them into a single output list.

public sealed class ConcurrentWorkflowBuilder : Microsoft.Agents.AI.Workflows.OrchestrationBuilderBase<Microsoft.Agents.AI.Workflows.ConcurrentWorkflowBuilder>
type ConcurrentWorkflowBuilder = class
    inherit OrchestrationBuilderBase<ConcurrentWorkflowBuilder>
Public NotInheritable Class ConcurrentWorkflowBuilder
Inherits OrchestrationBuilderBase(Of ConcurrentWorkflowBuilder)
Inheritance

Remarks

When no explicit output designations are made, the default is the Python-aligned shape: the terminal aggregator is the workflow output, and every participating agent (plus its per-agent accumulator) is designated as an intermediate output source. Calling WithOutputFrom(IEnumerable<AIAgent>) or WithIntermediateOutputFrom(IEnumerable<AIAgent>) at all suppresses these defaults.

Constructors

Name Description
ConcurrentWorkflowBuilder(IEnumerable<AIAgent>)

Initializes a new ConcurrentWorkflowBuilder with the given participating agents.

Properties

Name Description
Description

Optional workflow description; applied to the inner WorkflowBuilder at Build().

(Inherited from OrchestrationBuilderBase<TBuilder>)
Name

Optional workflow name; applied to the inner WorkflowBuilder at Build().

(Inherited from OrchestrationBuilderBase<TBuilder>)
OutputDesignations

Memoized output designations. null means the user has not made any explicit designation, and the orchestration-specific defaults will be applied at Build() time. A non-null (possibly empty) map means the user took control and only these designations will be replayed onto the inner WorkflowBuilder. An entry's value is the set of tags requested for the agent — an empty set encodes a terminal-only designation.

(Inherited from OrchestrationBuilderBase<TBuilder>)

Methods

Name Description
ApplyMetadata(WorkflowBuilder)

Applies the optional Name and Description to builder. Subclasses should call this from their Build() implementation.

(Inherited from OrchestrationBuilderBase<TBuilder>)
ApplyOutputDesignations(WorkflowBuilder, IReadOnlyDictionary<AIAgent,ExecutorBinding>, String, Action)

Applies the user's memoized output designations to builder, or invokes applyDefaults if the user made no explicit designation.

(Inherited from OrchestrationBuilderBase<TBuilder>)
Build()

Builds the configured concurrent workflow.

WithAggregator(Func<IList<List<ChatMessage>>,List<ChatMessage>>)

Sets the aggregator function. If not called, defaults to returning the last message from each agent that produced at least one message.

WithDescription(String)

Sets the description for the workflow.

(Inherited from OrchestrationBuilderBase<TBuilder>)
WithIntermediateOutputFrom(IEnumerable<AIAgent>)

Designates the given agents as sources of intermediate workflow output. See WithOutputFrom(IEnumerable<AIAgent>) for the defaults-suppression semantics.

(Inherited from OrchestrationBuilderBase<TBuilder>)
WithName(String)

Sets the human-readable name for the workflow.

(Inherited from OrchestrationBuilderBase<TBuilder>)
WithOutputFrom(IEnumerable<AIAgent>)

Designates the given agents as sources of terminal workflow output. Calling any output-designation method (this or WithIntermediateOutputFrom(IEnumerable<AIAgent>)) suppresses the orchestration-specific defaults: only the user-specified designations reach the inner WorkflowBuilder.

(Inherited from OrchestrationBuilderBase<TBuilder>)

Applies to