▾
import { LoopWorkflow } from "@arcgis/ai-components/agent-utils/workflows/LoopWorkflow.js";- Inheritance
- LoopWorkflow→
BaseWorkflow<TState>
- Since
- ArcGIS Maps SDK for JavaScript 5.1
LoopWorkflow repeatedly executes an inner workflow until a stop condition is met.
Use in the following scenarios:
- You need retry/refine loops,
- You want iterative planning and execution.
How it works:
- Runs the inner
workflow, - Evaluates
decideContinue(state, config), - If true, runs again; if false (or unset), stops.
Constructors
Properties
| Property | Type | Class |
|---|---|---|
| | ||
| |
Methods
| Method | Signature | Class |
|---|---|---|
| protected | buildEdges(): GraphEdge<AgentGraphState<TState>>[] | |
| inherited protected | buildNodes(agents: BaseAgentLike<TState>[]): GraphNodes<AgentGraphState<TState>> | |
| generate(parameter0?: WorkflowGenerateOptions<TState>): WorkflowGenerateResult<TState> | | |
| getAgents(): BaseAgentLike<TState>[] | | |
| protected | getEntryNode(): string | |
| protected | isTerminalAgent(): boolean | |
| inherited protected | validateAgents(agents: BaseAgentLike<TState>[]): void |
buildEdges
- Signature
-
buildEdges (): GraphEdge<AgentGraphState<TState>>[]
Builds the workflow-specific edges.
- Returns
- GraphEdge<AgentGraphState
>[]
buildNodes
- 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
| Parameter | Type | Description | Required |
|---|---|---|---|
| agents | | |
- Returns
- GraphNodes<AgentGraphState
>
generate
- Signature
-
generate (parameter0?: WorkflowGenerateOptions<TState>): WorkflowGenerateResult<TState>
Generates the workflow's graph and shared workspace based on its agents and optional boundary schemas.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| parameter0 | | |
- Returns
- WorkflowGenerateResult
getAgents
- Signature
-
getAgents (): BaseAgentLike<TState>[]
Returns the agents coordinated by this workflow.
- Returns
- BaseAgentLike
[]
getEntryNode
- Signature
-
getEntryNode (): string
Returns the id of the first node in the workflow graph.
- Returns
- string
isTerminalAgent
- Signature
-
isTerminalAgent (): boolean
Indicates whether the agent at index is terminal and should expose terminal runtime fields in workflow state.
- Returns
- boolean
validateAgents
- Signature
-
validateAgents (agents: BaseAgentLike<TState>[]): void
Throws if the workflow contains no agents. Concrete workflow classes may add validation for their requirements.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| agents | | |
- Returns
- void
Type definitions
LoopDecider
Loop continuation predicate. Return true to run another iteration.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| state | Current workflow graph state. | | |
| config | Optional execution configuration. | |
LoopWorkflowConstructProperties
- Type parameters
- <TState extends AgentData>
- Supertypes
- Pick<LoopWorkflow
‚ "decideContinue" | "workflow">