Skip to main content

Dot access

Use dot access to read nested fields.
input.project_id
agent.summarize.summary
schema.shared.status
model.fast

Array pluck

Use .*. to read a field from every item in an array.
input.attachments.*.video_url
This turns an array into an array of field values. Missing fields, non-object items, and null values become null. If a plucked field is itself an array, the result is flattened one level. Use .**. to drop null plucked values, or .***. to require all plucked values to be non-null and the same runtime type.
agent video_summarizer for video_url in dynamic.video_recording_answers.answers.*.url {
    instruction: "Summarize {{ video_url }}"
}

Model usage

Agents reference named model profiles.
model: model.fast
Model inference overrides can be placed in a block after the model reference.
model: model.fast {
    inference {
        temperature: 0.2
        max_tokens: 1000
    }
}

Tool calls

Tool calls use bindings {} for runtime values.
call tool.fetch_task {
    bindings {
        task_id: input.task_id
    }
}

Inline separators

Use commas for inline arrays, tuples, objects, and enums:
["a", "b", "c"]
(string, number)
{ title: string, score: number }
enum { draft, ready, published }
When object or enum entries are on separate lines, commas are not required.