All nodes/AI/Stream Observers
Catch Thinking
Intercepts the agent's thinking tokens and streams them to the Extra panel. By default there is no stream port; enable "Explicit Extra stream port" for an explicit edge to an Extra Section.
Type in the graph: catch_thinking
Try it
Minimal working workflow
- Execute + Data
- Extension
- LLM
- Memory
- Execute + Data + Streaming
Runs as pasted
When to use it
Catch Thinking shows the model’s train of thought — what reasoning models return in a separate field of the response, before and between tool calls. In the chat it becomes its own block in the Extra panel: the reader sees that the model is working, while the answer itself stays clean.
The node taps a channel of the AI Agent, as its neighbours do: Catch Output takes the answer text, Catch Tool Call the calls to tools. Do not confuse it with Agent Plan: a plan is a task list the model maintains itself through tools, whereas this is raw reasoning from the provider.
How it works
The node is not a step in the graph: it has no execution input and no data output. Wire its Output port into the agent’s Extensions port and that is all.
From there the platform reads the reasoning field in the model’s response stream:
reasoning_content on DeepSeek and local OpenAI-compatible servers, reasoning on OpenRouter.
If a model reasons inside the answer text instead, those tokens never arrive here — they are
ordinary output. Every agent round starts a new block.
By default the Stream port is hidden and the text goes straight into the Extra panel. Turn on “Explicit Extra stream port” to route it into an ExtraSection node, with a title and a repeat mode. Note that with the switch on the built-in stream is disabled, so nothing is shown until you draw the edge.
Common mistakes
- Expecting “thoughts” from a model that has none. An ordinary chat model returns no reasoning field: the block stays empty and the run still succeeds. Pick a reasoning model in the LLM node.
- Connecting it to LLM Response. Only the AI Agent has an Extensions port.
- Running the Stream port into two nodes. A streaming port streams to exactly one address; the second edge is a validation error.
Inputs
—
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Outputoutput | Extensionlink_extension | — | |
Streamstream | Streamingstreaming | — |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
Explicit Extra stream portexpose_extra_stream_port | boolean | false | When off (default): stream to the Extra panel without a graph wire; the stream port is hidden. When on: the stream port is shown — connect it to an Extra Section (or other allowed sink). Built-in self-streaming is disabled; only an explicit streaming edge sends output. |