Skip to main content
Expressions appear in provider settings, model settings, dynamic blocks, agent instructions, bindings, and final outputs.

Literals

References

Use .*. to pluck a field from each item in an array. The result is an array of the selected values.
For example, if attachments is [{ video_url: "a.mp4" }, { video_url: "b.mp4" }], then input.attachments.*.video_url evaluates to ["a.mp4", "b.mp4"]. Missing fields, non-object items, and null values become null. Use .**. to filter those null values out, or .***. to reject null and mixed-type plucked values. These operators are only valid on arrays.

Arrays and objects

Dynamic blocks

A dynamic block builds an object at runtime. Each field is evaluated as a normal expression.
Dynamic fields may contain literals, object values, resource reads, prompt renders, agent outputs, tool calls, and other supported runtime expressions.

Assets

Use asset to attach model-supported assets to an instruction. The source can be a URL, a data:*;base64,... value, a runtime string expression, or an array of strings.
Assets can also be stored in dynamic blocks and referenced later.
Supported asset options are: Model profiles must declare the asset kinds they support with assets.

Tool calls

Use bindings {} to assign runtime values to the tool input schema.

Resources and prompts

Context continuation

context: agent.name passes the prior agent’s message history so another agent can continue the work.