Skip to main content

Interface: StepConfig

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:77

Configuration for a single workflow step node.

Exactly one of tool, gmi, human, extension, or subgraph must be provided to specify the execution strategy. All remaining fields are optional policies.

Properties

discovery?

optional discovery: DiscoveryPolicy

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:100

Capability discovery policy applied before execution.


effectClass?

optional effectClass: "external" | "human" | "pure" | "read" | "write"

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:116

Side-effect classification used by the runtime for scheduling decisions.


extension?

optional extension: object

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:94

Call a method on a registered extension.

extensionId

extensionId: string

method

method: string


gmi?

optional gmi: object

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:84

General Model Invocation config. executionMode is always overridden to 'single_turn' inside a workflow to keep execution deterministic.

executionMode?

optional executionMode: "single_turn"

Ignored at runtime — always coerced to 'single_turn' by the workflow compiler.

instructions

instructions: string

maxTokens?

optional maxTokens: number

Hard cap on LLM output tokens for this step.


guardrails?

optional guardrails: GuardrailPolicy

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:102

Declarative guardrail policy applied to input and/or output.


human?

optional human: object

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:92

Human-in-the-loop step; suspends the run until a human provides a response.

prompt

prompt: string


memory?

optional memory: MemoryPolicy

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:98

Memory read/write policy for this step.


onFailure?

optional onFailure: "abort" | "skip" | "retry"

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:106

What to do when the step fails.


outputAs?

optional outputAs: string

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:126

Optional artifact key name. When set, this step's successful output is promoted into state.artifacts[outputAs] (the value returned from invoke()). When omitted, the step's output is promoted into state.artifacts[<stepId>] by default. Use this to make your final step populate a key that matches the shape of your .returns() schema — e.g. step('publish', { tool: '...', outputAs: 'publishedTo' }) when .returns(z.object({ publishedTo: z.array(z.string()) })).


requiresApproval?

optional requiresApproval: boolean

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:104

When true, execution suspends and waits for human approval before proceeding.


retryPolicy?

optional retryPolicy: object

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:108

Automatic retry configuration. Only used when onFailure is 'retry'.

backoff

backoff: "exponential" | "linear" | "fixed"

backoffMs

backoffMs: number

maxAttempts

maxAttempts: number


subgraph?

optional subgraph: CompiledExecutionGraph

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:96

Delegate to a previously compiled sub-workflow or agent graph.


timeout?

optional timeout: number

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:114

Maximum wall-clock execution time in milliseconds.


tool?

optional tool: string

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:79

Name of a registered ITool to invoke.


voice?

optional voice: VoiceNodeConfig

Defined in: packages/agentos/src/orchestration/builders/WorkflowBuilder.ts:133

Voice pipeline node configuration. When provided alongside executorConfig.type: 'voice', these settings are forwarded to the VoiceNodeExecutor. Typically set via the voiceNode() builder rather than directly through StepConfig.