All nodes/Input / Output/UI Output
ExtraSection
An extra output for streaming (e.g. the agent's 'thinking' blocks). Connects to nodes that support mirror_ports. Displays a parallel data stream in the chat UI.
Type in the graph: extra_section
Exec
Ports can be split into separate execution and data handles.
Try it
The agent's reasoning as its own block
A thinking catcher streams the model's reasoning tokens into a collapsible section above the answer.
- Execute + Data
- LLM
- Extension
- Streaming
- Execute + Data + Streaming
Runs as pasted
When to use it
The Extra section is for showing a side channel in the chat — the model’s reasoning, tool calls, an intermediate result — without mixing it into the answer. In the web chat it is a separate collapsible block above the assistant’s message; the answer itself stays exactly what arrived at exit.
How it works
The section is fed in two different ways, and the behaviour depends on which.
A streaming wire — from the stream port of catch_output,
catch_thinking, catch_tool_call,
or from the thinking port of llm_response (that port appears once
“Mirror output to Extra Section” is on). The text is then typed into the block as it is generated.
An ordinary execution or data wire — the node then behaves like any other, and the block appears whole once the value is ready. That is the convenient way to show an intermediate result: retrieved fragments, parsed JSON, a plan.
The “Title” is a template, but {{ inputs.* }} is not available in it: with a streaming
connection the title is drawn before the node has run. {{ variables.<name> }},
{{ nodes.<id>.output }} and {{ loop.item }} all work. “Expanded by default” sets the initial
state; the reader can fold and unfold it either way. “Repeat mode” matters inside a loop:
separate gives one block per iteration, incremental appends into one, replace overwrites the
previous content on every call.
Common mistakes
- Wiring from a catcher node that does not have “Explicit Extra stream port” enabled. Without it the port is hidden. Note the other side of that switch: as soon as you enable it, the built-in stream into the Extra panel is turned off — the flow goes only along the edge you drew.
- Expecting “thoughts” from a model that does not produce them.
catch_thinkingforwards reasoning tokens; a model without reasoning has none, and the block stays empty. - Trying to read the section’s content further down the graph. The node has no outputs: it passes nothing on and affects neither the answer nor the run status.
Inputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Inputend | Execute + Dataexecute_data | — | Execution trigger and content (including streaming when connected) |
Outputs
—
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
Expanded by defaultdefault_open | boolean | true | Whether the section is expanded by default in chat. Users can still toggle it. |
Repeat moderepeat_mode | string | separate | How to display when the node is called multiple times (e.g. inside a loop). Separate: each call creates a new block. Incremental: all calls append to the same block. Replace: each call replaces the previous content. Options: |
Titletitle | string | "" | Custom title shown in chat. Leave empty to use the node display name. Supports templates: {{variables.name}}, {{nodes.id.output}}, {{loop.item}}. {{inputs.*}} is not available: when the section is fed by a streaming edge the title is rendered before the node runs, so it has no resolved inputs. supports templates |
Shared fields
Every node has these three — the platform adds them, not the node author.
expose_error_output— When enabled, show an execution output to connect nodes that run if this step fails.split_ports_in— Show separate execution and data input handles instead of one combined port.split_ports_out— Show separate execution and data output handles instead of one combined port.