Lesson 17 / 25

Memory for Chats

Add window memory so a chat keeps context, and understand its limits.

The model remembers nothing by itself

Each model call is independent, so a chat "remembers" only because earlier messages are sent again. A Window Buffer Memory sub-node stores the last N messages per session ID and adds them to each call. Use a different session ID per user or conversation, or people will see each other's history. In-process memory is lost on restart, so use a persistent memory node (for example a database-backed one) for production.

Session IDs per user

Take the session ID from something stable and private, such as a user ID from your system, not from text the user can edit.

Window Buffer Memory
  Session ID : {{ $json.userId }}        (not a shared constant!)
  Window size: 10 messages

Quick check: What happens if all users share one memory session ID?

  • Nothing changes
  • The model gets smarter
  • Users see and mix each other's conversation history
  • n8n crashes immediately
Answer

Users see and mix each other's conversation history — Memory is keyed by session ID, so a shared ID leaks context between users.