Skip to content

Expressions

Expressions are embedded in ${{ }} within any template string:

prompt: "Hello ${{ inputs.name }}, iteration ${{ run.iteration }}"

Strings without ${{ }} are literal values.

RootScopeDescription
inputsAlwaysWorkflow input parameters
stepsAlwaysResults from previous steps in scope
envAlwaysEnvironment variables
runInside loopsLoop iteration context

Dot notation traverses objects and arrays:

inputs.name → input value
inputs.config.timeout → nested field
steps.review.result → full step result
steps.judge.result.count → field in structured output
steps.list.result.0.name → array index access
env.CI → environment variable
run.iteration → loop counter (1-based)
OperatorExample
== !=steps.x.result == 'ok'
> >= < <=steps.x.result.count > 0
&& ||a && b
!!steps.x.result.passed
FunctionDescriptionExample
format(fmt, ...)String formattingformat('{0}:{1}', a, b)
toJSON(value)JSON stringificationtoJSON(steps.data.result)
join(array, delim)Join arrayjoin(steps.x.result.tags, ', ')
len(value)Count string chars, array items, or object keyslen(steps.review.result.findings)

null, true, false, numbers (42, 3.14), strings ('single quoted')