Essentials
The three cards of every workflow: Start (variables), Agent (model + prompt + tools), and End.
Updated on Sep 02, 2026
Every workflow has a Start, at least one Agent, and typically an End. The Start is fixed on the canvas — it cannot be dragged or deleted.
start · fixed canvas nodeDeclares the workflow variables. They are how data enters via the API (variables field of the run), how state persists between turns, and how multi-agent nodes find dynamic collections.
variables[].namestringobrigatórioName used in `{{name}}` references in prompts, conditions, and templates.
variables[].typefixed | input | collectionobrigatório`fixed` = constant value · `input` = comes from the request (`variables`) · `collection` = table of items with schema.
variables[].valueanyThe value, when `fixed`. Can be text, number, or object (`{"guilty": 0, "innocent": 0}`).
variables[].requiredbooleanpadrão: trueFor `input`: if the value is missing from the request, the run fails with `502 Required variables not provided`.
variables[].persistbooleanpadrão: falseThe value persists between turns of the same `thread_id` (e.g., round counter).
variables[].descriptionstringDocumentation of the variable for integrators.
variables[].schema.fields[]{name, type, required}[]For `collection`: the schema of each item (e.g., `id`, `name`, `role`, `alive`).
variables[].items[]object[]For `collection`: the initial items.
References that work in conditions and sources
{{var}} simple value · {{object.key}} dict access ({{votes.guilty}}) · {{collection.* | field=value}} filters items in a collection · suffixes .count and .exists to count/test.
agent · the heart of the workflowAn AI agent: model + prompt + tools. Tools arrive via slots on the right — connect any tool card and the model gains the ability to call it. Handoffs to other agents (delegate-*) get their own prompt tab in the modal.
namestringobrigatórioAgent name (sanitized: letters, numbers, and `_`). Becomes the identifier in routers and delegations.
modelstringobrigatórioLanguage model (`input_name` from the catalog, e.g., `deepseek-ai/deepseek-v4-flash`).
system_promptstringThe system prompt. Accepts `{{variables}}` from Start.
delegate_descriptionsobjectDescription per handoff (`delegate-*`): when to delegate to each connected agent.
config.temperaturenumberpadrão: 0.7Sampling creativity (0–2).
config.max_tokensnumberpadrão: 4096Response token ceiling.
config.max_tool_loopsnumberpadrão: 10Maximum tool rounds per turn (protection against infinite loops).
config.timeoutnumberpadrão: 120Timeout in seconds for each model call.
config.capture_flowbooleanpadrão: falseIf the turn ends with a pending question, the next turn goes straight back to this agent (pin), bypassing the router.
config.widget_formsbooleanpadrão: falseAllows the agent to emit forms and buttons in the widget.
config.advertise_capabilitiesbooleanpadrão: trueAnnounces available tools in the agent's prompt.
config.tools_filterstring[]padrão: [] (todas)Restricts visible tools to this list of names — useful when multiple tools share the same canvas.
end · ends the flowMarks the end of a path. The input from above accepts any node; the input from the left accepts only tools (end of a pipeline). The status helps you read executions in statistics.
labelstringpadrão: 'End'Visual label of the node.
statussuccess | failure | neutral | custompadrão: neutralHow this output counts in the agent's metrics.
custom_statusstringThe status text when `custom`.
output_messagestringOptional final message emitted when reaching here.

