Skip to main content
Agent Flow provides 10 nodes organized into 4 categories that you can drag and drop on the canvas. Drag from the Node Palette on the left and place on the canvas.

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

Flow entry point. The user message arrives as the input State key.Variable types: String, Number, Boolean, Array, Object
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.
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
The Agent node inherits all Knowledge Base, Tool, and Guardrail settings of the connected agent.
Calls an LLM directly without an agent.Defining Output Fields produces a JSON-structured response. Without them, plain text is returned.
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.
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.
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.
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.
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
The Block output includes guardrail_type (block category) and guardrail_reason (block reason) fields in the State.
Finds matches between the input text and the specified glossary’s terms/synonyms, and appends the definitions to the body.Behavior:
  1. Check whether the input text (current_output or input) contains a glossary entry’s term or synonyms (case-insensitive)
  2. Collect matched terms and append to the end of the body like:
  3. The downstream LLM node generates a more accurate response using the definitions
Output State keys:
  • current_output — enriched text with appended definitions
  • {node}.matched — array of matched term objects (term, matched_form, definition)
For chatbots that frequently use internal abbreviations and specialized terminology, placing a Glossary node before an Agent node ensures the LLM understands term meanings before generating an answer.

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
If you need these nodes, use the AI Builder (natural-language flow generation) on the Agent Flow page, or wait for the next release.

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 }}'}.
When debugging complex flows, place a Transform (Format Text) node right after Start to print all State keys — useful for seeing what’s currently alive in State.