Common Node Fields
These fields are available on all node types. They provide shared functionality for node identification, conditional execution, thread management, and output handling.| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | |
type | string | Yes | |
condition | string | No | |
timeout | string | No | |
save_message | SaveMessageConfig | No | |
daemon | CelDaemonSelector | No |
Thread Configuration
Thethread field controls conversation context:
Conditional Execution
Usecondition to skip nodes based on runtime state:
Automatic Message Saving
Usesave_message to capture output without a separate save_message node:
Agent
Invoke an agent or sub-workflowInputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
ref | string | No | - | Workflow reference (builtin://name or project://name) |
args | map | No | - | Input values for the sub-workflow |
presets | map | No | - | Preset configurations for sub-workflow inputs |
Call LLM
Send a prompt to a language model and get a responseInputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
model | model | No | - | Model selector using tags (e.g. flagship) or explicit ID |
temperature | number | No | 0.7 | Temperature (0-1) controls randomness (range: 0-2) |
thinking_level | string | No | none | Extended thinking level for complex reasoning (enum: none|low|medium|high|xhigh) |
system_prompt | string | No | - | System message for this LLM call |
tool_filter | array | No | - | Filter which tools are available. Use tool names, glob patterns (edit*), tags (tag:search), or !exclusions (!bash). |
Outputs
| Field | Type | Description |
|---|---|---|
response_text | string | - |
token_count | integer | - |
upstream_request_id | string | - |
upstream_proxyman_id | string | - |
cost | number | - |
Compact
Compact conversation context to reduce token usageCreate Worktree
Create a git worktree for isolated developmentInputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | No | - | Worktree name, used in path |
base_branch | string | No | - | Base branch to branch from |
copy_files | string | No | - | Files to copy from source repo (e.g. .env) |
force | boolean | No | - | Force creation by deleting existing worktree |
Outputs
| Field | Type | Description |
|---|---|---|
id | string | - |
name | string | - |
path | string | - |
branch | string | - |
base_branch | string | - |
repo_id | string | - |
status | string | - |
Delete Worktree
Delete a git worktree and clean up its resourcesInputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Yes | - | - |
Outputs
| Field | Type | Description |
|---|---|---|
deleted | boolean | - |
Execute Tools
Execute tool calls from an LLM responseInputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
tool_calls | string | No | - | CEL expression for tool calls to execute |
Outputs
| Field | Type | Description |
|---|---|---|
thread_token_count | integer | - |
total_result_chars | integer | - |
Join
Wait for parallel branches to complete before continuingLoop
Execute a sub-workflow in a loop with conditionsInputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
while | boolean | No | - | CEL condition: loop continues while true |
yield | string | No | - | CEL expression to yield to user on loop exit |
parallel | boolean | No | - | Execute all iterations concurrently |
items | string | No | - | CEL expression evaluating to a list or map to iterate over |
key | string | No | - | CEL expression for output map key per iteration |
on_failure | string | No | - | Failure policy for parallel iterations (enum: continue|fail_fast|fail_all) |
Outputs
| Field | Type | Description |
|---|---|---|
iterations | integer | - |
results | map | - |
completed | integer | - |
failed | integer | - |
parallel | boolean | - |
Router
Route to a workflow or node based on LLM classificationInputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
system_prompt | string | No | - | Custom system prompt for the routing LLM |
model | model | No | - | Model for routing decision (defaults to fast model) |
fallback | string | No | - | Fallback preset or node ID if routing decision fails |
outputs | map | No | - | Declared output mappings (name → CEL expression) |
Outputs
| Field | Type | Description |
|---|---|---|
selected_workflow | string | - |
selected_preset | string | - |
prompt | string | - |
reasoning | string | - |
selected_node | string | - |
Run Command
Execute a shell commandInputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
command | string | No | - | Shell command to execute |
Outputs
| Field | Type | Description |
|---|---|---|
exit_code | integer | - |
stdout | string | - |
stderr | string | - |
Save Message
Save a message to the conversation threadInputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
role | string | No | - | Message role (enum: user|assistant|system|tool) |
content | string | No | - | Message content |
tool_calls | string | No | - | Tool calls from LLM response |
attachments | string | No | - | Attachment IDs. CEL expression must return []string. |
display_style | string | No | - | UI display style hint (enum: info|warning|success|hidden) |
Outputs
| Field | Type | Description |
|---|---|---|
message | object | - |
message.id | string | |
message.role | string | |
message.text | string | |
message_id | string | - |
thread | string | - |
tool_calls | array | - |
tool_calls[].id | string | |
tool_calls[].name | string | |
tool_calls[].input | string | |
tool_results | array | - |
tool_results[].tool_call_id | string | |
tool_results[].name | string | |
tool_results[].content | string | |
tool_results[].is_error | bool | |
thread_token_count | integer | - |
message_count | integer | - |