ESM
import { ParallelWorkflow } from "@arcgis/ai-components/agent-utils/workflows/ParallelWorkflow.js";
Inheritance
ParallelWorkflowBaseWorkflow<TState>Accessor.js
Since
ArcGIS Maps SDK for JavaScript 5.1

ParallelWorkflow fans out execution to multiple agents and merges branch outputs.

Use in the following scenarios:

  • Branches can run independently from the same input,
  • You want fan-out/fan-in behavior.

How it works:

  • Fan out - every agent receives the same input snapshot,
  • Each branch collects its result in a hidden state key,
  • Fan in - merge outputs in declared agent order.

Merge rule:

  • If two branches set the same shared key to different values, an error is thrown, as this indicates a conflict the workflow cannot resolve on its own.

Constructors

Constructor

Constructor

Parameters

ParameterTypeDescriptionRequired
properties

Properties

PropertyTypeClass

agents

Property
Type
BaseAgentLike[]

Agents to run in parallel from the same input snapshot.

Methods

MethodSignatureClass
protected
buildEdges(agents: BaseAgentLike<TState>[]): GraphEdge<AgentGraphState<TState>>[]
protected
buildNodes(agents: BaseAgentLike<TState>[]): GraphNodes<AgentGraphState<TState>>
generate(): WorkflowGenerateResult<TState>
getAgents(): BaseAgentLike<TState>[]
protected
getEntryNode(_agents: BaseAgentLike<TState>[]): string
protected
isTerminalAgent(_agents: BaseAgentLike<TState>[], _index: number): boolean
inherited protected
validateAgents(agents: BaseAgentLike<TState>[]): void

buildEdges

protected Method
Signature
buildEdges (agents: BaseAgentLike<TState>[]): GraphEdge<AgentGraphState<TState>>[]

Builds the workflow-specific edges.

Parameters

ParameterTypeDescriptionRequired
agents
Returns
GraphEdge<AgentGraphState>[]

buildNodes

protected Method
Signature
buildNodes (agents: BaseAgentLike<TState>[]): GraphNodes<AgentGraphState<TState>>

Builds the workflow's graph nodes.

Node ids use the agent id plus its position (agent.id_index) instead of only the raw agent id. That prevents collisions when the same agent instance is used multiple times.

Parameters

ParameterTypeDescriptionRequired
agents
Returns
GraphNodes<AgentGraphState>

generate

Method
Signature
generate (): WorkflowGenerateResult<TState>

Generates the workflow's graph and shared workspace based on the defined agents and their schemas. This method is called by the WorkflowAgent when it generates its graph, and it orchestrates the creation of the workflow's structure, including validating the agents, deriving shared state from their schemas, and building the nodes and edges of the graph.

getAgents

Method
Signature
getAgents (): BaseAgentLike<TState>[]

A list of agents that are part of this workflow.

Returns
BaseAgentLike[]

getEntryNode

protected Method
Signature
getEntryNode (_agents: BaseAgentLike<TState>[]): string

Returns the id of the first node in the workflow graph.

Parameters

ParameterTypeDescriptionRequired
_agents
Returns
string

isTerminalAgent

protected Method
Signature
isTerminalAgent (_agents: BaseAgentLike<TState>[], _index: number): boolean

Returns whether the agent at this position should expose terminal runtime fields.

Parameters

ParameterTypeDescriptionRequired
_agents
_index
Returns
boolean

validateAgents

inheritedprotected Method
Signature
validateAgents (agents: BaseAgentLike<TState>[]): void
Inherited from: BaseWorkflow

Validates the workflow configuration and throws if invalid.

Parameters

ParameterTypeDescriptionRequired
agents
Returns
void

Type definitions

ParallelWorkflowConstructProperties

Type definition
Type parameters
<TState extends AgentData>
Supertypes
Pick<ParallelWorkflow‚ "agents">