New in 3.16.0Rasa Pro 3.16 introduces session management capabilities including tracking end users across multiple conversations through the
user_id field,
explicit session lifecycle events, per-session identity via session_id, and a proactive inactivity timer with configurable persistence.- Track individual conversations through unique
sender_ididentifiers. - Associate multiple conversations with a single end user using
user_id. - Retrieve and analyze user behavior across different conversations.
- Manage session lifecycle and state persistence.
- Identify sessions uniquely with an automatically generated
session_id. - Configure inactivity timeouts that fire proactively and persist across server restarts.
Key Concepts
What is a conversation? A conversation is a contained stream of events between a user and the agent (messages, actions, slot updates, flow steps, etc.). It can be paused, resumed, and optionally ended permanently. Once ended with aSessionEnded event, it cannot be reopened.
What is a session?
A session is a bounded slice of a conversation — usually one continuous interaction window (like a single chat visit). A conversation can contain multiple sessions over its lifetime.
What is the difference between a new session and a new conversation?
A new conversation is a user-facing concept — it’s what users expect when they click “New chat” or “Start over”: a fresh thread in the UI with no previous context.
A new session is a Rasa system concept — it’s how Rasa separates interaction windows for the same user (for example after a timeout). A new session may reset the assistant’s state depending on your configuration, but it still belongs to the same end user.
In practice: “new conversation” is the experience you design, while “new session” is the boundary Rasa uses under the hood. They often map 1:1 but don’t have to.
Understanding Session Identifiers
Rasa uses three types of identifiers to manage conversations:Conversation ID (sender_id)
The sender_id uniquely identifies a single conversation. Each conversation between a user and your assistant has its own sender_id, which remains constant throughout that specific conversation.
User ID (user_id)
The user_id associates multiple conversations with a single end user. This enables you to:
- Track user behavior across different conversations.
- Retrieve conversation history for a specific user.
- Analyze patterns and preferences across a user’s interactions.
user_id is optional and must be provided by your client application.
Session ID (session_id)
Every session has a unique session_id (UUID v4) that is automatically generated and stamped on every event’s metadata for the lifetime of that session.
Unlike sender_id and user_id, session_id requires no configuration — it is automatic.
Session Lifecycle
A conversation session begins when:- A
SessionStartedevent is triggered (either automatically or manually). - A message is received from a user with a new
sender_id. - A
UserUtteredorConversationResumedevent is received on an inactive tracker.
- A session timer fires due to inactivity and a
ConversationInactiveevent is emitted. - A
SessionEndedevent is emitted.
sender_id. Multiple conversations can be associated with the same user_id.
Backward Compatibility
- Existing conversations without
user_idcontinue to work seamlessly:
- Trackers without
user_idwill haveuser_id=None. - Migration of existing data is not required, but recommended if you want to retrieve conversation trackers by user_id for past conversations prior to the upgrade.
- All tracker stores support both conversations with and without
user_id.
- Existing conversations with events that do not have
session_idin their metadata continue to work seamlessly:
- Old events will not have
session_idin their metadata. - New events will have
session_idin their metadata, and the tracker will have acurrent_session_idfield that reflects the active session. - Existing trackers will have a mix of events with and without
session_id.
- If you have a custom tracker store implementation, take a look at the Rasa Pro Migration Guide for details on what changes are required to adopt the new session management feature.