Rasa Pro Change Log
All notable changes to Rasa Pro will be documented in this page. This product adheres to Semantic Versioning starting with version 3.3 (initial version).
Rasa Pro consists of two deployable artifacts: Rasa Pro and Rasa Pro Services. You can read the change log for both artifacts below.
[3.13.9] - 2025-09-03
Rasa Pro 3.13.9 (2025-09-03)
Bugfixes
- Upgrade
skops
to version0.13.0
andrequests
to version2.32.5
to fix vulnerabilities. - Fixed flow retrieval to skip vector store population when there are no flows to embed.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.13.8] - 2025-08-26
Rasa Pro 3.13.8 (2025-08-26)
Improvements
- Validation errors now raise meaningful exceptions instead of calling sys.exit(1), producing clearer and more actionable log messages while allowing custom error handling.
- Enable connection to AWS services for LLMs (e.g. Bedrock, Sagemaker) via multiple additional methods to environment variables, for example by using IAM roles or AWS credentials file.
Bugfixes
- The .devcontainer docker-compose file now uses the new
docker.io/bitnamilegacy
repository for images, rather than the olddocker.io/bitnami
. This change was made in response to Bitnami's announcement that they will be putting all of their public Helm Chart container images behind a paywall starting August 28th, 2025. Existing public images are moved to the new legacy repository -bitnamilegacy
- which is only intended for short-term migration purposes. - Fix expansion of referenced environment variables in
endpoints.yml
during Bedrock model config validation. - Fixed model loading failures on Windows systems running recent Python versions (3.9.23+, 3.10.18+, 3.11.13+) due to tarfile security fix incompatibility with Windows long path prefix.
[3.13.7] - 2025-08-15
Rasa Pro 3.13.7 (2025-08-15)
Bugfixes
- Don't tigger a slot correction for slots that are currently set to
None
asNone
counts as empty value. - Enabled the data argument to support both string and list inputs, normalizing to a list for consistent handling.
[3.13.6] - 2025-08-08
Rasa Pro 3.13.6 (2025-08-08)
Bugfixes
- Fixed the contextual response rephraser to use and update the correct translated response text for the current language, instead of falling back to the default response.
- Refactored
validate_argument_paths
to accept list values and aggregate all missing paths before exiting.
[3.13.5] - 2025-07-31
Rasa Pro 3.13.5 (2025-07-31)
Bugfixes
-
Fix correction of slots:
- Slots can only be corrected in case they belong to any flow on the stack and the slot to be corrected is part of a collect step in any of those flows.
- A correction of a slot should be applied if the flow that is about to start is using this slot.
-
Upgrade
axios
to fix security vulnerability. -
Fix issue where called flows could not set slots of their parent flow.
[3.13.4] - 2025-07-23
Rasa Pro 3.13.4 (2025-07-23)
Improvements
- Engine-related modules now raise structured exceptions instead of calling
sys.exit(1)
orprint_error_and_exit
, providing clearer, more actionable log messages and enabling custom error handling.
Bugfixes
- Fix validation of the FAISS documents folder to ensure it correctly discovers files in a recursive directory structure.
- Updated
Inspector
dependent packages (vite
, and@adobe/css-tools
) to address security vulnerabilities. - Fixed bug preventing
model_group
from being used withembeddings
in generative response LLM judge configuration.
[3.13.3] - 2025-07-17
Rasa Pro 3.13.3 (2025-07-17)
Bugfixes
- Allowed NLG servers to return None for the text property and ensured custom response data is properly retained.
[3.13.2] - 2025-07-16
Rasa Pro 3.13.2 (2025-07-16)
Bugfixes
- Pass all flows to
find_updated_flows
to avoid creating aHandleCodeChangeCommand
in situations where flows were not updated. - Bugfix for Jambonz Stream channel Websocket URL path which resulted in failed Websocket Connections
[3.13.1] - 2025-07-14
Rasa Pro 3.13.1 (2025-07-14)
Bugfixes
- Fix issues with bot not giving feedback for slot corrections.
- Fixed bot speaking state management in Audiocodes Stream channel. This made the assistant unable to handle user silences
Added periodic keepAlive messages to deepgram, this interval can be configured with
keep_alive_interval
parameter
[3.13.0] - 2025-07-07
Rasa Pro 3.13.0 (2025-07-07)
Deprecations and Removals
- Deprecate IntentlessPolicy and schedule for removal in Rasa
4.0.0
. - Removed
monitor_silence
parameter from Voice Channel configuration. Silence Monitoring is now enabled by default. It can be configured by changing the value of Global Silence Timeout - Remove pre-CALM PII management capability originally released in Rasa Plus 3.6.0.
Remove
presidio
,faker
andpycountry
dependencies from Rasa Pro.
Features
-
Introducing the
SearchReadyLLMCommandGenerator
component, an enhancement over theCompactLLMCommandGenerator
. This new component improves the triggering accuracy ofKnowledgeAnswerCommand
and should be used when theEnterpriseSearchPolicy
is added to the pipeline. By default, this new component does not trigger theChitChatAnswerCommand
andHumanHandoffCommand
. Handling small talk and chit-chat conversations is now delegated to theEnterpriseSearchPolicy
.To incorporate the
SearchReadyLLMCommandGenerator
into your pipeline, simply add the following:pipeline:
...
- name: SearchReadyLLMCommandGenerator
... -
Implement Privacy Filter capability to detect PII in 3 supported events (SlotSet, BotUttered, and UserUttered) and anonymise PII from the event data.
The PII detection takes a tiered approach:
- the first tier represents a slot-based approach: the sensitive data is stored in a slot whose name is defined in the privacy YAML configuration.
- the second optional tier uses a default GliNer model to detect PII that is not captured by the slot-based approach.
The anonymisation of PII is done by redacting or replacing the sensitive data with a placeholder. These anonymisation rules are also defined in the privacy YAML configuration.
-
EnterpriseSearchPolicy
can now assess the relevancy of the generated answer. By default, the policy does not check the relevancy of the generated answer. But you enable the relevancy check by settingcheck_relevancy
totrue
in the policy configuration.policies:
- name: FlowPolicy
- name: EnterpriseSearchPolicy
...
check_relevancy: true # by default this is falseIf the relevancy check is enabled, the policy will evaluate the generated answer and determine if it is relevant to the user's query. In case the answer is relevant, the generated answer will be returned to the user. If the answer is not relevant, the policy will fallback to
pattern_cannot_handle
to handle the situation.pattern_cannot_handle:
description: |
Conversation repair flow for addressing failed command generation scenarios
name: pattern cannot handle
steps:
- noop: true
next:
... # other cases
# Fallback to handle cases where the generated answer is not relevant
- if: "'{{context.reason}}' = 'cannot_handle_no_relevant_answer'"
then:
- action: utter_no_relevant_answer_found
next: "END" -
Implement privacy manager class which manages privacy-related tasks in the background.
This class handles the anonymization and deletion of sensitive information in dialogue state trackers stored in the tracker store, as well as the streaming of anonymized events to event brokers. It uses background schedulers to periodically run these tasks and processes trackers from a queue to ensure that sensitive information is handled in a timely manner.
-
Add support for
jambonz_stream
voice-stream channel. Log level ofwebsockets
library is set toERROR
by default, it can be changed by the environment variableLOG_LEVEL_LIBRARIES
. -
Remove the beta feature flag check from the
RepeatBotMessagesCommand
. TheRASA_PRO_BETA_REPEAT_COMMAND
environment variable is no longer needed as the feature is GA in 3.13.0.
Improvements
-
Coverage report feature can now be used independently of RASA_PRO_BETA_FINE_TUNING_RECIPE feature flag.
-
Update default Embedding model from
text-embedding-ada-002
totext-embedding-3-large
. UpdateLLMBasedRouter
,IntentlessPolicy
andContextualResponseRephraser
default models to usegpt-4o-2024-11-20
instead ofgpt-3.5-turbo
. Update theEnterpriseSearchPolicy
to usegpt-4.1-mini-2025-04-14
instead ofgpt-3.5-turbo
. -
Update
MultistepCommandGenerator
to usegpt-4o
, specificallygpt-4o-2024-11-20
, instead ofgpt-3.5-turbo
asgpt-3.5-turbo
will be deprecated on July 16, 2025. Add deprecation warning forSingleStepCommandGenerator
; leave current default model asgpt-4-0613
. Adapt tests for CommandGenerators to usegpt-4o
instead ofgpt-3.5-turbo
due to upcoming model deprecation. UpdateLLMJudgeModel
andFine tuning Conversation Rephraser
to usegpt-4.1-mini
, specificallygpt-4.1-mini-2025-04-14
, instead ofgpt-4o-mini
, asgpt-4o-mini
will be deprecated on September 15, 2025. -
Make
CALM
template the default forrasa init
. -
Redis lock store now accepts
host
property from endpoints config. Propertyurl
is marked as deprecated for Redis lock store. -
Added support for basic authentication in Twilio channels (Voice Ready and Voice Streaming). This allows users to authenticate their Twilio channels using basic authentication credentials, enhancing security and access control for voice communication. To use this feature, set
username
andpassword
in the Twilio channel configuration.credentials.yamltwilio_voice:
username: your_username
password: your_password
...
twilio_media_streams:
username: your_username
password: your_password
...At Twilio, configure the webhook URL to include the basic authentication credentials:
# twilio voice webhook
https://<username>:<password>@yourdomain.com/webhooks/twilio_voice/webhook
# twilio media streams webhook
https://<username>:<password>@yourdomain.com/webhooks/twilio_media_streams/webhook -
Added two endpoints to the model service for retrieving the assistant’s default configuration and the default project template used by the assistant.
-
All conversations on Twilio Media Streams, Audiocodes Stream, Genesys channel ends with the message
/session_end
. This applies to both the conversation ended by user and the assistant. -
Refactor Voice Inspector to use AudioWorklet Web API
-
Added new CLI commands to support project-level linking and granular push/pull workflows for Rasa Studio assistants:
- Introduced
rasa studio link
to associate a local project with a specific Studio assistant. - Added
rasa studio pull
andrasa studio push
, with subcommands for granular resource updates (config
,endpoints
) between local and Studio assistants.
- Introduced
-
Implement
delete
method forInMemoryTrackerStore
,AuthRetryTrackerStore
,AwaitableTrackerStore
andFailSafeTrackerStore
subclasses. -
Implement
delete
method forMongoTrackerStore
. -
Implement
delete
method for SQLTrackerStore: this method accepts sender_id and deletes the corresponding tracker from the store if it exists. -
Implement
delete
method for DynamoTrackerStore: this method accepts sender_id and deletes the corresponding tracker from the store if it exists. -
Implement
delete
method forRedisTrackerStore
. -
Update
KafkaEventBroker
YAML config to accept 2 new parameters:stream_pii
: boolean (default: true). If set tofalse
, the broker will not publish un-anonymised events to the configured topic.anonymization_topics
: list of strings (default: []). If set, the broker will publish anonymised events to the configured topics when the PII management capability is enabled.
-
Add 2 new PII configuration parameters to
PikaEventBroker
:stream_pii
: Boolean flag to control whether or not to publish un-anonymised events to the configuredqueues
. If set to False, un-anonymised events won't be published to RabbitMQ. Defaults toTrue
for backwards compatibility.anonymization_queues
: List of queue names that should receive anonymized events with PII removed. Defaults to an empty list ([]
).
-
Add a new
anonymized_at
timestamp field to the Rasa Pro events supported by the PII management capability:user
slot
bot
This field indicates when the PII data in the event was anonymized. The field is set tonull
if the PII data has not been anonymized.
-
Add support for reading
privacy
configuration key from endpoints file to enable PII management capability. -
Add new
DELETE /conversations/<conversation_id>/tracker
endpoint that allows deletion of tracker data for a specific conversation. -
Cleaned up potential sources of PII from
info
,exception
anderror
logs. -
Allow default patterns to link to
pattern_chitchat
. -
Cleaned up potential sources of PII from
warning
logs. -
Add a warning log to alert users when exporting tracker data that contains unanonymized events.
-
Remove beta feature flag for pypred predicate usage in conditional response variations. Mark this functionality for general availability (GA).
-
Updated the default behavior of
pattern_chitchat
. With the deprecation ofIntentlessPolicy
,pattern_chitchat
now defaults to responding withutter_cannot_handle
instead of triggeringaction_trigger_chitchat
. -
PII deletion job now performs a single database transaction in the case of trackers with multiple sessions, where only some sessions are eligible for deletion. The deletion job overwrites the serialized tracker record with the retained events only. This ensures that the tracker store is updated atomically, preventing any potential tracker data loss in case of Rasa Pro server crashes or other issues during the deletion job execution.
Bugfixes
-
Fixes a bug where fine-tuning data generation raises a FineTuningDataPreparationException for test cases without assertions that end with one/multiple user utterance/s, as opposed to one/multiple bot utterance/s.
For these types of test cases, the fine-tuning data generation transcript now contains all test case utterances up to but excluding the last user utterance(s) as the test case does not specify the corresponding, expected bot response(s).
-
allowed for usage of litellm model prefixes that do not end in '<provider>/'
-
Fixes a bug in Inspector that raised a TypeError when serialising
numpy.float64
from Tracker -
- Fixes an issue with prompt rendering where minified JSON structures were displayed without properly escaping newlines, tabs, and quotes.
- Introduced a new Jinja
filter to_json_encoded_string
that escapes newlines (\n
), tabs (\t
), and quotes (\"
) for safe JSON rendering.to_json_encoded_string
filter preserves other special characters (e.g., umlauts) without encoding them. - Updated the default prompts for
gpt-4o
andclaude-sonnet-3.5
-
Fix intermittent crashes on Inspector app when Enterprise Search or Chitchat Policies were triggered
-
Add channel name to UserMessage created by the Audiocodes channel.
-
Reduced redundant log entries when reading prompt templates by contextualizing them. Added source component and method metadata to logs, and changed prompt-loading logs triggered from
fingerprint_addon
to useDEBUG
level. -
Prompts for rephrased messages and conversations are now rendered using agent, eliminating errors that occurred when string replacements broke after prompt updates.
-
Fix retrieval of latest tracker session from DynamoTrackerStore.
-
Files generated by the finetuning data generation pipeline are now encoded in UTF-8, allowing characters such as German umlauts (ä, ö, ü) to render correctly.
-
Fix an issue where the SetSlot and Clarify command value was parsed incorrectly if a newline character immediately followed the value argument in the LLM output.
-
Fixed the repeat action to include all messages of the last turn in collect steps.
-
- Fix an issue where running
rasa inspect
would always set theroute_session_to_calm
slot toTrue
, even when no user-triggered commands were present. This caused incorrect routing to CALM, bypassing the logic of the router. - Fix a regression in non-sticky routing where sessions intended for the NLU were
incorrectly routed to CALM when the router predicted
NoopCommand()
.
- Fix an issue where running
-
Fix validation and improve error messages for the documents source directory when FAISS vector store is configured for the Enterprise Search Policy.
-
Prevent slot correction when the slot is already set to the desired value.
-
Fallback to
CannotHandle
command when the slot predicted by the LLM is not defined in the domain. -
Fix tracker store PII background jobs not updating the
InMemoryTrackerStore
reference stored by the Agent. -
Fix potential
KeyError
inEnterpriseSearchPolicy
citation post-processing when the source does not have the correct citation. Improve the citation post-processing logic to handle additional edge cases. -
Fix issue with PrivacyManager unable to retrieve trackers from Redis tracker store during its deletion background job, because the Redis tracker store prefix was added twice during retrieval.
-
Fixed anonymization failing for
FloatSlots
when user-provided integer values don't match the stored float representation during text replacement. -
Fix Redis tracker store saving tracker with prefix added twice during the anonymization background job.
-
Fix DynamoDB tracker store overwriting tracker with the latest session in case of multiple sessions saved prior.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.12.32] - 2025-09-03
Rasa Pro 3.12.32 (2025-09-03)
Bugfixes
- Upgrade
skops
to version0.13.0
andrequests
to version2.32.5
to fix vulnerabilities.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.12.31] - 2025-08-26
Rasa Pro 3.12.31 (2025-08-26)
Bugfixes
- The .devcontainer docker-compose file now uses the new
docker.io/bitnamilegacy
repository for images, rather than the olddocker.io/bitnami
. This change was made in response to Bitnami's announcement that they will be putting all of their public Helm Chart container images behind a paywall starting August 28th, 2025. Existing public images are moved to the new legacy repository -bitnamilegacy
- which is only intended for short-term migration purposes. - Fixed model loading failures on Windows systems running recent Python versions (3.9.23+, 3.10.18+, 3.11.13+) due to tarfile security fix incompatibility with Windows long path prefix.
[3.12.30] - 2025-08-19
Rasa Pro 3.12.30 (2025-08-19)
Bugfixes
- Don't tigger a slot correction for slots that are currently set to
None
asNone
counts as empty value.
[3.12.29] - 2025-07-31
Rasa Pro 3.12.29 (2025-07-31)
Bugfixes
-
Fix correction of slots:
- Slots can only be corrected in case they belong to any flow on the stack and the slot to be corrected is part of a collect step in any of those flows.
- A correction of a slot should be applied if the flow that is about to start is using this slot.
[3.12.28] - 2025-07-29
Rasa Pro 3.12.28 (2025-07-29)
Bugfixes
- Upgrade
axios
to fix security vulnerability. - Fix issue where called flows could not set slots of their parent flow.
[3.12.27] - 2025-07-23
Rasa Pro 3.12.27 (2025-07-23)
Bugfixes
- Fix validation of the FAISS documents folder to ensure it correctly discovers files in a recursive directory structure.
- Updated
Inspector
dependent packages (vite
, and@adobe/css-tools
) to address security vulnerabilities. - Fixed bug preventing
model_group
from being used withembeddings
in generative response LLM judge configuration.
[3.12.26] - 2025-07-17
Rasa Pro 3.12.26 (2025-07-17)
Bugfixes
- Allowed NLG servers to return None for the text property and ensured custom response data is properly retained.
[3.12.25] - 2025-07-16
Rasa Pro 3.12.25 (2025-07-16)
Bugfixes
- Pass all flows to
find_updated_flows
to avoid creating aHandleCodeChangeCommand
in situations where flows were not updated.
[3.12.24] - 2025-07-14
Rasa Pro 3.12.24 (2025-07-14)
Bugfixes
- Fixed the repeat action to include all messages of the last turn in collect steps.
- Fix issues with bot not giving feedback for slot corrections.
- Fixed bot speaking state management in Audiocodes Stream channel. This made the assistant unable to handle user silences
Added periodic keepAlive messages to deepgram, this interval can be configured with
keep_alive_interval
parameter
[3.12.23] - 2025-07-08
Rasa Pro 3.12.23 (2025-07-08)
Bugfixes
- Reverted fix for custom multilingual output payloads being overwritten.
[3.12.22] - 2025-07-07
Rasa Pro 3.12.22 (2025-07-07)
No significant changes.
[3.12.21] - 2025-07-03
Rasa Pro 3.12.21 (2025-07-03)
Bugfixes
-
Fixes a bug where fine-tuning data generation raises a FineTuningDataPreparationException for test cases without assertions that end with one/multiple user utterance/s, as opposed to one/multiple bot utterance/s.
For these types of test cases, the fine-tuning data generation transcript now contains all test case utterances up to but excluding the last user utterance(s) as the test case does not specify the corresponding, expected bot response(s).
-
Fix validation and improve error messages for the documents source directory when FAISS vector store is configured for the Enterprise Search Policy.
-
Prevent slot correction when the slot is already set to the desired value.
-
Fallback to
CannotHandle
command when the slot predicted by the LLM is not defined in the domain. -
Fix potential
KeyError
inEnterpriseSearchPolicy
citation post-processing when the source does not have the correct citation. Improve the citation post-processing logic to handle additional edge cases.
[3.12.20] - 2025-06-24
Rasa Pro 3.12.20 (2025-06-24)
Bugfixes
- Flows now traverse called and linked flows, including nested and branching called / linked flows. As a result, E2E coverage reports include any linked and called flows triggered by the flow being tested.
- Fixed a bug in Genesys and Audiocodes Stream channels where conversations used a placeholder value
default
as the Sender ID. Added a new methodVoiceInputChannel.get_sender_id(call_parameters)
that returns the platform'scall_id
as the Sender ID. This ensures each conversation has a unique identifier based on the call ID from the respective platform. Channels can override this method to customize Sender ID generation.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.12.19] - 2025-06-18
Rasa Pro 3.12.19 (2025-06-18)
Bugfixes
- Fix issues where linked flows could not be cancelled and slots collected within linked flows could not be prefilled.
- Fix
InvalidFlowStepIdException
thrown when a bot is restarted with a retrained model which contains an update to the step order in a given active flow. Once retrained and restarted, the bot will now correctly handle the updated step order by triggeringpattern_code_change
.
[3.12.18] - 2025-06-12
Rasa Pro 3.12.18 (2025-06-12)
Bugfixes
- Ensure that old step ID formats (without the flow ID prefix) can be loaded without raising an
InvalidFlowStepIdException
in newer Rasa versions that expect the flow ID prefix. -
- Fix an issue where running
rasa inspect
would always set theroute_session_to_calm
slot toTrue
, even when no user-triggered commands were present. This caused incorrect routing to CALM, bypassing the logic of the router. - Fix a regression in non-sticky routing where sessions intended for the NLU were
incorrectly routed to CALM when the router predicted
NoopCommand()
.
- Fix an issue where running
- Enable slot prefilling in patterns.
[3.12.17] - 2025-06-05
Rasa Pro 3.12.17 (2025-06-05)
Bugfixes
- Fix an issue where the SetSlot and Clarify command value was parsed incorrectly if a newline character immediately followed the value argument in the LLM output.
[3.12.16] - 2025-06-03
Rasa Pro 3.12.16 (2025-06-03)
Bugfixes
- Make
domain
an optional argument inCommandProcessorComponent
. This change addresses a potentialTypeError
that could occur when loading a model trained without providing domain as a required argument. By making domain optional, models trained with older configurations or without a domain component will now load correctly without errors.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.12.15] - 2025-06-02
Rasa Pro 3.12.15 (2025-06-02)
Improvements
:
Bugfixes
- Add turn_wrapper to count multiple utterances by bot/user as single turn rather than individual turns. Always include last user utterance in rephraser prompt's conversation history.
- Remove
StoryGraphProvider
from the prediction graph in caseIntentlessPolicy
is not present to reduce the loading time of the bot in cases where theIntentlessPolicy
is not used and a lot of stories are present.
[3.12.14] - 2025-05-28
Rasa Pro 3.12.14 (2025-05-28)
Improvements
-
- Updates the parameter name from
max_tokens
, which is deprecated by OpenAI, tomax_completion_tokens
. The oldmax_tokens
is not supported for theo
models. - Exposes LiteLLM's
drop_params
parameter for LLM configurations.
- Updates the parameter name from
Bugfixes
-
- Fixes default config initialization for the
IntentlessPolicy
.
- Fixes default config initialization for the
- Prompts for rephrased messages and conversations are now rendered using agent, eliminating errors that occurred when string replacements broke after prompt updates.
- Fix parsing of escape characters in translation of LLM prediction to SetSlotCommand.
- Files generated by the finetuning data generation pipeline are now encoded in UTF-8, allowing characters such as German umlauts (ä, ö, ü) to render correctly.
[3.12.13] - 2025-05-19
Rasa Pro 3.12.13 (2025-05-19)
Bugfixes
- The
Clarify
(syntax used bySingleStepLLMCommandGenerator
) /disambiguate flows
(syntax used byCompactLLMCommandGenerator
) command will now parse flow names with dashes. - Fix remote model download when models are stored in a path, not in the root of the remote storage.
Add new training CLI param
--remote-root-only
that can be used by the model service to store the model in the root of the remote storage. Propagate this parameter to the persistor'spersist
method. Simplify persistor code when retrieving models by downloading the model to the target path directly rather than copying the downloaded model to the target path. This also improved testability. - When inspector is not used, root server path should output:
Hello from Rasa: <version>.
. When inspector is used, root server path should output HTML page with a link to the path on which inspector can be reached. - Change the default value of
minimize_num_calls
in the config of LLM-based command generators toTrue
.
[3.12.12] - 2025-05-15
Rasa Pro 3.12.12 (2025-05-15)
Improvements
- Improved
CRFEntityExtractor
persistence and loading methods to improve model loading times.
Bugfixes
- Bumps aiohttp to 3.10.x, sentry-sdk to 2.8.x. Also bumps the locked versions for urllib3 and h11
[3.12.11] - 2025-05-14
Rasa Pro 3.12.11 (2025-05-14)
No significant changes.
[3.12.10] - 2025-05-08
Rasa Pro 3.12.10 (2025-05-08)
Bugfixes
- Fix issues in Audiocodes Channel Connector. The values in
user_phone
andbot_phone
available in session_started_metadata are swapped to correctly map tocalller
andcallee
respectively. Fixed evening handling where events without the key "parameters" raised an exception. - Filtered out only
None
values from the response payload to avoid removing valid empty values.
[3.12.9] - 2025-05-06
Rasa Pro 3.12.9 (2025-05-06)
Bugfixes
- Implemented backtracking and corrected the recursion logic in the all-paths generation for a flow. Removed the need to deepcopy the
step_ids_visited
set on each branch within_handle_links
, which prevents the coverage report from freezing due to hitting the recursion limit. - Upgrade openai and litellm dependencies to fix found vulnerabilities in litellm.
[3.12.8] - 2025-04-30
Rasa Pro 3.12.8 (2025-04-30)
Bugfixes
- Reduced redundant log entries when reading prompt templates by contextualizing them.
Added source component and method metadata to logs, and changed prompt-loading logs
triggered from
fingerprint_addon
to useDEBUG
level. - Add support for
auth_token
to Rasa Inspector. - Fixed issue where a slot mapping referencing a form in the
active_loop
slot mapping conditions that wouldn't list this slot in the form'srequired_slots
caused training to fail. Now, this is only logged as a validation warning without causing the training to fail.
[3.12.7] - 2025-04-28
Rasa Pro 3.12.7 (2025-04-28)
Improvements
-
Adds two optional properties on Jambonz channel connector,
username
andpassword
which can be used to enable Basic Access Authentication -
Added support for basic authentication in Twilio channels (Voice Ready and Voice Streaming). This allows users to authenticate their Twilio channels using basic authentication credentials, enhancing security and access control for voice communication. To use this feature, set
username
andpassword
in the Twilio channel configuration.credentials.yamltwilio_voice:
username: your_username
password: your_password
...
twilio_media_streams:
username: your_username
password: your_password
...At Twilio, configure the webhook URL to include the basic authentication credentials:
# twilio voice webhook
https://<username>:<password>@yourdomain.com/webhooks/twilio_voice/webhook
# twilio media streams webhook
https://<username>:<password>@yourdomain.com/webhooks/twilio_media_streams/webhook
Bugfixes
- Fail rasa commands (
rasa run
,rasa inspect
,rasa shell
) when model file path doesn't exist instead of defaulting to the latest model file from the default directory/models
. - Fix the behaviour of
action_hangup
on Voice Inspector (browser_audio channel). Display that the session has ended - Display a helpful error message in case of invalid API Key with Azure TTS
- Fixes Audiocodes Channel's event to intent mapping. All audiocode events are now mapped to an intent in the format
vaig_event_<event>
. That is, if Audiocodes sends an eventnoUserInput
, the assistant will receive the intent/vaig_event_noUserInput
[3.12.6] - 2025-04-15
Rasa Pro 3.12.6 (2025-04-15)
Deprecations and Removals
- Remove the behaviour handling digressions as eligible flows that can be started while handling an active collect step.
These properties have been removed from the flow and collect step:
ask_confirm_digressions
block_digressions
Remove the new patternpattern_handle_digressions
.
Features
- Introduce a new boolean property
force_slot_filling
for thecollect
flow step. This property allows you to suppress incorrect predictions of the command generator or user digressions that are not relevant to the current slot filling. To enable this behavior, you should set theforce_slot_filling
property toTrue
in thecollect
step of your flow configuration.Whenflows:
order_pizza:
name: order pizza
description: user asks for a pizza
steps:
- collect: pizza_type
- collect: quantity
- collect: address
force_slot_filling: trueforce_slot_filling
is set toTrue
, the command generator will only process theSetSlot
command for the specified slot. By default, the property is set toFalse
.
Bugfixes
- Security patch for Audiocodes and Genesys Channel connector
Adds
api_key
(required) andclient_secret
(optional) properties to Genesys channel configuration Addstoken
(optional) property to Audiocodes-Stream channel - Fix execution of custom validation action
action_validate_slot_mappings
by passing the extracted slot events to the tracker used when running this action. - Make sure training always fail when domain is invalid.
- Add channel name to UserMessage created by the Audiocodes channel.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.12.5] - 2025-04-07
Rasa Pro 3.12.5 (2025-04-07)
Bugfixes
- Fix
ChitChatAnswerCommand
command replaced withCannotHandleCommand
if there are no e2e stories defined. Improve validation thatIntentlessPolicy
has applicable responses: either responses in the domain that are not part of any flow, or if there are e2e stories. This validation performed during the training time and during cleanup of theChitChatAnswerCommand
command. -
- Fixes an issue with prompt rendering where minified JSON structures were displayed without properly escaping newlines, tabs, and quotes.
- Introduced a new Jinja
filter to_json_encoded_string
that escapes newlines (\n
), tabs (\t
), and quotes (\"
) for safe JSON rendering.to_json_encoded_string
filter preserves other special characters (e.g., umlauts) without encoding them. - Updated the default prompts for
gpt-4o
andclaude-sonnet-3.5
[3.12.4] - 2025-04-01
Rasa Pro 3.12.4 (2025-04-01)
Bugfixes
- Send error event to the Kafka broker, when the original message size is too large, above the configured broker limit. This error handling mechanism was added to prevent Rasa-Pro server crashes.
- Update the following dependencies to versions that contain the latest patches for security vulnerabilities:
jinja2
werkzeug
cryptography
pyarrow
langchain
langchain-community
- Fix intermittent crashes on Inspector app when Enterprise Search or Chitchat Policies were triggered
[3.12.3] - 2025-03-26
Rasa Pro 3.12.3 (2025-03-26)
Bugfixes
- Fixes a bug in Inspector that raised a TypeError when serialising
numpy.float64
from Tracker
[3.12.2] - 2025-03-25
Rasa Pro 3.12.2 (2025-03-25)
No significant changes.
[3.12.1] - 2025-03-21
Rasa Pro 3.12.1 (2025-03-21)
Bugfixes
- Fix filtering of StartFlow commands from LLM-based command generators during the overlap check with prior commands. When prior commands do not contain any StartFlow or HandleDigression commands, we should not filter out the StartFlow command from the LLM-based command generator.
- Remove:
- cancel command when digression handling is defined
- duplicate digression handling commands during command processing
Miscellaneous internal changes
Miscellaneous internal changes.
[3.12.0] - 2025-03-19
Rasa Pro 3.12.0 (2025-03-19)
Deprecations and Removals
- Deprecate MultiStepLLMCommandGenerator and schedule for removal in Rasa
4.0.0
. - Remove the beta feature flag check from the e2e testing with assertions feature.
The
RASA_PRO_BETA_E2E_ASSERTIONS
environment variable is no longer needed as the feature is GA in 3.12.0. - Deprecate the
custom
slot mapping type and itsaction
slot mapping property which has been replaced withrun_action_every_turn
property name to retain backwards-compatible behavior. - Deprecate the former list of dictionaries format for the
condition
key in a conditional response variation.
Features
-
Add capability to use OAuth over Azure Entra ID for OpenAI instances deployed on Azure.
-
Added Voice Stream Channel Connector for Genesys Cloud (AudioConnector Integration)
-
Prevent unwanted digressions at collect flow steps by using one of the following new attributes available at both flow and collect step level:
ask_confirm_digressions
: Asks the user to confirm if to continue with the current flow. Can be set totrue
or to a list of flow ids for which this behaviour should be activated.block_digressions
: Blocks any digression from the current flow and informs the user that they will return to the digression once the current flow is completed. Can be set totrue
or to a list of flow ids for which this behaviour should be activated.
The above-mentioned behaviour is governed by a new pattern
pattern_handle_digressions
which is triggered only when the above attributes are used. -
Implement real-time validation of slot values.
Add an optional property
validation
to slots to configure validations that should be run immediately. This property expects a list ofrejections
and arefill_utter
which will be used to prompt users to provide a new value when validation fails.These validations are limited to common, reusable and universal checks that work independently of conversation context. For more complex validations that depend on conversation state, business logic, or external data, implement them in your flow definitions or custom actions instead.
-
Introducing the
CompactLLMCommandGenerator
component, an enhancement over theSingleStepLLMCommandGenerator
. This new component utilizes the highest-performing prompts for the modelsgpt-4o-2024-11-20
andclaude-3-5-sonnet-20240620
.To incorporate the
CompactLLMCommandGenerator
into your pipeline, simply add the following:pipeline:
...
- name: CompactLLMCommandGenerator
... -
Multi-language support was implemented to enable the assistant to deliver localized responses and flow names that dynamically adjust to the user's language preference. In particular:
- The default language is defined using the
language
key inconfig.yml
, while additional supported languages are specified underadditional_languages
. - A
translation
section was introduced for responses to provide language-specific versions of the response text. - A
translation
section was added for flows to define localized flow names. - The rephraser prompt now accommodates the selected language.
- Validation mechanisms were implemented to ensure proper use of translations; the CLI command
rasa validate data translations
is available for verification. - A new slot type,
StrictCategoricalSlot
, was developed to restrict its values to a predefined set. - A built-in
language
slot of theStrictCategoricalSlot
type was added for managing translations effectively.
- The default language is defined using the
-
[beta] Added Voice Stream channel connector to Audiocodes (audiocodes_stream)
Improvements
-
Added validation to issue warnings for non-existent fixture/metadata names referenced in end-to-end tests.
-
Implemented a fail fast mechanism that fails the end-to-end test case on the first failure, whether in user/bot turns or while using the assertions, to provide faster feedback.
-
Added
utterance_end_ms
configuration to deepgram asr to handle noisy environments better -
Replace the optional dependency
mlflow
leveraged in the beta release of E2E testing with assertions when evaluating generative answers with custom prompts for each of the two generative metrics:generative_response_is_relevant
andgenerative_response_is_grounded
. This change now enables the usage of different LLM model providers and allows for a more flexible evaluation of generative components.Additionally, these generative assertions can make use of a new property
utter_source
(i.e. Enterprise Search, Contextual Rephraser or Intentless). This enables the assertion to be applied to a specific bot message source. It also for example prevents phrases such asIs there anything else i can help you with?
triggered bypattern_completed
to be checked for groundedness when the assertion should not be applied to it. Remove applying the same generative assertion to multiple bot messages in the same turn, however one bot message can be evaluated by multiple generative assertions in the same turn. -
Remove unnecessary deepcopy to improve performance in
undo_fallback_prediction
method ofFallbackClassifier
-
Add capability to control whether
pattern_completed
should execute when flow completes its execution. To control this behavior, a new parameterrun_pattern_completed
is added to the flow definition. By default this parameter is set toTrue
which meanspattern_completed
will be executed when flow completes its execution (backward compatible). If this parameter is set toFalse
,pattern_completed
will not be executed when flow completes its execution. -
Allow slots to be filled by different slot extraction mechanisms (e.g. from_llm, predefined NLU-based mappings, custom actions etc.). Add new
from_llm
slot mapping boolean propertyallow_nlu_correction
(by default set toFalse
), which gives permission for LLM-issued SetSlot commands to correct slots previously filled via NLU-based mechanisms.Allow LLM-based command generators to issue other commands after
NLUCommandAdapter
has issued commands. Introduce a new LLM-based command generator config propertyminimize_num_calls
(by default set toFalse
) which maintains backwards compatibility with previous behaviour where LLM-based command generators were blocked from invoking the LLM afterNLUCommandAdapter
had issued commands.Update the default utterance
utter_corrected_previous_input
to use a new context propertynew_slot_values
. -
Set the default priority for StartFlow commands issued by different command generator types i.e. NLUCommandAdapter or LLM-based command generator: When the different command generators issue StartFlow commands for different flows in the same user turn, the NLUCommandAdapter will always take priority while the LLM-based start flow command will be discarded.
Remove the limitation that the NLUCommandAdapter must always precede the LLM-based command generator in the config pipeline.
-
Introduce a new slot mapping type
controlled
that can be assigned to slots that are set via button payloads,set_slots
flow steps or custom actions.Slots that solely use the new
controlled
slot mapping will not be available to be filled probabilistically by the NLU or LLM components. Note that this slot mapping can still be used alongside the other slot mapping types, however this comes with the risk of the slot being filled by the NLU or LLM components in a probabilistic manner. -
Slots with mappings of type
controlled
(formerly the now deprecatedcustom
mapping type) can be set at every turn without its custom action having to be called explicitly by the user flow.If you are building a coexistence assistant where different
controlled
slots are set by custom actions in different subsystems, you must indicate which coexistence system is allowed to fill the slot. This is done by setting thecoexistence_system
property in the slot mapping configuration. This property is a string that must match one of the available categorical values:NLU
,CALM
,SHARED
(when either system can set the slot). -
Support user to send a preformatted message to the
invoke_llm
method. This let's the user switch between theuser
andsystem
roles when invoking the LLM model. -
Add support for
pypred
predicates in conditional response variations, similar to the usage of predicates in flows. Thecondition
key in a response variation can now also be a string predicate that supports only theslots
namespace. One of many logical operators supported isnot
. -
Make current slot type and its allowed values available for the prompt template rendering in
SingleStepLLMCommandGenerator
andCompactLLMCommandGenerator
classes. Now you can use{{ current_slot_type }}
and{{ current_slot_allowed_values }}
placeholders in your custom prompt template. -
Made azure ASR
endpoint
andhost
, azure ttsendpoint
and cartesia ttsendpoint
configurable. -
Support usage of custom commands in the fine-tuning recipe.
-
add support for
mstts
markups on azure TTS for improved SSML usage
Bugfixes
- Add the possibility to pass a
transform
callable parameter when writing yaml. This allows passing a custom function to transform endpoints before uploading to Studio. This was required to fix the issue where yaml wraps in quotes any string that doesn't start with an alphabetic character such as unexpanded environment variables in the endpoints yml file. - Fixed the accuracy calculation to prevent 100% assertion reporting when a test case fails before any assertions are reached.
- Fixed regression on training time for projects with a lot of YAML files.
- Fix AvailableEndpoints to read from the default
endpoints.yaml
, if no endpoint is specified. - Update domain yaml schema for conditional response condition
type
key to specify valid enum type asslot
only. -
- Fixed an issue where the
pattern_continue_interrupted
was not correctly triggered when the flow digressed to a step containing a link.
- Fixed an issue where the
- Add the flow ID as a prefix to step ID to ensure uniqueness. This resolves a rare bug where steps in a child flow with a structure similar to those in a parent flow (using a "call" step) could result in duplicate step IDs. In this case duplicates previously caused incorrect next step selection.
- Enable default action
action_extract_slots
to set slots that should be shared for coexistence in a NLU-based system, when the same slot can be requested and filled by a flow in the CALM system too. - Fixed conversation stalling in AudioCodes channel by handling activities in background tasks. Previously, activities were processed synchronously which blocked responses to AudioCodes, causing request timeouts and activity retries. These retries would cancel ongoing processing and get rejected as duplicates. Now activities are processed asynchronously while responding immediately to AudioCodes requests.
- Improved error handling for Deepgram and Cartesia connection failures to display more meaningful error messages when authentication fails or other connection issues occur.
- Modify Enterprise Search Citation Prompt Template to use
doc.text
- Fixes ClarifyCommand syntax in the fine-tuning recipe.
- Fixed a bug that lead to the response to silence timeouts being cut off
- Fixed a bug in Voice Inspector where the tracker (hence the conversation transcript) was only updated after the prediction loop was complete. The bug resulted in a perceived delay in case of slow custom actions where transcript was rendered after processing the complete conversation turn. Now the tracker is sent to the Inspector app after every iteration of prediction loop, which conveys a more accurate conversation state and transcript on the inspector app
- Fix passing the incorrect input type (user question text instead of bot answer text) to the prompt used by the
generative_response_is_relevant
assertion. Add instructions to both relevance and groundedness prompts to not add any more explanations to the LLM output apart from the expected json output to prevent parsing errors. - Make real-time validation work with all slot types.
Fixes bug where the same
ValidateSlotPatternFlowStackFrame
was being triggered multiple times. - Handle multiple duplicate digressing flows occurring within the same flow:
- if
action_block_digressions
runs for a found duplicate digressing flow already on the stack, it will not add it again - if
action_continue_digressions
runs for a found duplicate digressing flow already on the stack, it first removes it from the stack before pushing it to the top of the stack.
- if
- Do not push the clarification pattern when the top user frame is an interruption frame.
- Consider linked and called flows as active flows when processing
StartFlow
commands. - Fixed slot value injection in translated responses by updating response keys to interpolate.
- Updated language code parsing to enforce BCP 47 standard.
- Fix validation check that ensures that the slot used in the response condition is defined in the domain file.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.11.19] - 2025-08-19
Rasa Pro 3.11.19 (2025-08-19)
Bugfixes
-
Fix correction of slots:
- Slots can only be corrected in case they belong to any flow on the stack and the slot to be corrected is part of a collect step in any of those flows.
- A correction of a slot should be applied if the flow that is about to start is using this slot.
-
Don't tigger a slot correction for slots that are currently set to
None
asNone
counts as empty value. -
Fix issue where called flows could not set slots of their parent flow.
[3.11.18] - 2025-07-24
Rasa Pro 3.11.18 (2025-07-24)
Bugfixes
- Fix issues with bot not giving feedback for slot corrections.
- Fix validation of the FAISS documents folder to ensure it correctly discovers files in a recursive directory structure.
- Updated
Inspector
dependent packages (vite
, and@adobe/css-tools
) to address security vulnerabilities. - Upgrade
axios
to fix security vulnerability. - Upgrade
litellm
to fix security vulnerability.
[3.11.17] - 2025-07-03
Rasa Pro 3.11.17 (2025-07-03)
Bugfixes
- Flows now traverse called and linked flows, including nested and branching called / linked flows. As a result, E2E coverage reports include any linked and called flows triggered by the flow being tested.
- Fix issues where linked flows could not be cancelled and slots collected within linked flows could not be prefilled.
- Fix validation and improve error messages for the documents source directory when FAISS vector store is configured for the Enterprise Search Policy.
- Prevent slot correction when the slot is already set to the desired value.
- Fallback to
CannotHandle
command when the slot predicted by the LLM is not defined in the domain. - Fix potential
KeyError
inEnterpriseSearchPolicy
citation post-processing when the source does not have the correct citation. Improve the citation post-processing logic to handle additional edge cases.
[3.11.16] - 2025-06-12
Rasa Pro 3.11.16 (2025-06-12)
Bugfixes
- Ensure that old step ID formats (without the flow ID prefix) can be loaded without raising an
InvalidFlowStepIdException
in newer Rasa versions that expect the flow ID prefix. - Fix an issue where running
rasa inspect
would always set theroute_session_to_calm
slot toTrue
, even when no user-triggered commands were present. This caused incorrect routing to CALM, bypassing the logic of the router. - Enable slot prefilling in patterns.
[3.11.15] - 2025-06-03
Rasa Pro 3.11.15 (2025-06-03)
Bugfixes
- Make
domain
an optional argument inCommandProcessorComponent
. This change addresses a potentialTypeError
that could occur when loading a model trained without providing domain as a required argument. By making domain optional, models trained with older configurations or without a domain component will now load correctly without errors.
[3.11.14] - 2025-06-02
Rasa Pro 3.11.14 (2025-06-02)
Improvements
-
- Updates the parameter name from
max_tokens
, which is deprecated by OpenAI, tomax_completion_tokens
. The oldmax_tokens
is not supported for theo
models. - Exposes LiteLLM's
drop_params
parameter for LLM configurations. :
- Updates the parameter name from
Bugfixes
- The
Clarify
command now parses flow names with dashes. - Add turn_wrapper to count multiple utterances by bot/user as single turn rather than individual turns. Always include last user utterance in rephraser prompt's conversation history.
- Remove
StoryGraphProvider
from the prediction graph in caseIntentlessPolicy
is not present to reduce the loading time of the bot in cases where theIntentlessPolicy
is not used and a lot of stories are present. -
- Fixes default config initialization for the
IntentlessPolicy
.
- Fixes default config initialization for the
- Fix remote model download when models are stored in a path, not in the root of the remote storage.
Add new training CLI param
--remote-root-only
that can be used by the model service to store the model in the root of the remote storage. Propagate this parameter to the persistor'spersist
method. Simplify persistor code when retrieving models by downloading the model to the target path directly rather than copying the downloaded model to the target path. This also improved testability. - When inspector is not used, root server path should output:
Hello from Rasa: <version>.
. When inspector is used, root server path should output HTML page with a link to the path on which inspector can be reached.
[3.11.13] - 2025-05-15
Rasa Pro 3.11.13 (2025-05-15)
Improvements
- Improved
CRFEntityExtractor
persistence and loading methods to improve model loading times.
Bugfixes
- Bumps aiohttp to 3.10.x, sentry-sdk to 2.8.x. Also bumps the locked versions for urllib3 and h11
[3.11.12] - 2025-05-14
Rasa Pro 3.11.12 (2025-05-14)
No significant changes.
[3.11.11] - 2025-05-08
Rasa Pro 3.11.11 (2025-05-08)
Bugfixes
- Fix issues in Audiocodes Channel Connector. The values in
user_phone
andbot_phone
available in session_started_metadata are swapped to correctly map tocalller
andcallee
respectively. Fixed evening handling where events without the key "parameters" raised an exception.
[3.11.10] - 2025-05-06
Rasa Pro 3.11.10 (2025-05-06)
Bugfixes
- Implemented backtracking and corrected the recursion logic in the all-paths generation for a flow. Removed the need to deepcopy the
step_ids_visited
set on each branch within_handle_links
, which prevents the coverage report from freezing due to hitting the recursion limit.
[3.11.9] - 2025-04-30
Rasa Pro 3.11.9 (2025-04-30)
Bugfixes
- Upgrade openai and litellm dependencies to fix found vulnerabilities in litellm.
- Add support for
auth_token
to Rasa Inspector. - Fixed issue where a slot mapping referencing a form in the
active_loop
slot mapping conditions that wouldn't list this slot in the form'srequired_slots
caused training to fail. Now, this is only logged as a validation warning without causing the training to fail.
[3.11.8] - 2025-04-28
Rasa Pro 3.11.8 (2025-04-28)
Improvements
-
Adds two optional properties on Jambonz channel connector,
username
andpassword
which can be used to enable Basic Access Authentication -
Added support for basic authentication in Twilio channels (Voice Ready and Voice Streaming). This allows users to authenticate their Twilio channels using basic authentication credentials, enhancing security and access control for voice communication. To use this feature, set
username
andpassword
in the Twilio channel configuration.credentials.yamltwilio_voice:
username: your_username
password: your_password
...
twilio_media_streams:
username: your_username
password: your_password
...At Twilio, configure the webhook URL to include the basic authentication credentials:
# twilio voice webhook
https://<username>:<password>@yourdomain.com/webhooks/twilio_voice/webhook
# twilio media streams webhook
https://<username>:<password>@yourdomain.com/webhooks/twilio_media_streams/webhook
Bugfixes
- Fixed a bug that lead to the response to silence timeouts being cut off
- Fail rasa commands (
rasa run
,rasa inspect
,rasa shell
) when model file path doesn't exist instead of defaulting to the latest model file from the default directory/models
. - Fix the behaviour of
action_hangup
on Voice Inspector (browser_audio channel). Display that the session has ended - Display a helpful error message in case of invalid API Key with Azure TTS
- Fixes Audiocodes Channel's event to intent mapping. All audiocode events are now mapped to an intent in the format
vaig_event_<event>
. That is, if Audiocodes sends an eventnoUserInput
, the assistant will receive the intent/vaig_event_noUserInput
[3.11.7] - 2025-04-14
Rasa Pro 3.11.7 (2025-04-14)
Bugfixes
- Fix
ChitChatAnswerCommand
command replaced withCannotHandleCommand
if there are no e2e stories defined. Improve validation thatIntentlessPolicy
has applicable responses: either responses in the domain that are not part of any flow, or if there are e2e stories. This validation performed during the training time and during cleanup of theChitChatAnswerCommand
command. - Security patch for Audiocodes channel connector. Audiocodes channel was only checking for the existence of authentication token. It now does a constant-time string comparison of the authentication token in connection request with that provided in channel configruation.
- Make sure training always fail when domain is invalid.
- Add channel name to UserMessage created by the Audiocodes channel.
[3.11.6] - 2025-04-02
Rasa Pro 3.11.6 (2025-04-02)
Bugfixes
- Improved error handling for Deepgram and Cartesia connection failures to display more meaningful error messages when authentication fails or other connection issues occur.
- Modify Enterprise Search Citation Prompt Template to use
doc.text
- Fixes ClarifyCommand syntax in the fine-tuning recipe.
- Send error event to the Kafka broker, when the original message size is too large, above the configured broker limit. This error handling mechanism was added to prevent Rasa-Pro server crashes.
- Update the following dependencies to versions that contain the latest patches for security vulnerabilities:
jinja2
werkzeug
requests
cryptography
pyarrow
langchain
langchain-community
[3.11.5] - 2025-02-18
Rasa Pro 3.11.5 (2025-02-18)
Bugfixes
- Updated
Inspector
dependent packages (cross-spawn, mermaid, dom-purify, vite, braces, ws, axios and rollup) to address security vulnerabilities. - Enable default action
action_extract_slots
to set slots that should be shared for coexistence in a NLU-based system, when the same slot can be requested and filled by a flow in the CALM system too. - Fixed conversation stalling in AudioCodes channel by handling activities in background tasks. Previously, activities were processed synchronously which blocked responses to AudioCodes, causing request timeouts and activity retries. These retries would cancel ongoing processing and get rejected as duplicates. Now activities are processed asynchronously while responding immediately to AudioCodes requests.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.11.4] - 2025-01-30
Rasa Pro 3.11.4 (2025-01-30)
Improvements
- Remove unnecessary deepcopy to improve performance in
undo_fallback_prediction
method ofFallbackClassifier
Bugfixes
-
- Fixed an issue where the
pattern_continue_interrupted
was not correctly triggered when the flow digressed to a step containing a link.
- Fixed an issue where the
- Add the flow ID as a prefix to step ID to ensure uniqueness. This resolves a rare bug where steps in a child flow with a structure similar to those in a parent flow (using a "call" step) could result in duplicate step IDs. In this case duplicates previously caused incorrect next step selection.
- Optimized the
DirectCustomActionExecutor
by registering custom actions only once. - Updated
cryptography
andanyio
to resolve security vulnerabilities.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.11.3] - 2025-01-14
Rasa Pro 3.11.3 (2025-01-14)
Improvements
- Enhances YAML parser to validate environment variable resolution for sensitive keys.
Bugfixes
- Add flow yaml validation when using the HTTP API
/model/train
endpoint. An invalid flow yaml will return a 400 response status code with a message describing the error. - Make
pattern_session_start
work withrasa inspector
to allow the assistant proactively start the conversation with a user. - Fix writing the test cases obtained via the e2e test case conversion command to file, where
test_cases
key was written as a list item, instead of a dict key. This caused running the test cases to fail because it didn't comply with the e2e test schema. This PR fixes the issue by writing the test cases as a dict key. - Fixed Inspector's Tracker State view not updating in real-time by moving story fetch logic into WebSocket message handler. Previously, story updates were only triggered on session ID changes, causing stale tracker state after the first conversation turn.
- Add pre-training custom validation to the domain responses that would raise a Rasa Pro validation error when a domain response is an empty sequence.
- Fixes a critical security vulnerability with
jsonpickle
dependency by upgrading to the patched version. - Updated
pymilvus
andminio
to address security vulnerability.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.11.2] - 2024-12-19
Rasa Pro 3.11.2 (2024-12-19)
Bugfixes
- Validate that
api_type
key is only used for supported providers (Azure and OpenAI). - Enable asserting events returned by
action_session_start
when running end-to-end testing with assertions format. The following assertions can be used:slot_was_set
slot_was_not_set
bot_uttered
bot_did_not_utter
action_executed
- Fixed voice inspector to work with any URL by dynamically constructing WebSocket URL from current domain. This enables voice testing in GitHub Codespaces and other remote environments.
-
- Fixed an error in
rasa llm finetune prepare-data
when using a subclass ofSingleStepLLMCommandGenerator
. - Resolved an issue where
rasa llm finetune prepare-data
did not support model groups.
- Fixed an error in
- Fix AvailableEndpoints to read from the default
endpoints.yaml
, if no endpoint is specified.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.11.1] - 2024-12-13
Rasa Pro 3.11.1 (2024-12-13)
Bugfixes
- Add the possibility to pass a
transform
callable parameter when writing yaml. This allows passing a custom function to transform endpoints before uploading to Studio. This was required to fix the issue where yaml wraps in quotes any string that doesn't start with an alphabetic character such as unexpanded environment variables in the endpoints yml file. - Pass flow human-readable name instead of flow id when the cancel pattern stack frame is pushed during flow policy validation checks of collect steps.
- Fixed the accuracy calculation to prevent 100% assertion reporting when a test case fails before any assertions are reached.
- Fixed regression on training time for projects with a lot of YAML files.
[3.11.0] - 2024-12-11
Rasa Pro 3.11.0 (2024-12-11)
Deprecations and Removals
- Removed
UnexpecTEDIntentPolicy
from the default config.yml. It is an experimental policy and not suitable for default configuration - The
reset_after_flow_ends
property of collect steps is now deprecated and will be removed in Rasa Pro 4.0.0. Please use thepersisted_slots
property at the flow level instead.
Features
-
Added Twilio Media Streams channel which can be configured to use arbitrary Text-To-Speech and Speech-To-Text services. Added Voice Stream Channel Interface which makes it easier to add voice channels that directly integrate with audio streams. Added support for Deepgram Speech-To-Text and Azure Text-To-Speech in Voice Stream Channels.
-
Added default action
action_hangup
it can be used to hang up a phone call from a flow. AddedSessionEnded
event andSessionEndCommand
command Updated Audiocodes, Jambonz and Twilio Voice channels to send/session_end
if the phone call is disconnected by user. -
Added support for Cartesia Text-To-Speech in Voice Stream Channels.
-
Implement Rasa Pro native model service that takes care of training and running an assistant model in Studio. To find out more about this service, read more in the Studio documentation.
-
Added a feature to be able to use voice to interact with the bot in the inspector.
-
Multi-LLM Routing:
-
Decoupled LLM Configuration from Components
- The previous integration of LLMs within CALM is closely tied to the components where they are used. However, this is no longer necessary, as we no longer perform training within the individual components that interact with external LLM endpoints.
- As a result, LLM and embedding client configurations have been moved to
endpoints.yml
. To define LLM configurations inendpoints.yml
, use themodel_groups
as shown below:model_groups:
- id: gpt-4-direct
models:
- provider: openai
model: gpt-4
timeout: 7
temperature: 0.0
- id: text-embedding-3-small-direct
models:
- provider: openai
model: text-embedding-3-small - These
model_groups
can then be referenced inconfig.yml
as follows:pipeline:
...
- name: SingleStepLLMCommandGenerator
llm:
model_group: gpt-4-direct
flow_retrieval:
embeddings:
model_group: text-embedding-3-smal-direct
...
-
Support for Multiple Subscription Deployments
- Allows customers to use deployments from different subscriptions for the same provider.
- Resolved the limitation of API key configuration being tied exclusively to a single environment variable.
Example configuration in
endpoints.yml
for Azure deployments:model_groups:
- id: azure-gpt-model-eu
models:
- provider: azure
deployment: azure-eu-deployment
api_base: https://api.azure-europe.example.com
api_version: 2024-08-01-preview
api_key: ${AZURE_API_KEY_EU}
timeout: 7
temperature: 0.0
...
- id: azure-gpt-model-us
models:
- provider: azure
deployment: azure-us-deployment
api_base: https://api.azure-us.example.com
api_version: 2024-08-01-preview
api_key: ${AZURE_API_KEY_US}
timeout: 7
temperature: 0.0
...
... -
Seamless Model Configuration Across Environments Without Retraining
- Added support for using different model configurations in different environments, such as
dev
,staging
, andprod
, without requiring the bot to be retrained for each environment. - Extended the
${...}
syntax todeployment
,api_base
, andapi_version
inmodel_groups
, allowing these values to change dynamically based on the environment.
model_groups:
- id: azure-gpt-4
models:
- provider: azure
deployment: ${AZURE_DEPLOYMENT_GPT4}
api_base: ${AZURE_API_BASE_GPT4}
api_key: ${AZURE_API_KEY_GPT4}
...
- id: azure-text-embeddings-3-small
models:
- provider: azure
deployment: ${AZURE_DEPLOYMENT_EMBEDDINGS_3_SMALL}
api_base: ${AZURE_API_BASE_EMBEDDINGS_3_SMALL}
api_key: ${AZURE_API_EMBEDDINGS_3_SMALL}
... - Added support for using different model configurations in different environments, such as
-
Supporting Multiple Deployments for Load Balancing
- Enabled targeting of multiple LLM deployments for a single Rasa component.
- Implemented the routing feature that supports load balancing to handle rate limits and improve scalability. When multiple models are defined within a model group, you can specify the
router
key with arouting_strategy
to control how requests are distributed among the models.
Example configuration in
endpoints.yml
for Azure deployments with load balancing:model_groups:
- id: azure-gpt-models
models:
- provider: azure
deployment: azure-eu-deployment
api_base: https://api.azure-europe.example.com
api_version: 2024-08-01-preview
api_key: ${AZURE_API_KEY_EU}
timeout: 7
temperature: 0.0
...
- provider: azure
deployment: azure-us-deployment
api_base: https://api.azure-us.example.com
api_version: 2024-08-01-preview
api_key: ${AZURE_API_KEY_US}
timeout: 7
temperature: 0.0
...
router:
routing_strategy: least-busy
...Example of usage in
config.yml
:pipeline:
...
- name: SingleStepLLMCommandGenerator
llm:
model_group: azure-gpt-models
... -
Backward Compatibility
- Existing configurations that couple LLMs to specific Rasa components remain unaffected by this change.
- However, this configuration method is now deprecated and scheduled for removal in version 4.0.0.
-
-
Added support for Azure Speech-To-Text in Voice Stream Channels.
-
Added
UserSilenceCommand
andpattern_user_silence
which is triggered by Voice Stream channels when the user is silent for more than a silence timeout. These values are configurable with the newly added slotssilence_timeout
andconsecutive_silence_timeouts
. Silence Monitoring is disabled by default and can be enabled using the configurationmonitor_silence: true
in the relevant Voice Stream Channel configuration. -
The inspector is not its own input / output channel anymore. Rather, it can be attached to other channels. This way, it isn't limited to conversations going through the socketio channel anymore, but can be used with other text channels or voice channels.
You can attach it to any channel(s) configured in your credentials.yml by adding a flag to rasa run: rasa run --inspect.
In addition to that, the conenience cli command rasa inspect is retained, which starts the inspector with the socketio channel as usual.
Improvements
-
In Audiocodes channel,
/vaig_event_start
is replaced by/session_start
. This intent marks the beginning of conversation and it is sent when the phone call is connected. -
Introduced the environment variable
MAX_NUMBER_OF_PREDICTIONS_CALM
to configure the CALM-specific limit for the number of predictions. This variable defaults to 1000, providing a higher prediction limit compared to the default value of 10 for nlu-based assistants. -
In Audiocodes and Twilio Voice channel connector, the call metadata received from the providers can be accessed in the slot
session_started_metadata
. The call metadata parameter names have been standardised with CallParameters dataclass Twilio Voice Channel Connector sends/session_start
intent at the beginning of conversation and the channel parameterinitial_prompt
has been removed -
Enable configurability of Vault secret manager's mount point property in the endpoints yaml file or as an environment variable.
-
In Twilio Media Streams channel connector, call metadata is availble in
session_start_metadata
slot. It also supports default actionaction_hangup
-
Catch API connection errors, and validate the correctness of the values present in model configuration at model training time by making a test API request. This feature is enabled by default and can be disabled by setting the environment variable
LLM_API_HEALTH_CHECK
toFalse
. -
Socketio
channel connector now sends the websocket messagestracker_state
andrasa_events
with each bot response.tracker_state
contains the tracker store state at that point in conversation and includes slots, events, stack, latest message and latest action.rasa_events
contains a list of new events that have happened since the last message. -
Speech-To-Text and Text-To-Speech Services can be configured for Voice Stream Channel Connectors Added tests for voice components and redefined code structure
-
Add support for Python 3.11
-
Removed JSON response validation except when HTTP protocol and E2E Stub is used for Custom Action execution.
-
Optimized JSON response validation by initializing the
Draft202012Validator
once and caching it. -
Add an optional property
persisted_slots
at the flow level. This property configures whether slots collected or set across any of the flow steps should be persisted after the flow ends. This property expects a list of slot names. -
Added support for custom Automatic Speech Recognition (ASR) or Text To Speech (TTS) providers to a Rasa Assistant. This allows developers to bring their own speech providers to Rasa by subclassing classes
ASREngine
andTTSEngine
-
If flow retrieval is disabled, a warning is raised only if the number of user flows exceed 20.
-
Added validation to the
TestCase
class to issue a warning when duplicate user messages lack metadata or have incorrect metadata. This enhancement provides clear guidance to users on the issue and how to resolve it. -
Fixed global
should-hangup
variable in Voice Stream Channels by moving to a context variable CallState that stores the session variables -
Run Rasa Pro data validation before uploading to Studio. This is to avoid uploading invalid assistant data that would raise errors during Rasa Pro model training in Studio.
-
Added
vector_name
to Qdrant's configuration to enable customization of the vector field name for storing embeddings. -
Enhanced
YamlValidationException
error messages to include the line number and a relevant YAML snippet showing where the validation error occurred. Line numbers start from 1 (1-based indexing).The error-handling behavior has been modified so that only one validation error is displayed. This exception is raised when the YAML content does not comply with the defined YAML schema.
-
Added a new assertion type
bot_did_not_utter
to allow testing that the bot does not utter specific messages or include certain buttons during conversations. -
Ensure that the model service fails properly if the minimum disk space requirement is not met.
-
Do not expand environment variables when reading yaml files during
rasa studio upload
execution. -
Stream model files to Studio rather than providing full files. Provide a HEAD endpoint for Studio to check if a model is available and what its size is. Add an environment variable to set the port of the model service. This makes the development with Studio easier, previously the port was hard coded making it harder to use a separately deployed model service now that Studio includes that in its development deployment.
-
Add flag
--skip-yaml-validation
to skip YAML validation during Rasa run. User can use it to skip domain YAML validation during Rasa run. Do not instantiate multiple instances of TrainingDataImporter class for validation and training. -
Introduced a
summarize_history
flag for the contextual response rephraser, defaulting toTrue
. When set toFalse
, the conversation transcript instead of the summary is included in the prompt of the contextual response rephraser. This saves a separate summarization call to an LLM. The number of conversation turns to be used whensummarize_history
is set toFalse
can be set viamax_historical_turns
. By default this value is set to 5.Example:
nlg:
- type: rephrase
summarize_history: False
max_historical_turns: 5
Bugfixes
-
Fix OpenAI LLM client ignoring API base and API version arguments if set.
-
Fix
AttributeError
with the instrumentation of therun
method of theCustomActionExecutor
class. -
Throw DuplicatedFlowIdException during
rasa data validate
andrasa train
if there are duplicate flows defined. -
Replace
pickle
andjoblib
with safer alternatives, e.g.json
,safetensors
, andskops
, for serializing components.Note: This is a model breaking change. Please retrain your model.
If you have a custom component that inherits from one of the components listed below and modified the
persist
orload
method, make sure to update your code. Please contact us in case you encounter any problems.Affected components:
CountVectorFeaturizer
LexicalSyntacticFeaturizer
LogisticRegressionClassifier
SklearnIntentClassifier
DIETClassifier
CRFEntityExtractor
TrackerFeaturizer
TEDPolicy
UnexpectedIntentTEDPolicy
-
Avoid filling slots that have
ask_before_filling = True
and utilize afrom_text
slot mapping during other steps in the flow. Ensure that theNLUCommandAdapter
only fills these types of slots when the flow reaches the designated collection step. -
Check for the metadata's
step_id
andactive_flow
keys when adding theActionExecuted
event to the flows paths stack. -
Fixed a bug on Windows where flow files with names starting with 'u' would fail to load due to improper path escaping in YAML content processing
-
Fixes OpenAIException - AsyncClient.init() got an unexpected keyword argument 'proxies'
-
Fix retrieval of model file stored in the cloud storage by the model service. This change consisted in uploading only the model file instead of the full model path during training when
--remote-storage
CLI flag is used. -
Fix issue in e2e testing when customising
action_session_start
would lead to AttributeError, because theoutput_channel
was not set. This is now fixed by setting theoutput_channel
toCollectingOutputChannel()
.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.10.27] - 2025-06-03
Rasa Pro 3.10.27 (2025-06-03)
Bugfixes
- Make
domain
an optional argument inCommandProcessorComponent
. This change addresses a potentialTypeError
that could occur when loading a model trained without providing domain as a required argument. By making domain optional, models trained with older configurations or without a domain component will now load correctly without errors.
[3.10.26] - 2025-06-02
Rasa Pro 3.10.26 (2025-06-02)
Improvements
-
- Updates the parameter name from
max_tokens
, which is deprecated by OpenAI, tomax_completion_tokens
. The oldmax_tokens
is not supported for theo
models. - Exposes LiteLLM's
drop_params
parameter for LLM configurations.
- Updates the parameter name from
Bugfixes
- The
Clarify
command now parses flow names with dashes. - Add turn_wrapper to count multiple utterances by bot/user as single turn rather than individual turns. Always include last user utterance in rephraser prompt's conversation history.
- Remove
StoryGraphProvider
from the prediction graph in caseIntentlessPolicy
is not present to reduce the loading time of the bot in cases where theIntentlessPolicy
is not used and a lot of stories are present. -
- Fixes default config initialization for the
IntentlessPolicy
.
- Fixes default config initialization for the
[3.10.25] - 2025-05-15
Rasa Pro 3.10.25 (2025-05-15)
Improvements
- Improved
CRFEntityExtractor
persistence and loading methods to improve model loading times.
Bugfixes
- Bumps aiohttp to 3.10.x, sentry-sdk to 2.8.x. Also bumps the locked versions for urllib3 and h11
[3.10.24] - 2025-05-14
Rasa Pro 3.10.24 (2025-05-14)
No significant changes.
[3.10.23] - 2025-05-06
Rasa Pro 3.10.23 (2025-05-06)
Bugfixes
- Implemented backtracking and corrected the recursion logic in the all-paths generation for a flow. Removed the need to deepcopy the
step_ids_visited
set on each branch within_handle_links
, which prevents the coverage report from freezing due to hitting the recursion limit.
[3.10.22] - 2025-04-30
Rasa Pro 3.10.22 (2025-04-30)
Bugfixes
- Add support for
auth_token
to Rasa Inspector.
[3.10.21] - 2025-04-29
Rasa Pro 3.10.21 (2025-04-29)
Bugfixes
- Fixed issue where a slot mapping referencing a form in the
active_loop
slot mapping conditions that wouldn't list this slot in the form'srequired_slots
caused training to fail. Now, this is only logged as a validation warning without causing the training to fail.
[3.10.20] - 2025-04-28
Rasa Pro 3.10.20 (2025-04-28)
Improvements
-
Added support for basic authentication in Twilio voice channel. This allows users to authenticate their Twilio voice channel using basic authentication credentials, enhancing security and access control for voice communication. To use this feature, set
username
andpassword
in the Twilio channel configuration.credentials.yamltwilio_voice:
username: your_username
password: your_password
...At Twilio, configure the webhook URL to include the basic authentication credentials:
# twilio voice webhook
https://<username>:<password>@yourdomain.com/webhooks/twilio_voice/webhook
Bugfixes
- Fail rasa commands (
rasa run
,rasa inspect
,rasa shell
) when model file path doesn't exist instead of defaulting to the latest model file from the default directory/models
. - Upgrade openai and litellm dependencies to fix found vulnerabilities in litellm.
[3.10.19] - 2025-04-15
Rasa Pro 3.10.19 (2025-04-15)
Bugfixes
- Fix
ChitChatAnswerCommand
command replaced withCannotHandleCommand
if there are no e2e stories defined. Improve validation thatIntentlessPolicy
has applicable responses: either responses in the domain that are not part of any flow, or if there are e2e stories. This validation performed during the training time and during cleanup of theChitChatAnswerCommand
command. - Security patch for Audiocodes channel connector. Audiocodes channel was only checking for the existence of authentication token. It now does a constant-time string comparison of the authentication token in connection request with that provided in channel configruation.
- Make sure training always fail when domain is invalid.
- Add channel name to UserMessage created by the Audiocodes channel.
[3.10.18] - 2025-04-02
Rasa Pro 3.10.18 (2025-04-02)
Bugfixes
- Updated
Inspector
dependent packages (cross-spawn, mermaid, dom-purify, vite, braces, ws, axios and rollup) to address security vulnerabilities. - Modify Enterprise Search Citation Prompt Template to use
doc.text
- Fixes ClarifyCommand syntax in the fine-tuning recipe.
- Send error event to the Kafka broker, when the original message size is too large, above the configured broker limit. This error handling mechanism was added to prevent Rasa-Pro server crashes.
- Update the following dependencies to versions that contain the latest patches for security vulnerabilities:
jinja2
werkzeug
requests
cryptography
pyarrow
langchain
langchain-community
[3.10.17] - 2025-01-30
Rasa Pro 3.10.17 (2025-01-30)
Improvements
- Remove unnecessary deepcopy to improve performance in
undo_fallback_prediction
method ofFallbackClassifier
Bugfixes
-
- Fixed an issue where the
pattern_continue_interrupted
was not correctly triggered when the flow digressed to a step containing a link.
- Fixed an issue where the
- Add the flow ID as a prefix to step ID to ensure uniqueness. This resolves a rare bug where steps in a child flow with a structure similar to those in a parent flow (using a "call" step) could result in duplicate step IDs. In this case duplicates previously caused incorrect next step selection.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.10.16] - 2025-01-15
Rasa Pro 3.10.16 (2025-01-15)
Bugfixes
-
- Fixed an error in
rasa llm finetune prepare-data
when using a subclass ofSingleStepLLMCommandGenerator
.
- Fixed an error in
- Make
pattern_session_start
work withrasa inspector
to allow the assistant proactively start the conversation with a user. - Fix writing the test cases obtained via the e2e test case conversion command to file, where
test_cases
key was written as a list item, instead of a dict key. This caused running the test cases to fail because it didn't comply with the e2e test schema. This PR fixes the issue by writing the test cases as a dict key. - Add pre-training custom validation to the domain responses that would raise a Rasa Pro validation error when a domain response is an empty sequence.
- Fixes a critical security vulnerability with
jsonpickle
dependency by upgrading to the patched version. - Updated
pymilvus
andminio
to address security vulnerability.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.10.15] - 2024-12-18
Rasa Pro 3.10.15 (2024-12-18)