All nodes/AI/Conversation Memory
Buffer Memory
Accumulates conversation history from this scenario's OWN past runs: empty on the first turn, filled as the conversation goes on. To read messages written in the chat before this scenario existed, use the Chat History node. Connects to the AI Agent's Memory input. LLM Response has no memory input — its conversation history comes from a Chat History node wired into its Message port. Storage scope: thread (between messages), session (within an execution) or call (one-off).
Type in the graph: buffer_memory
ExecStateful
An error output can be enabled to handle failures on their own path.
Try it
An agent that remembers the whole conversation
Memory attaches to the AI Agent over link_memory — it has no Run input of its own.
- Execute + Data
- LLM
- Memory
Runs as pasted Before running, set: a model in the LLM node.
When to use it
Buffer Memory hands the agent the entire conversation: nothing is trimmed, nothing is compressed. Reach for it while the dialogue stays short and predictable — a two-turn helper bot, a step-by-step questionnaire, a graph you are still debugging. Once a thread lives for a while the context grows with it and every next turn costs more than the last: that is the moment to switch to Window Memory (a fixed tail) or Summary Memory (older turns compressed into text).
How it works
The node never runs on its own — it has no Run input. A consumer pulls it over
link_memory, and there is exactly one such consumer: the Memory port of the
AI Agent. LLM Response has no
memory input at all — its conversation history comes from a
Chat History node wired into its Message port.
After each turn the agent appends the whole round: the user message, the model’s replies, the tool calls and their results. So “twenty messages” for a tool-using agent is often two or three actual exchanges.
The store is keyed by node id + thread + memory type. Two consequences follow: two memory nodes in one graph do not share history, and swapping Buffer for Window in the same spot starts the history over — the old messages stay in the database, but under a different key.
The Scope field decides how long a record lives: thread survives across chat messages and
is stored in the database; session lasts one execution; call starts empty every time.
Common mistakes
- The node sits on the canvas unconnected. On its own it does nothing: draw the link from its Memory output to the agent’s Memory port.
- Expecting history where there is no chat thread. A webhook, a schedule or the manual
Run button has no thread, so
threadmemory falls back to the execution id — it behaves likesession. - Confusing memory with chat history. The chat panel shows what the channel persisted; agent memory is a separate store with its own key. Delete the node or change its id and the agent forgets, while the transcript in the panel stays exactly where it was.
- Turning on “Set history from input” just to read. The
messages_inport overwrites the store completely. To inspect the current state, enable “Messages output” instead.
Inputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Set historymessages_in | Execute + Dataexecute_data | messages | shown when overwrite_from_input = true |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Memoryoutput | Memorylink_memory | — | |
Messagesmessages_out | Datadata | messages | shown when expose_messages_output = true |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
Messages outputexpose_messages_output | boolean | false | Show an output that hands the stored messages on to the next step. |
Set history from inputoverwrite_from_input | boolean | false | Show an input port that both runs this step and brings a value: the messages that arrive fully overwrite the stored history. Also shows its Success output, which fires once the history is written. |
Scopescope | string | thread | thread: persists between chat messages · session: lives for one execution · call: fresh each time Options: |
Shared fields
Every node has these three — the platform adds them, not the node author.
expose_error_output— Show an output that runs if writing the history fails.