General
Start
Flow entry point. Receives user input as the
input State key and passes it to the next node. Required in every flow. You can define flow Variables.Output
Flow exit point. Returns the previous node’s result to the user. Choose Action Type: Passthrough / Response (prompt-based final answer) / Error.
AI
Agent
Runs a registered agent. KBSphere (enhanced RAG) and DBSphere (database) mode agents are supported.
Model
Calls an LLM directly without an agent. Suited for simple text processing (summarize, translate, classify).
Logic & Data
Condition
Branch True / False based on a condition. 6 condition types supported.
Router
Multi-path routing. Define multiple Routes and branch by LLM intent or by condition.
Merge
Combine multiple parallel outputs into one. 3 modes: concat / template / json.
Transform
Transform data. Modes: Extract Field (pull a specific value) or Format Text (template-based generation).
Workspace
Guardrail
Apply a guardrail and branch Pass / Block. Use Block Action to control behavior on block.
Glossary
Find glossary terms in the input text and append definitions to the body. Matched terms are referenceable by downstream nodes.
Node Settings — Details
Start node
Start node
Flow entry point. The user message arrives as the
input State key.Variable types:
String, Number, Boolean, Array, ObjectOutput node
Output node
Flow exit point. Returns the previous node’s result to the user.
In Response mode, additionally configure Final Response Prompt and Model for Response.
The prompt can reference
{input}, {output}, {sources}, and State Key variables.The UI label is shown as “Output”. The internal type name is
flowOutput.Agent node
Agent node
Runs a registered agent. KBSphere / DBSphere agents supported.
- With KBSphere agents, retrieved document sources are returned alongside
- With DBSphere agents, SQL execution results are included
Model node
Model node
Calls an LLM directly without an agent.
Defining Output Fields produces a JSON-structured response. Without them, plain text is returned.
Condition node
Condition node
Branches the flow on a condition. Has two output handles at the bottom: True and False.
Supported condition types (6):
Numeric comparisons (Greater than / Less than) and empty checks (Is empty) have no dedicated operators. If needed, transform with a Transform node and check via
equals / regex.Router node
Router node
Multi-path routing. Define at least 2 Routes and set a branching condition for each.
When using Condition Routing, each route’s condition supports the same 6 types as the Condition node.
Merge node
Merge node
Combines multiple parallel outputs into one.
Per-mode behavior:
Options like “Sum / Use first only / Custom” mentioned in older docs are not currently implemented. The 3 modes above are all that exist.
Transform node
Transform node
Transforms data. Two modes: Extract Field and Format Text.
Extract Field mode — Pass through one of the upstream State Keys as-is.
Format Text mode — Compose new text using
{state_key} syntax.Jinja2 templates are not used in default mode. Enable “Use Jinja2 Template” in Advanced Settings to use Jinja2 with
{'{{ state.key }}'} syntax.Guardrail node
Guardrail node
Applies a guardrail to validate input. Two output handles: Pass and Block.
Output handles:
- Pass (green, bottom left) — proceed to next node when passed
- Block (red, bottom right) — only active when Block Action is
Continue
guardrail_type (block category) and guardrail_reason (block reason) fields in the State.Glossary node
Glossary node
Finds matches between the input text and the specified glossary’s terms/synonyms, and appends the definitions to the body.
Behavior:
- Check whether the input text (
current_outputorinput) contains a glossary entry’stermorsynonyms(case-insensitive) - Collect matched terms and append to the end of the body like:
- The downstream LLM node generates a more accurate response using the definitions
current_output— enriched text with appended definitions{node}.matched— array of matched term objects (term,matched_form,definition)
Additional Nodes (code-only)
The following node components exist in the codebase but are not exposed in the current Node Palette. Users can’t add them directly on the canvas — they may be enabled in future releases:- Aggregator, Human Input, Subflow, Error Handler, Notification, Knowledge, Tool
Inter-node Data Flow (State)
A flow uses a shared State object to pass data between nodes.
Each node writes its output to
current_output and {node_id}.<field> keys. Downstream nodes’ prompts/conditions can reference them with {state_key} or Jinja2 {'{{ variables.x }}'}.
