Skip to main content
This auto-generated reference documents the Input and Output schemas for workflow node types. Descriptions are extracted from proto annotations in workflow_v2.proto.

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.
FieldTypeRequiredDescription
idstringYes
typestringYes
conditionstringNo
timeoutstringNo
save_messageSaveMessageConfigNo
daemonCelDaemonSelectorNo

Thread Configuration

The thread field controls conversation context:
- id: analyze
  type: call_llm
  thread:
    mode: fork      # fork, new, or inherit (default)
    memo: true      # reuse across loop iterations
    inject:
      role: user
      content: "Analyze: {{inputs.data}}"

Conditional Execution

Use condition to skip nodes based on runtime state:
- id: cleanup
  type: run
  condition: "{{nodes.process.exit_code != 0}}"
  run: "rm -rf temp/"

Automatic Message Saving

Use save_message to capture output without a separate save_message node:
- id: summarize
  type: workflow
  ref: builtin://summarizer
  thread:
    mode: fork
  save_message:
    role: assistant
    content: "{{output.summary}}"

Agent

Invoke an agent or sub-workflow

Inputs

FieldTypeRequiredDefaultDescription
refstringNo-Workflow reference (builtin://name or project://name)
argsmapNo-Input values for the sub-workflow
presetsmapNo-Preset configurations for sub-workflow inputs

Call LLM

Send a prompt to a language model and get a response

Inputs

FieldTypeRequiredDefaultDescription
modelmodelNo-Model selector using tags (e.g. flagship) or explicit ID
temperaturenumberNo0.7Temperature (0-1) controls randomness (range: 0-2)
thinking_levelstringNononeExtended thinking level for complex reasoning (enum: none|low|medium|high|xhigh)
system_promptstringNo-System message for this LLM call
tool_filterarrayNo-Filter which tools are available. Use tool names, glob patterns (edit*), tags (tag:search), or !exclusions (!bash).

Outputs

FieldTypeDescription
response_textstring-
token_countinteger-
upstream_request_idstring-
upstream_proxyman_idstring-
costnumber-

Compact

Compact conversation context to reduce token usage

Create Worktree

Create a git worktree for isolated development

Inputs

FieldTypeRequiredDefaultDescription
namestringNo-Worktree name, used in path
base_branchstringNo-Base branch to branch from
copy_filesstringNo-Files to copy from source repo (e.g. .env)
forcebooleanNo-Force creation by deleting existing worktree

Outputs

FieldTypeDescription
idstring-
namestring-
pathstring-
branchstring-
base_branchstring-
repo_idstring-
statusstring-

Delete Worktree

Delete a git worktree and clean up its resources

Inputs

FieldTypeRequiredDefaultDescription
namestringYes--

Outputs

FieldTypeDescription
deletedboolean-

Execute Tools

Execute tool calls from an LLM response

Inputs

FieldTypeRequiredDefaultDescription
tool_callsstringNo-CEL expression for tool calls to execute

Outputs

FieldTypeDescription
thread_token_countinteger-
total_result_charsinteger-

Join

Wait for parallel branches to complete before continuing

Loop

Execute a sub-workflow in a loop with conditions

Inputs

FieldTypeRequiredDefaultDescription
whilebooleanNo-CEL condition: loop continues while true
yieldstringNo-CEL expression to yield to user on loop exit
parallelbooleanNo-Execute all iterations concurrently
itemsstringNo-CEL expression evaluating to a list or map to iterate over
keystringNo-CEL expression for output map key per iteration
on_failurestringNo-Failure policy for parallel iterations (enum: continue|fail_fast|fail_all)

Outputs

FieldTypeDescription
iterationsinteger-
resultsmap-
completedinteger-
failedinteger-
parallelboolean-

Router

Route to a workflow or node based on LLM classification

Inputs

FieldTypeRequiredDefaultDescription
system_promptstringNo-Custom system prompt for the routing LLM
modelmodelNo-Model for routing decision (defaults to fast model)
fallbackstringNo-Fallback preset or node ID if routing decision fails
outputsmapNo-Declared output mappings (name → CEL expression)

Outputs

FieldTypeDescription
selected_workflowstring-
selected_presetstring-
promptstring-
reasoningstring-
selected_nodestring-

Run Command

Execute a shell command

Inputs

FieldTypeRequiredDefaultDescription
commandstringNo-Shell command to execute

Outputs

FieldTypeDescription
exit_codeinteger-
stdoutstring-
stderrstring-

Save Message

Save a message to the conversation thread

Inputs

FieldTypeRequiredDefaultDescription
rolestringNo-Message role (enum: user|assistant|system|tool)
contentstringNo-Message content
tool_callsstringNo-Tool calls from LLM response
attachmentsstringNo-Attachment IDs. CEL expression must return []string.
display_stylestringNo-UI display style hint (enum: info|warning|success|hidden)

Outputs

FieldTypeDescription
messageobject-
message.idstring
message.rolestring
message.textstring
message_idstring-
threadstring-
tool_callsarray-
tool_calls[].idstring
tool_calls[].namestring
tool_calls[].inputstring
tool_resultsarray-
tool_results[].tool_call_idstring
tool_results[].namestring
tool_results[].contentstring
tool_results[].is_errorbool
thread_token_countinteger-
message_countinteger-