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.15.2] - 2025-12-04
Rasa Pro 3.15.2 (2025-12-04)
Bugfixes
- Fix agentic prompt template to access slots directly.
- Disable LLM health check for Enterprise Search Policy when generative search is disabled (i.e. use_generative_llm is False).
- Fix deduplication of collect steps in cases where the same slot was called in different flows.
- Cancel active flow before triggering internal pattern error during a custom action failure.
- Fix bug with the missing
language_datamodule by installinglangcodeswith thedataextra dependency.
[3.15.1] - 2025-12-02
Rasa Pro 3.15.1 (2025-12-02)
Bugfixes
- Raise validation error when duplicate slot definitions are found across domains.
- Raise validation error when a slot with an initial value set is collected by a flow collect step
which sets
asks_before_fillingtotruewithout having a corresponding collect utterance or custom action. - Update
pipto fix security vulnerability. - Fix AgentToolSchema._ensure_property_types() correctly preserves structural keywords ($ref, anyOf, oneOf, etc.)
Miscellaneous internal changes
Miscellaneous internal changes.
[3.15.0] - 2025-11-26
Rasa Pro 3.15.0 (2025-11-26)
Features
-
Added Langfuse integration for tracing LLM and embedding calls. All LLM-based components (Command Generators, Rephraser, Enterprise Search Policy, ReAct Sub Agent) and embedding operations are automatically traced when Langfuse is configured. Each trace includes, among other things, input/output, latency, token usage, cost, session ID, and component name.
To get started, configure Langfuse by adding a
langfuseentry to thetracingsection inendpoints.yml.Example:
tracing:
- type: langfuse
public_key: ${LANGFUSE_PUBLIC_KEY}
private_key: ${LANGFUSE_PRIVATE_KEY}
host: https://cloud.langfuse.comCustom components can override
get_llm_tracing_metadata()to customize metadata. -
Added support for triggering clarification when multiple
StartFlowcommands are generated with no active flow. To enable this feature, set theCLARIFY_ON_MULTIPLE_START_FLOWSenvironment variable toTrue. -
Adds DTMF (Dual-Tone Multi-Frequency) input support for collect steps in flows. Voice channels can now configure DTMF collection with options for digit length, finish key, and audio input control. The feature gracefully handles non-voice channels by skipping DTMF configuration when call_state is not initialized.
-
Added new CLI option
-f, --e2e-failed-teststo export failed e2e tests to a file that can be directly used to re-run only those tests. It accepts an optional filename or directory path, with automatic timestamping to prevent overwriting previous test runs. -
Added support for including current datetime information by default in LLM prompts. This feature enables LLM-based components to include date and time context in their prompts, helping the model understand temporal references and provide time-aware responses.
Components Updated:
CompactLLMCommandGeneratorSearchReadyLLMCommandGeneratorEnterpriseSearchPolicyMCPOpenAgent(with timezone support)MCPTaskAgent(with timezone support)
Prompt Template Updates: When
include_date_timeis enabled, prompts include a "Date & Time Context" section showing:- Current date (formatted as "DD Month, YYYY")
- Current time (formatted as "HH:MM:SS" with timezone)
- Current day of the week
E2E Testing Support: For deterministic testing, you can mock the datetime using the
mocked_datetimeslot in e2e test fixtures. The mocked datetime value must be provided in ISO 8601 format (e.g.,"2024-01-15T10:30:00+00:00"). The e2e test runner validates the format and raises aValidationErrorif the value is invalid.
Improvements
-
Updated
pattern_completedto check wether the user wants to continue the conversation or not by adding acollectstep to the pattern. -
The
OutputChannelis now provided to policies through the graph inputs. This enables any policy to access the output channel and send messages directly to the user, which is particularly useful for sending intermediate or filler messages. -
Allow LLM responses to be streamed to the output channel for any generative responses. This currently only applies to Enterprise Search Policy and Rephraser. Output channels that support streaming should handle duplicate message prevention when a response has already been streamed. Voice output channels (Browser Audio, Genesys, Audiocodes Stream, and Jambonz Stream) have been updated to use the streaming tokens to prepare the Text-to-Speech audio stream instead of waiting for the complete response to be generated. These changes are backward compatible; any existing channel does NOT need any additional changes. However, it can add new methods to make use of the streaming responses whenever they are available.
-
Enhanced the clarification pattern with a configurable limit on the number of flows in the clarification options. Added a new slot
max_clarification_optionsto thedefault_flows_for_patterns.ymlwith an initial value of3which can be changed by overriding theinitial_valueof the slotmax_clarification_optionsto customize the maximum number of flows displayed during clarification. -
Enhanced the clarification pattern to handle empty clarification options. Added
utter_clarification_no_options_rasaresponse todefault_flows_for_patterns.yml, triggered whenpattern_clarificationreceives aClarifyCommandwith no options. -
Allow e2e test results CLI flag
-o,--e2e-resultsto be specified with a custom path. If the flag is used without a path, the default pathtests/is used. -
Enable generative responses dispatched by custom actions to be evaluated by
generative_response_is_groundedandgenerative_response_is_relevantassertions in E2E testing. In order for the E2E testing framework to evaluate generative responses dispatched by custom actions, you must add the custom action dispatching the generative bot response to theutter_sourcekey of the appopriate assertion in the E2E test case. For example, if you have a custom actionaction_generate_summarythat generates a summary using a generative model, you can add the following assertion to your E2E test case:test_cases:
- test_case: Generate summary for user query
steps:
- user: |
Can you provide a summary of the latest news on climate change?
assertions:
- generative_response_is_grounded:
threshold: 0.8
utter_source: action_generate_summary
ground_truth: <insert_ground_truth_summary_here>
- generative_response_is_relevant:
threshold: 0.9
utter_source: action_generate_summary -
Allow
flow_startedandpattern_clarification_containsE2E testing assertions to define the operator i.e.all,any, for matching multiple flow_id values. Previously,flow_startedonly supported a single flow_id value, whilepattern_clarification_containsdefaulted toall. Introduce new format to specify the operator explicitly:test_cases:
- test_case: user is asked to clarify contact-related message
steps:
- user: contacts
assertions:
- pattern_clarification_contains:
operator: "any"
flow_ids:
- remove_contact
- list_contacts
- add_contact
- update_contact
- test_case: user removes a missing contact
steps:
- user: i want to remove a contact
assertions:
- flow_started:
operator: "any"
flow_ids:
- remove_contact
- update_contactThe
operatorfield can take valuesallorany, determining whether all specified flow_ids must match or if any one of them is sufficient.The previous format for these two assertions remains unchanged for backward compatibility, however it has been deprecated and will be removed in a future major release.
-
Updated the default model and voice of Cartesia TTS, using
sonic-3and voice ID American English Katie. -
Move commit messages to top of the SSE
-
Allow trigerring empty
Clarify Commandwithout flow options.
Bugfixes
- Run action_session_start if tracker ends with SessionEnded event.
- Fixed PostgreSQL
UniqueViolationerror when running an assistant with multiple Sanic workers. - Fix Kafka producer creation failing when SASL mechanism is specified in lowercase. The SASL mechanism is now case-insensitive in the Kafka producer configuration.
- Fix issue where the validation of the assistant files continued even when the provided domain was invalid and was being loaded as empty. The training or validation command didn't exit because the final merged domain contained only the default implementations for patterns, slots and responses and therefore passed the check for being non-empty.
- Trigger pattern_internal_error in a CALM assistant when a custom action fails during execution.
- Create AWS Bedrock / Sagemaker client only if the LLM healthcheck environment variable is set. If the environment variable is not set, validate that required credentials are present.
- Update
langchain-coreversion to~0.3.80to address security vulnerability CVE-2025-65106.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.14.6] - 2025-12-05
Rasa Pro 3.14.6 (2025-12-05)
Bugfixes
- Fix agentic prompt template to access slots directly.
- Disable LLM health check for Enterprise Search Policy when generative search is disabled (i.e. use_generative_llm is False).
- Fix deduplication of collect steps in cases where the same slot was called in different flows.
- Cancel active flow before triggering internal pattern error during a custom action failure.
- Fix bug with the missing
language_datamodule by installinglangcodeswith thedataextra dependency.
[3.14.5] - 2025-12-02
Rasa Pro 3.14.5 (2025-12-02)
Bugfixes
- Update
pipto fix security vulnerability. - Fix AgentToolSchema._ensure_property_types() correctly preserves structural keywords ($ref, anyOf, oneOf, etc.)
[3.14.4] - 2025-11-27
Rasa Pro 3.14.4 (2025-11-27)
Bugfixes
- Fixed
patten-continue-interruptedrunning out of order before linked flows. - Fix
rasa studio uploadtimeouts by enabling TCP keep-alive with platform-specific socket options to maintain stable connections. - Remove
action_metadatatracing span attribute fromEnterpriseSearchPolicyinstrumentation to prevent PII leakages. Add new environment variableRASA_TRACING_DEBUGGING_ENABLEDto enable addingaction_metadatatoEnterpriseSearchPolicyspans for debugging purposes. By default, this variable is set tofalseto ensure PII is not logged in production environments. - Fixed PostgreSQL
UniqueViolationerror when running an assistant with multiple Sanic workers. - Fix Kafka producer creation failing when SASL mechanism is specified in lowercase. The SASL mechanism is now case-insensitive in the Kafka producer configuration.
- Fix issue where the validation of the assistant files continued even when the provided domain was invalid and was being loaded as empty. The training or validation command didn't exit because the final merged domain contained only the default implementations for patterns, slots and responses and therefore passed the check for being non-empty.
- Trigger pattern_internal_error in a CALM assistant when a custom action fails during execution.
- Create AWS Bedrock / Sagemaker client only if the LLM healthcheck environment variable is set. If the environment variable is not set, validate that required credentials are present.
- Update
langchain-coreversion to~0.3.80to address security vulnerability CVE-2025-65106. - Raise validation error when duplicate slot definitions are found across domains.
- Raise validation error when a slot with an initial value set is collected by a flow collect step
which sets
asks_before_fillingtotruewithout having a corresponding collect utterance or custom action.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.14.3] - 2025-11-13
Rasa Pro 3.14.3 (2025-11-13)
Miscellaneous internal changes
Miscellaneous internal changes.
[3.14.2] - 2025-10-30
Rasa Pro 3.14.2 (2025-10-30)
Improvements
-
Add new environment variable
LOG_LEVEL_PYMONGOto control the logging level of PyMongo dependency of Rasa. This can be useful to reduce the verbosity of logs. Default value isINFO.The logging level of PyMongo can also be set via the
LOG_LEVEL_LIBRARIESenvironment variable, which provides the default logging level for a selection of third-party libraries used by Rasa. If both variables are set,LOG_LEVEL_PYMONGOtakes precedence.
Bugfixes
-
Clean up duplicated
ChitChatAnswerCommandsin command processor.Ensure that one
CannotHandleCommandremains if only multipleCannotHandleCommandswere present. -
LLM request timeouts are now enforced at the event loop level using
asyncio.wait_for.Previously, timeout values configured in
endpoints.ymlcould be overridden by the HTTP client's internal timeout behavior. This fix ensures that when a specific timeout value is configured for LLM requests, the request respects that exact timing regardless of the underlying HTTP client implementation. -
Fixed an issue where duplicate collect steps in a flow could cause rendering problems, such as exceeding token limits. This occurred when a flow called another flow multiple times. Now, each collect step is listed only once when retrieving all collect steps for a flow.
-
If a FloatSlot does not have min and max values set in the domain, the slot will not be validated against any range. If the slot defines an initial value, as well as min and max values, the initial value will be validated against the range and an error will be raised if the initial value is out of range. Enhance run-time validation for new values assigned to FloatSlot instances, ensuring they fall within the defined min and max range if these are set. If min and max are not set, no range validation is performed.
-
Fixed bug preventing
deploymentparameter from being used in generative response LLM judge configuration. -
Fixed bug where
persisted_slotsdefined in called flows were incorrectly reset when the parent flow ended, unless they were also explicitly defined in the parent flow. Persisted slots now only need to be defined in the called flow to remain persisted after the parent flow ends. -
Fixes the prompt template resolution logic in the CompactLLMCommandGenerator and SearchReadyLLMCommandGenerator classes.
-
When
action_clean_stackis used in a user flow, allowpattern_completedto be triggered even if there are pattern flows at the bottom of the dialogue stack below the top user flow frame. Previously,pattern_completedwould only trigger if there were no other frames below the top user flow frame. This assumes that theaction_clean_stackis the last action called in the user flow. -
Update
pipversion used in Dockerfile to23.*to address security vulnerability CVE-2023-5752. Updatepython-socketioversion to5.14.0to address security vulnerability CVE-2025-61765.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.14.1] - 2025-10-10
Rasa Pro 3.14.1 (2025-10-10)
Miscellaneous internal changes
Miscellaneous internal changes.
[3.14.0] - 2025-10-09
Rasa Pro 3.14.0 (2025-10-09)
Features
-
Added the possibility to call an agent from within a flow via a
callstep. We support two types of ReAct style agents:-
An open ended exploratory agent - Here the user’s goal is loosely defined, for example researching about stocks to invest in. There is no pre-defined criteria which can be used to know when the goal is reached. Hence the agent itself needs to figure out when it has helped the user to the best of its capabilities.
flows:
stock_investment_research:
description: helps research and analyze stock investment options
steps:
- call: stock_explorer # runs until agent signals completion -
A task specific agent - Here we can come up with conditions, which when true, signals the completion of a user goal. For example, helping the user find an appointment slot based on their preferences - you know the agent can exit once all user’s preferences have been met and they have agreed to a slot.
flows:
book_appointment:
description: helps users book appointments
steps:
- call: ticket_agent
exit_if:
- slots.chosen_appointment is not null
- slots.booking_completed is True**
- collect: user_confirmation
To configure the agents you need to create a folder structure like this:
your_project/
├── config.yml
├── domain/
├── data/flows/
└── sub_agents/
└── stock_explorer/
├── config.yml # mandatory
└── prompt_template.jinja2 # optionalThe
config.ymlfile for each agent is mandatory and should look, for example, like this:# Basic agent information
agent:
name: stock_explorer # name of the agent
protocol: RASA # protocol for its connections either RASA or A2A
description: "Agent that helps users research and analyze stock options" # a brief description used by the command generator to continue / stop the agent and the agent during its execution
# Core configuration
configuration:
llm: # (optional) Same format as other Rasa LLM configs
type: openai
model: gpt-4
prompt_template: sub_agents/stock_explorer/prompt_template.jinja2 # (optional) prompt template file containing a customized prompt
timeout: 30 # (optional) seconds before timing out
max_retries: 3 # (optional) connection retry attempts
# MCP server connections
connections:
mcp_servers:
- name: trade_server
include_tools: # optional: specify which tools to include
- find_symbol
- get_company_news
- apply_technical_analysis
- fetch_live_price
exclude_tools: # optional: tools to exclude; helpful to not allow the agent to execute critical tools.
- place_buy_order
- view_positions -
-
Added the possibility to call an MCP tool directly from a flow step via a
callstep.Example:
- call: place_buy_order # MCP tool name
mcp_server: trade_server # MCP server where tool is available
mapping:
input:
- param: ticker_symbol # tool parameter name
slot: stock_name # slot to send as value
- param: quantity
slot: order_quantity
output:
- slot: order_status # slot to store results
result_key: result.structuredContent.order_status.successThe MCP server needs to be defined in the
endpoints.ymlfilemcp_servers:
- name: trade_server
url: http://localhost:8080
type: http -
We updated the inspector
- to highlight when a call step is calling an agent or an MCP tool using a little icon in the flow view.
- and added an additional agent widget that shows the available agents and their corresponding status in the conversation.
-
Whenever agents are configured, the
SearchReadyLLMCommandGeneratorand theCompactLLMCommandGeneratorwill use new default prompt templates that contain new agent specific commands (RestartAgentandContinueAgent) and instructions. -
Adds Interruption Handling Support (beta) in Voice Stream Channels, namely Browser Audio, Twilio Media Streams and Jambonz Stream. Interruptions are identified from partial transcripts sent by the Automatic Speech Recogintion (ASR) Engine. Interruption Handling is disabled by defaulat and can be configured using the optional
interruptionskey incredentials.yml.browser_audio:
server_url: localhost
interruptions:
enabled: True
min_words: 3
asr:
name: "deepgram"
tts:
name: cartesiaThe configuration property
min_words(default 3) requires the partial transcript to have at least 3 words to interrupt the bot. This is a rudimentary way to filter backchannels (brief responses like "hmm", "yeah", "ok").Interruptions can be disabled for certain responses using the domain response property
allow_interruptions(default true). Example,responses:
utter_current_balance:
- text: You still have {current_balance} in your account.
allow_interruptions: false -
Added the following new events to capture the state of any agent used within a conversation:
AgentStartedAgentCompletedAgentCancelledAgentResumedAgentInterrupted
-
Added support for Redis Cluster mode in the tracker store for horizontal scaling and cloud compatibility.
Added support for Redis Sentinel mode in the tracker store for high availability with automatic failover.
Added 3 new configuration parameters to
RedisTrackerStore:deployment_mode: String value specifying Redis deployment type ("standard", "cluster", or "sentinel"). Defaults to "standard".endpoints: List of strings in "host:port" format defining cluster nodes or sentinel instances.sentinel_service: String value specifying the sentinel service name to connect to. Only used in sentinel mode, defaults to "mymaster".
-
Add support for IAM authentication to AWS RDS SQL tracker store. To enable this feature:
- set the
IAM_CLOUD_PROVIDERenvironment variable toaws. - set the
AWS_DEFAULT_REGIONenvironment variable to your desired AWS region. - if you want to enforce SSL verification, you can set the
SQL_TRACKER_STORE_SSL_MODEenvironment variable (for example, toverify-fullorverify-ca) and provide the path to the CA certificate using theSQL_TRACKER_STORE_SSL_ROOT_CERTIFICATEenvironment variable.
- set the
-
Add support for IAM authentication to AWS Managed Streaming for Kafka event broker. This allows secure authentication to an AWS MSK cluster without the need for static credentials. To enable this feature:
- set the
IAM_CLOUD_PROVIDERenvironment variable toaws. - set the
AWS_DEFAULT_REGIONenvironment variable to your desired AWS region. - ensure that your application has the necessary IAM permissions to access the AWS Managed Service Kafka cluster.
- ensure the topic is created on the MSK cluster.
- use the
SASL_SSLsecurity protocol andOAUTHBEARERSASL mechanism in your Kafka configuration inendpoints.yml. - download the root certificate from Amazon Trust Services: https://www.amazontrust.com/repository/ and provide its path
to the
ssl_cafileevent broker yaml property.
- set the
-
Added support for Redis Cluster mode in
RedisLockStorefor horizontal scaling and cloud compatibility.Added support for Redis Sentinel mode in
RedisLockStorefor high availability with automatic failover.Added 3 new configuration parameters to
RedisLockStore:deployment_mode: String value specifying Redis deployment type ("standard", "cluster", or "sentinel"). Defaults to "standard".endpoints: List of strings in "host:port" format defining cluster nodes or sentinel instances.sentinel_service: String value specifying the sentinel service name to connect to. Only used in sentinel mode, defaults to "mymaster".
-
Added support for Redis Cluster mode in
ConcurrentRedisLockStorefor horizontal scaling and cloud compatibility.Added support for Redis Sentinel mode in
ConcurrentRedisLockStorefor high availability with automatic failover.Added 3 new configuration parameters to
ConcurrentRedisLockStore:deployment_mode: String value specifying Redis deployment type ("standard", "cluster", or "sentinel"). Defaults to "standard".endpoints: List of strings in "host:port" format defining cluster nodes or sentinel instances.sentinel_service: String value specifying the sentinel service name to connect to. Only used in sentinel mode, defaults to "mymaster".
-
Add support for IAM authentication to AWS ElastiCache for Redis lock store. This allows secure authentication to an AWS ElastiCache without the need for static credentials. To enable this feature:
- set the
IAM_CLOUD_PROVIDERenvironment variable toaws. - set the
AWS_DEFAULT_REGIONenvironment variable to your desired AWS region. - download the root certificate from Amazon Trust Services and provide its path to the
ssl_ca_certslock store yaml property. - if enabling cluster mode, set the
AWS_ELASTICACHE_CLUSTER_NAMEenvironment variable to your ElastiCache cluster name. - ensure that your application has the necessary IAM permissions to access the AWS ElastiCache for Redis cluster.
- set the
-
Default silence timeout is now configurable per channel. Default silence timeout is read from channel configuration in credentials file. Example:
audiocodes_stream:
server_url: "humble-arguably-stork.ngrok-free.app"
asr:
name: deepgram
tts:
name: cartesia
silence_timeout: 5Silence timeout at collect step is also configurable per channel:
flows:
- name: example_flow
steps:
- collect:
silence_timeout:
- audiocodes_stream: 5If not configured, default silence timeout is 7 seconds for each channel.
-
Adds support for Deepgram TTS Adds
browser_audiochannel to the credentials.yml intutorialtemplate
Improvements
-
In case a
StartFlowCommandfor a flow, that is already on the stack, is predicted, we now resume the flow and interrupt the current active flow instead of ignoring theStartFlowCommand. -
Updated
pattern_continue_interruptedto ask the user if they want to proceed with any of the interrupted flows before resuming that particular flow. -
We have isolated the dependencies that are only required for NLU components. These include:
transformers(version:"~4.38.2")tensorflow(version:"^2.19.0, only available for"python_version < '3.12')tensorflow-text(version"^2.19.0", only available for"python_version < '3.12')tensorflow-hub(version:"^0.13.0", only available for"python_version < '3.12')tensorflow-io-gcs-filesystem(version:"==0.31"forsys_platform == 'win32', version:"==0.34"forsys_platform == 'linux', version:"==0.34"forsys_platform == 'linux'for"sys_platform == 'darwin' and platform_machine != 'arm64'; all only available for"python_version < '3.12')tensorflow-metal(version:"^1.2.0", only available for"python_version < '3.12')tf-keras(version:"^2.15.0", only available for"python_version < '3.12')spacy(version:"^3.5.4")sentencepiece(version:"~0.1.99", only available for"python_version < '3.12')skops(version:"~0.13.0")mitie(version:"^0.7.36", added for consistency)jieba(version:">=0.42.1, <0.43")sklearn-crfsuite(version:"~0.5.0")
The dependencies for those components are now in their own extra, called
nluand can be installed via:poetry install --extras nlu,pip install 'rasa-pro[nlu]'oruv pip install 'rasa-pro[nlu]'. -
We added dependencies for agent orchestration,
mcp("~1.12.0") anda2a-sdk("~0.3.4"), to the list of default dependencies. As a result, they get installed via:poetry install,pip install 'rasa-pro'oruv pip install 'rasa-pro'.To ensure compatibility between
a2a-sdkandtensorflow,tensorflowand its related dependencies were updated. These include:tensorflow(from"2.14.1"to"^2.19.0")tensorflow-text(from"2.14.0"to^2.19.0)tensorflow-metal(from"1.1.0"to"^1.2.0")- instead of
keras("2.14.0"), we now usetf-keras("^2.15.0")
Additionally, tensorflow dependencies that are incompatible with the upgraded
tensorflowversion were removed. These include:tensorflow-intel,tensorflow-cpu-aws,tensorflow-macos.Because tensorflow and related packages were upgraded, tensorflow code was also updated. As a consequence, the incremental training feature is not supported anymore. This is because
tf-keras("^2.15.0") does not allow a compiled model to be updated. -
We updated the supported Python versions:
- Dropped support for Python 3.9.
- Added support for Python 3.12 and Python 3.13.
So, whilst we previously supported
python = ">=3.9.2,<3.12", we now supportpython = ">=3.10.0,<3.14".
To ensure compatibility with the newly supported Python versions, existing dependencies had to be updated. These include:
protobuf(from"~4.25.8"to"~5.29.5")importlib-resources(from"6.1.3"to"^6.5.2")opentelemetry-sdk(from"~1.16.0"to"~1.33.0")opentelemetry-exporter-jaeger("~1.16.0") - has been removedopentelemetry-exporter-otlp(from"~1.16.0"to"~1.33.0")opentelemetry-api(from"~1.16.0"to"~1.33.0")pep440-version-utils- only available for"python_version < '3.13'"pymilvus(from">=2.4.1,<2.4.2"to"^2.6.1")numpy(from"~1.26.4"to"~2.1.3")scipy("~1.13.1"for"python_version < '3.12'";"~1.14.0"for"python_version >= '3.12'")tensorflow(version:"^2.19.0, only available for"python_version < '3.12')tensorflow-text(version"^2.19.0", only available for"python_version < '3.12')tensorflow-hub(version:"^0.13.0", only available for"python_version < '3.12')tensorflow-io-gcs-filesystem(version:"==0.31"forsys_platform == 'win32', version:"==0.34"forsys_platform == 'linux', version:"==0.34"forsys_platform == 'linux'for"sys_platform == 'darwin' and platform_machine != 'arm64'; all only available for"python_version < '3.12')tensorflow-metal(version:"^1.2.0", only available for"python_version < '3.12')tf-keras(version:"^2.15.0", only available for"python_version < '3.12')sentencepiece(version:"~0.1.99", only available for"python_version < '3.12')
Note that
tensorflowand related dependencies are only supported for Python < 3.12. As a result, components requiring those dependencies are not available for Python >= 3.12. These are:DIETClassifier,TEDPolicy,UnexpecTEDIntentPolicy,ResponseSelector,ConveRTFeaturizerandLanguageModelFeaturizer. -
We have isolated the dependencies required for channel connectors. These include:
fbmessenger(version:"~6.0.0")twilio(version:"~9.7.2")webexteamssdk(version:">=1.6.1,<1.7.0")mattermostwrapper(version:"~2.2")rocketchat_API(version:">=1.32.0,<1.33.0")aiogram(version:"~3.22.0")slack-sdk(version:"~3.36.0")cvg-python-sdk(version:"^0.5.1")
The dependencies for those channels are now in their own extra, called
channelsand can be installed via:poetry install --extras channels,pip install 'rasa-pro[channels]'oruv pip install 'rasa-pro[channels]'. Note that the dependencies for the channelsbrowser_audio,studio_chat,socketIOandrestare not included and remain in the main list of dependencies. -
Validation errors now raise meaningful exceptions instead of calling sys.exit(1), producing clearer and more actionable log messages while allowing custom error handling.
-
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. -
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.
-
Relocate
latency displayin Inspector -
Implement Redis connection factory class to handle different Redis deployment modes. This class abstracts Redis connection creation and automatically selects the appropriate redis-py client (Redis, RedisCluster, or Sentinel) based on configuration.
- In
standardmode, connects to a single Redis instance. - In
clustermode, connects to a Redis Cluster using the provided endpoints. - In
sentinelmode, connects to a Redis Sentinel setup for high availability.
- In
-
Metadata of
action_listenevent in the tracker contains the execution times for Command Processor and Prediction Loop for the previous turn. This information is present in the keyexecution_timesin the metadata and the times are in milliseconds. -
Rasa Voice Inspector (browser_audio channel) used to require a Rasa License with a specific voice scope. This scope requirement has been dropped.
-
Add new environment variables for each AWS service integration (RDS, ElastiCache for Redis, MSK) that indicates whether to use IAM authentication when connecting to the service:
KAFKA_MSK_AWS_IAM_ENABLED- set totrueto enable IAM authentication for MSK connections.RDS_SQL_DB_AWS_IAM_ENABLED- set totrueto enable IAM authentication for RDS connections.ELASTICACHE_REDIS_AWS_IAM_ENABLED- set totrueto enable IAM authentication for ElastiCache for Redis connections.
Bugfixes
- Pass all flows to
find_updated_flowsto avoid creating aHandleCodeChangeCommandin situations where flows were not updated. - The .devcontainer docker-compose file now uses the new
docker.io/bitnamilegacyrepository 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. - In case an agents fails with an fatal error or returns an unkown state, we now cancel
the current active flow next to triggering
pattern_internal_error. - Bugfix for Jambonz Stream channel Websocket URL path which resulted in failed Websocket Connections
- 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_pathsto accept list values and aggregate all missing paths before exiting. - Fix expansion of referenced environment variables in
endpoints.ymlduring Bedrock model config validation. - Enabled the data argument to support both string and list inputs, normalizing to a list for consistent handling.
- 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.
- Fixes the silence handling bug in Audiocodes Stream Channel where consecutive bot responses could trip silence timeout pattern while the bot is speaking. Audiocodes Stream channel now forecefully cancels the silence timeout watcher whenever it sends the bot response audio.
- Use correct formatting method for messages in
completionandacompletionfunctions ofLiteLLMRouterLLMClient.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.13.18] - 2025-12-04
Rasa Pro 3.13.18 (2025-12-04)
Bugfixes
- Update
pipto fix security vulnerability. - Disable LLM health check for Enterprise Search Policy when generative search is disabled (i.e. use_generative_llm is False).
- Fix deduplication of collect steps in cases where the same slot was called in different flows.
- Cancel active flow before triggering internal pattern error during a custom action failure.
- Fix bug with the missing
language_datamodule by installinglangcodeswith thedataextra dependency.
[3.13.17] - 2025-11-27
Rasa Pro 3.13.17 (2025-11-27)
Bugfixes
- Fixed PostgreSQL
UniqueViolationerror when running an assistant with multiple Sanic workers. - Fix Kafka producer creation failing when SASL mechanism is specified in lowercase. The SASL mechanism is now case-insensitive in the Kafka producer configuration.
- Fix issue where the validation of the assistant files continued even when the provided domain was invalid and was being loaded as empty. The training or validation command didn't exit because the final merged domain contained only the default implementations for patterns, slots and responses and therefore passed the check for being non-empty.
- Trigger pattern_internal_error in a CALM assistant when a custom action fails during execution.
- Create AWS Bedrock / Sagemaker client only if the LLM healthcheck environment variable is set. If the environment variable is not set, validate that required credentials are present.
- Update
langchain-coreversion to~0.3.80to address security vulnerability CVE-2025-65106. - Raise validation error when duplicate slot definitions are found across domains.
- Raise validation error when a slot with an initial value set is collected by a flow collect step
which sets
asks_before_fillingtotruewithout having a corresponding collect utterance or custom action.
[3.13.16] - 2025-11-21
Rasa Pro 3.13.16 (2025-11-21)
Bugfixes
- Fixed
patten-continue-interruptedrunning out of order before linked flows. - Fix
rasa studio uploadtimeouts by enabling TCP keep-alive with platform-specific socket options to maintain stable connections. - Remove
action_metadatatracing span attribute fromEnterpriseSearchPolicyinstrumentation to prevent PII leakages. Add new environment variableRASA_TRACING_DEBUGGING_ENABLEDto enable addingaction_metadatatoEnterpriseSearchPolicyspans for debugging purposes. By default, this variable is set tofalseto ensure PII is not logged in production environments.
[3.13.15] - 2025-11-13
Rasa Pro 3.13.15 (2025-11-13)
Miscellaneous internal changes
Miscellaneous internal changes.
[3.13.14] - 2025-10-30
Rasa Pro 3.13.14 (2025-10-30)
Improvements
-
Add new environment variable
LOG_LEVEL_PYMONGOto control the logging level of PyMongo dependency of Rasa. This can be useful to reduce the verbosity of logs. Default value isINFO.The logging level of PyMongo can also be set via the
LOG_LEVEL_LIBRARIESenvironment variable, which provides the default logging level for a selection of third-party libraries used by Rasa. If both variables are set,LOG_LEVEL_PYMONGOtakes precedence.
Bugfixes
-
Clean up duplicated
ChitChatAnswerCommandsin command processor.Ensure that one
CannotHandleCommandremains if only multipleCannotHandleCommandswere present. -
LLM request timeouts are now enforced at the event loop level using
asyncio.wait_for.Previously, timeout values configured in
endpoints.ymlcould be overridden by the HTTP client's internal timeout behavior. This fix ensures that when a specific timeout value is configured for LLM requests, the request respects that exact timing regardless of the underlying HTTP client implementation. -
Fixed an issue where duplicate collect steps in a flow could cause rendering problems, such as exceeding token limits. This occurred when a flow called another flow multiple times. Now, each collect step is listed only once when retrieving all collect steps for a flow.
-
If a FloatSlot does not have min and max values set in the domain, the slot will not be validated against any range. If the slot defines an initial value, as well as min and max values, the initial value will be validated against the range and an error will be raised if the initial value is out of range. Enhance run-time validation for new values assigned to FloatSlot instances, ensuring they fall within the defined min and max range if these are set. If min and max are not set, no range validation is performed.
-
Fixed bug preventing
deploymentparameter from being used in generative response LLM judge configuration. -
Fixed bug where
persisted_slotsdefined in called flows were incorrectly reset when the parent flow ended, unless they were also explicitly defined in the parent flow. Persisted slots now only need to be defined in the called flow to remain persisted after the parent flow ends. -
Fixes the prompt template resolution logic in the CompactLLMCommandGenerator and SearchReadyLLMCommandGenerator classes.
-
When
action_clean_stackis used in a user flow, allowpattern_completedto be triggered even if there are pattern flows at the bottom of the dialogue stack below the top user flow frame. Previously,pattern_completedwould only trigger if there were no other frames below the top user flow frame. This assumes that theaction_clean_stackis the last action called in the user flow. -
Update
pipversion used in Dockerfile to23.*to address security vulnerability CVE-2023-5752. Updatepython-socketioversion to5.14.0to address security vulnerability CVE-2025-61765.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.13.13] - 2025-10-13
Rasa Pro 3.13.13 (2025-10-13)
Bugfixes
- Use correct formatting method for messages in
completionandacompletionfunctions ofLiteLLMRouterLLMClient.
[3.13.12] - 2025-09-17
Rasa Pro 3.13.12 (2025-09-17)
Improvements
- Accept either
RASA_PRO_LICENSEorRASA_LICENSEas a valid Environment Variable for providing the Rasa License. Also deprecatesRASA_PRO_LICENSEEnvironment Variable.
Bugfixes
- Fixed conversation hanging when using direct action execution with invalid actions module by deferring module validation until action execution time, allowing proper exception handling in the processor.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.13.11] - 2025-09-15
Rasa Pro 3.13.11 (2025-09-15)
No significant changes.
[3.13.10] - 2025-09-12
Rasa Pro 3.13.10 (2025-09-12)
Bugfixes
- Fixes the silence handling bug in Audiocodes Stream Channel where consecutive bot responses could trip silence timeout pattern while the bot is speaking. Audiocodes Stream channel now forcefully cancels the silence timeout watcher whenever it sends the bot response audio.
- Update
langchainto0.3.27andlangchain-communityto0.3.29to fix CVE-2025-6984 vulnerability inlangchain-communityversion0.2.19.
[3.13.9] - 2025-09-03
Rasa Pro 3.13.9 (2025-09-03)
Bugfixes
- Upgrade
skopsto version0.13.0andrequeststo version2.32.5to 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/bitnamilegacyrepository 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.ymlduring 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
NoneasNonecounts 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_pathsto 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
axiosto 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
Inspectordependent packages (vite, and@adobe/css-tools) to address security vulnerabilities. - Fixed bug preventing
model_groupfrom being used withembeddingsin 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_flowsto avoid creating aHandleCodeChangeCommandin 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_intervalparameter
[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_silenceparameter 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,fakerandpycountrydependencies from Rasa Pro.
Features
-
Introducing the
SearchReadyLLMCommandGeneratorcomponent, an enhancement over theCompactLLMCommandGenerator. This new component improves the triggering accuracy ofKnowledgeAnswerCommandand should be used when theEnterpriseSearchPolicyis added to the pipeline. By default, this new component does not trigger theChitChatAnswerCommandandHumanHandoffCommand. Handling small talk and chit-chat conversations is now delegated to theEnterpriseSearchPolicy.To incorporate the
SearchReadyLLMCommandGeneratorinto 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.
-
EnterpriseSearchPolicycan 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_relevancytotruein 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_handleto 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_streamvoice-stream channel. Log level ofwebsocketslibrary is set toERRORby default, it can be changed by the environment variableLOG_LEVEL_LIBRARIES. -
Remove the beta feature flag check from the
RepeatBotMessagesCommand. TheRASA_PRO_BETA_REPEAT_COMMANDenvironment 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-002totext-embedding-3-large. UpdateLLMBasedRouter,IntentlessPolicyandContextualResponseRephraserdefault models to usegpt-4o-2024-11-20instead ofgpt-3.5-turbo. Update theEnterpriseSearchPolicyto usegpt-4.1-mini-2025-04-14instead ofgpt-3.5-turbo. -
Update
MultistepCommandGeneratorto usegpt-4o, specificallygpt-4o-2024-11-20, instead ofgpt-3.5-turboasgpt-3.5-turbowill be deprecated on July 16, 2025. Add deprecation warning forSingleStepCommandGenerator; leave current default model asgpt-4-0613. Adapt tests for CommandGenerators to usegpt-4oinstead ofgpt-3.5-turbodue to upcoming model deprecation. UpdateLLMJudgeModelandFine tuning Conversation Rephraserto usegpt-4.1-mini, specificallygpt-4.1-mini-2025-04-14, instead ofgpt-4o-mini, asgpt-4o-miniwill be deprecated on September 15, 2025. -
Make
CALMtemplate the default forrasa init. -
Redis lock store now accepts
hostproperty from endpoints config. Propertyurlis 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
usernameandpasswordin 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 linkto associate a local project with a specific Studio assistant. - Added
rasa studio pullandrasa studio push, with subcommands for granular resource updates (config,endpoints) between local and Studio assistants.
- Introduced
-
Implement
deletemethod forInMemoryTrackerStore,AuthRetryTrackerStore,AwaitableTrackerStoreandFailSafeTrackerStoresubclasses. -
Implement
deletemethod forMongoTrackerStore. -
Implement
deletemethod for SQLTrackerStore: this method accepts sender_id and deletes the corresponding tracker from the store if it exists. -
Implement
deletemethod for DynamoTrackerStore: this method accepts sender_id and deletes the corresponding tracker from the store if it exists. -
Implement
deletemethod forRedisTrackerStore. -
Update
KafkaEventBrokerYAML 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 toTruefor 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_attimestamp field to the Rasa Pro events supported by the PII management capability:userslotbotThis field indicates when the PII data in the event was anonymized. The field is set tonullif the PII data has not been anonymized.
-
Add support for reading
privacyconfiguration key from endpoints file to enable PII management capability. -
Add new
DELETE /conversations/<conversation_id>/trackerendpoint that allows deletion of tracker data for a specific conversation. -
Cleaned up potential sources of PII from
info,exceptionanderrorlogs. -
Allow default patterns to link to
pattern_chitchat. -
Cleaned up potential sources of PII from
warninglogs. -
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_chitchatnow defaults to responding withutter_cannot_handleinstead 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.float64from 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_stringthat escapes newlines (\n), tabs (\t), and quotes (\") for safe JSON rendering.to_json_encoded_stringfilter preserves other special characters (e.g., umlauts) without encoding them. - Updated the default prompts for
gpt-4oandclaude-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_addonto useDEBUGlevel. -
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 inspectwould always set theroute_session_to_calmslot 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
CannotHandlecommand when the slot predicted by the LLM is not defined in the domain. -
Fix tracker store PII background jobs not updating the
InMemoryTrackerStorereference stored by the Agent. -
Fix potential
KeyErrorinEnterpriseSearchPolicycitation 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
FloatSlotswhen 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.41] - 2025-12-04
Rasa Pro 3.12.41 (2025-12-04)
Bugfixes
- Update
pipto fix security vulnerability. - Disable LLM health check for Enterprise Search Policy when generative search is disabled (i.e. use_generative_llm is False).
- Fix deduplication of collect steps in cases where the same slot was called in different flows.
- Cancel active flow before triggering internal pattern error during a custom action failure.
- Fix bug with the missing
language_datamodule by installinglangcodeswith thedataextra dependency.
[3.12.40] - 2025-11-27
Rasa Pro 3.12.40 (2025-11-27)
Bugfixes
- Fixed PostgreSQL
UniqueViolationerror when running an assistant with multiple Sanic workers. - Fix issue where the validation of the assistant files continued even when the provided domain was invalid and was being loaded as empty. The training or validation command didn't exit because the final merged domain contained only the default implementations for patterns, slots and responses and therefore passed the check for being non-empty.
- Trigger pattern_internal_error in a CALM assistant when a custom action fails during execution.
- Update
langchain-coreversion to~0.3.80to address security vulnerability CVE-2025-65106. - Raise validation error when duplicate slot definitions are found across domains.
- Raise validation error when a slot with an initial value set is collected by a flow collect step
which sets
asks_before_fillingtotruewithout having a corresponding collect utterance or custom action.
[3.12.39] - 2025-11-21
Rasa Pro 3.12.39 (2025-11-21)
Bugfixes
- Fixed
patten-continue-interruptedrunning out of order before linked flows. - Remove
action_metadatatracing span attribute fromEnterpriseSearchPolicyinstrumentation to prevent PII leakages. Add new environment variableRASA_TRACING_DEBUGGING_ENABLEDto enable addingaction_metadatatoEnterpriseSearchPolicyspans for debugging purposes. By default, this variable is set tofalseto ensure PII is not logged in production environments. - Fix Kafka producer creation failing when SASL mechanism is specified in lowercase. The SASL mechanism is now case-insensitive in the Kafka producer configuration.
[3.12.38] - 2025-11-13
Rasa Pro 3.12.38 (2025-11-13)
Miscellaneous internal changes
Miscellaneous internal changes.
[3.12.37] - 2025-10-30
Rasa Pro 3.12.37 (2025-10-30)
Bugfixes
-
Clean up duplicated
ChitChatAnswerCommandsin command processor.Ensure that one
CannotHandleCommandremains if only multipleCannotHandleCommandswere present. -
LLM request timeouts are now enforced at the event loop level using
asyncio.wait_for.Previously, timeout values configured in
endpoints.ymlcould be overridden by the HTTP client's internal timeout behavior. This fix ensures that when a specific timeout value is configured for LLM requests, the request respects that exact timing regardless of the underlying HTTP client implementation. -
Fixed an issue where duplicate collect steps in a flow could cause rendering problems, such as exceeding token limits. This occurred when a flow called another flow multiple times. Now, each collect step is listed only once when retrieving all collect steps for a flow.
-
Fixes the prompt template resolution logic in the CompactLLMCommandGenerator.
-
When
action_clean_stackis used in a user flow, allowpattern_completedto be triggered even if there are pattern flows at the bottom of the dialogue stack below the top user flow frame. Previously,pattern_completedwould only trigger if there were no other frames below the top user flow frame. This assumes that theaction_clean_stackis the last action called in the user flow. -
Update
pipversion used in Dockerfile to23.*to address security vulnerability CVE-2023-5752.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.12.36] - 2025-10-27
Rasa Pro 3.12.36 (2025-10-27)
Miscellaneous internal changes
Miscellaneous internal changes.
[3.12.35] - 2025-10-21
Rasa Pro 3.12.35 (2025-10-21)
Improvements
-
Add new environment variable
LOG_LEVEL_PYMONGOto control the logging level of PyMongo dependency of Rasa. This can be useful to reduce the verbosity of logs. Default value isINFO.The logging level of PyMongo can also be set via the
LOG_LEVEL_LIBRARIESenvironment variable, which provides the default logging level for a selection of third-party libraries used by Rasa. If both variables are set,LOG_LEVEL_PYMONGOtakes precedence.
Bugfixes
- If a FloatSlot does not have min and max values set in the domain, the slot will not be validated against any range. If the slot defines an initial value, as well as min and max values, the initial value will be validated against the range and an error will be raised if the initial value is out of range. Enhance run-time validation for new values assigned to FloatSlot instances, ensuring they fall within the defined min and max range if these are set. If min and max are not set, no range validation is performed.
- Fixed bug preventing
deploymentparameter from being used in generative response LLM judge configuration. - Fixed bug where
persisted_slotsdefined in called flows were incorrectly reset when the parent flow ended, unless they were also explicitly defined in the parent flow. Persisted slots now only need to be defined in the called flow to remain persisted after the parent flow ends.
[3.12.34] - 2025-10-13
Rasa Pro 3.12.34 (2025-10-13)
Bugfixes
- Fixed conversation hanging when using direct action execution with invalid actions module by deferring module validation until action execution time, allowing proper exception handling in the processor.
- Use correct formatting method for messages in
completionandacompletionfunctions ofLiteLLMRouterLLMClient.
[3.12.33] - 2025-09-12
Rasa Pro 3.12.33 (2025-09-12)
Bugfixes
- Fixes the silence handling bug in Audiocodes Stream Channel where consecutive bot responses could trip silence timeout pattern while the bot is speaking. Audiocodes Stream channel now forcefully cancels the silence timeout watcher whenever it sends the bot response audio.
- Fixed flow retrieval to skip vector store population when there are no flows to embed.
[3.12.32] - 2025-09-03
Rasa Pro 3.12.32 (2025-09-03)
Bugfixes
- Upgrade
skopsto version0.13.0andrequeststo version2.32.5to 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/bitnamilegacyrepository 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
NoneasNonecounts 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
axiosto 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
Inspectordependent packages (vite, and@adobe/css-tools) to address security vulnerabilities. - Fixed bug preventing
model_groupfrom being used withembeddingsin 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_flowsto avoid creating aHandleCodeChangeCommandin 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_intervalparameter
[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
CannotHandlecommand when the slot predicted by the LLM is not defined in the domain. -
Fix potential
KeyErrorinEnterpriseSearchPolicycitation 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
defaultas the Sender ID. Added a new methodVoiceInputChannel.get_sender_id(call_parameters)that returns the platform'scall_idas 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
InvalidFlowStepIdExceptionthrown 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
InvalidFlowStepIdExceptionin newer Rasa versions that expect the flow ID prefix. -
- Fix an issue where running
rasa inspectwould always set theroute_session_to_calmslot 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
domainan optional argument inCommandProcessorComponent. This change addresses a potentialTypeErrorthat 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
StoryGraphProviderfrom the prediction graph in caseIntentlessPolicyis not present to reduce the loading time of the bot in cases where theIntentlessPolicyis 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_tokensis not supported for theomodels. - Exposes LiteLLM's
drop_paramsparameter 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-onlythat can be used by the model service to store the model in the root of the remote storage. Propagate this parameter to the persistor'spersistmethod. 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_callsin the config of LLM-based command generators toTrue.
[3.12.12] - 2025-05-15
Rasa Pro 3.12.12 (2025-05-15)
Improvements
- Improved
CRFEntityExtractorpersistence 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_phoneandbot_phoneavailable in session_started_metadata are swapped to correctly map tocalllerandcalleerespectively. Fixed evening handling where events without the key "parameters" raised an exception. - Filtered out only
Nonevalues 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_visitedset 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_addonto useDEBUGlevel. - Add support for
auth_tokento Rasa Inspector. - Fixed issue where a slot mapping referencing a form in the
active_loopslot mapping conditions that wouldn't list this slot in the form'srequired_slotscaused 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,
usernameandpasswordwhich 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
usernameandpasswordin 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_hangupon 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_digressionsblock_digressionsRemove the new patternpattern_handle_digressions.
Features
- Introduce a new boolean property
force_slot_fillingfor thecollectflow 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_fillingproperty toTruein thecollectstep 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_fillingis set toTrue, the command generator will only process theSetSlotcommand 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_mappingsby 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
ChitChatAnswerCommandcommand replaced withCannotHandleCommandif there are no e2e stories defined. Improve validation thatIntentlessPolicyhas 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 theChitChatAnswerCommandcommand. -
- 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_stringthat escapes newlines (\n), tabs (\t), and quotes (\") for safe JSON rendering.to_json_encoded_stringfilter preserves other special characters (e.g., umlauts) without encoding them. - Updated the default prompts for
gpt-4oandclaude-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:
jinja2werkzeugcryptographypyarrowlangchainlangchain-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.float64from 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_ASSERTIONSenvironment variable is no longer needed as the feature is GA in 3.12.0. - Deprecate the
customslot mapping type and itsactionslot mapping property which has been replaced withrun_action_every_turnproperty name to retain backwards-compatible behavior. - Deprecate the former list of dictionaries format for the
conditionkey 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 totrueor 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 totrueor 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_digressionswhich is triggered only when the above attributes are used. -
Implement real-time validation of slot values.
Add an optional property
validationto slots to configure validations that should be run immediately. This property expects a list ofrejectionsand arefill_utterwhich 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
CompactLLMCommandGeneratorcomponent, an enhancement over theSingleStepLLMCommandGenerator. This new component utilizes the highest-performing prompts for the modelsgpt-4o-2024-11-20andclaude-3-5-sonnet-20240620.To incorporate the
CompactLLMCommandGeneratorinto 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
languagekey inconfig.yml, while additional supported languages are specified underadditional_languages. - A
translationsection was introduced for responses to provide language-specific versions of the response text. - A
translationsection 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 translationsis available for verification. - A new slot type,
StrictCategoricalSlot, was developed to restrict its values to a predefined set. - A built-in
languageslot of theStrictCategoricalSlottype 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_msconfiguration to deepgram asr to handle noisy environments better -
Replace the optional dependency
mlflowleveraged 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_relevantandgenerative_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_completedto 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_predictionmethod ofFallbackClassifier -
Add capability to control whether
pattern_completedshould execute when flow completes its execution. To control this behavior, a new parameterrun_pattern_completedis added to the flow definition. By default this parameter is set toTruewhich meanspattern_completedwill be executed when flow completes its execution (backward compatible). If this parameter is set toFalse,pattern_completedwill 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_llmslot 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
NLUCommandAdapterhas 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 afterNLUCommandAdapterhad issued commands.Update the default utterance
utter_corrected_previous_inputto 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
controlledthat can be assigned to slots that are set via button payloads,set_slotsflow steps or custom actions.Slots that solely use the new
controlledslot 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 deprecatedcustommapping 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
controlledslots 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_systemproperty 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_llmmethod. This let's the user switch between theuserandsystemroles when invoking the LLM model. -
Add support for
pypredpredicates in conditional response variations, similar to the usage of predicates in flows. Theconditionkey in a response variation can now also be a string predicate that supports only theslotsnamespace. One of many logical operators supported isnot. -
Make current slot type and its allowed values available for the prompt template rendering in
SingleStepLLMCommandGeneratorandCompactLLMCommandGeneratorclasses. Now you can use{{ current_slot_type }}and{{ current_slot_allowed_values }}placeholders in your custom prompt template. -
Made azure ASR
endpointandhost, azure ttsendpointand cartesia ttsendpointconfigurable. -
Support usage of custom commands in the fine-tuning recipe.
-
add support for
msttsmarkups on azure TTS for improved SSML usage
Bugfixes
- Add the possibility to pass a
transformcallable 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
typekey to specify valid enum type asslotonly. -
- Fixed an issue where the
pattern_continue_interruptedwas 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_slotsto 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_relevantassertion. 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
ValidateSlotPatternFlowStackFramewas being triggered multiple times. - Handle multiple duplicate digressing flows occurring within the same flow:
- if
action_block_digressionsruns for a found duplicate digressing flow already on the stack, it will not add it again - if
action_continue_digressionsruns 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
StartFlowcommands. - 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
NoneasNonecounts 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
Inspectordependent packages (vite, and@adobe/css-tools) to address security vulnerabilities. - Upgrade
axiosto fix security vulnerability. - Upgrade
litellmto 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
CannotHandlecommand when the slot predicted by the LLM is not defined in the domain. - Fix potential
KeyErrorinEnterpriseSearchPolicycitation 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
InvalidFlowStepIdExceptionin newer Rasa versions that expect the flow ID prefix. - Fix an issue where running
rasa inspectwould always set theroute_session_to_calmslot 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
domainan optional argument inCommandProcessorComponent. This change addresses a potentialTypeErrorthat 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_tokensis not supported for theomodels. - Exposes LiteLLM's
drop_paramsparameter for LLM configurations. :
- Updates the parameter name from
Bugfixes
- The
Clarifycommand 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
StoryGraphProviderfrom the prediction graph in caseIntentlessPolicyis not present to reduce the loading time of the bot in cases where theIntentlessPolicyis 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-onlythat can be used by the model service to store the model in the root of the remote storage. Propagate this parameter to the persistor'spersistmethod. 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
CRFEntityExtractorpersistence 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_phoneandbot_phoneavailable in session_started_metadata are swapped to correctly map tocalllerandcalleerespectively. 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_visitedset 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_tokento Rasa Inspector. - Fixed issue where a slot mapping referencing a form in the
active_loopslot mapping conditions that wouldn't list this slot in the form'srequired_slotscaused 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,
usernameandpasswordwhich 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
usernameandpasswordin 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_hangupon 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
ChitChatAnswerCommandcommand replaced withCannotHandleCommandif there are no e2e stories defined. Improve validation thatIntentlessPolicyhas 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 theChitChatAnswerCommandcommand. - 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:
jinja2werkzeugrequestscryptographypyarrowlangchainlangchain-community
[3.11.5] - 2025-02-18
Rasa Pro 3.11.5 (2025-02-18)
Bugfixes
- Updated
Inspectordependent packages (cross-spawn, mermaid, dom-purify, vite, braces, ws, axios and rollup) to address security vulnerabilities. - Enable default action
action_extract_slotsto 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_predictionmethod ofFallbackClassifier
Bugfixes
-
- Fixed an issue where the
pattern_continue_interruptedwas 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
DirectCustomActionExecutorby registering custom actions only once. - Updated
cryptographyandanyioto 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/trainendpoint. An invalid flow yaml will return a 400 response status code with a message describing the error. - Make
pattern_session_startwork withrasa inspectorto 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_caseskey 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
jsonpickledependency by upgrading to the patched version. - Updated
pymilvusandminioto 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_typekey is only used for supported providers (Azure and OpenAI). - Enable asserting events returned by
action_session_startwhen running end-to-end testing with assertions format. The following assertions can be used:slot_was_setslot_was_not_setbot_utteredbot_did_not_utteraction_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-datawhen using a subclass ofSingleStepLLMCommandGenerator. - Resolved an issue where
rasa llm finetune prepare-datadid 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
transformcallable 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
UnexpecTEDIntentPolicyfrom the default config.yml. It is an experimental policy and not suitable for default configuration - The
reset_after_flow_endsproperty of collect steps is now deprecated and will be removed in Rasa Pro 4.0.0. Please use thepersisted_slotsproperty 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_hangupit can be used to hang up a phone call from a flow. AddedSessionEndedevent andSessionEndCommandcommand Updated Audiocodes, Jambonz and Twilio Voice channels to send/session_endif 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_groupsas 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_groupscan then be referenced inconfig.ymlas 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.ymlfor 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_versioninmodel_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
routerkey with arouting_strategyto control how requests are distributed among the models.
Example configuration in
endpoints.ymlfor 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
UserSilenceCommandandpattern_user_silencewhich 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_timeoutandconsecutive_silence_timeouts. Silence Monitoring is disabled by default and can be enabled using the configurationmonitor_silence: truein 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_startis 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_CALMto 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_startintent at the beginning of conversation and the channel parameterinitial_prompthas 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_metadataslot. 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_CHECKtoFalse. -
Socketiochannel connector now sends the websocket messagestracker_stateandrasa_eventswith each bot response.tracker_statecontains the tracker store state at that point in conversation and includes slots, events, stack, latest message and latest action.rasa_eventscontains 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
Draft202012Validatoronce and caching it. -
Add an optional property
persisted_slotsat 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
ASREngineandTTSEngine -
If flow retrieval is disabled, a warning is raised only if the number of user flows exceed 20.
-
Added validation to the
TestCaseclass 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-hangupvariable 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_nameto Qdrant's configuration to enable customization of the vector field name for storing embeddings. -
Enhanced
YamlValidationExceptionerror 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_utterto 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 uploadexecution. -
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-validationto 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_historyflag 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_historyis set toFalsecan 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
AttributeErrorwith the instrumentation of therunmethod of theCustomActionExecutorclass. -
Throw DuplicatedFlowIdException during
rasa data validateandrasa trainif there are duplicate flows defined. -
Replace
pickleandjoblibwith 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
persistorloadmethod, make sure to update your code. Please contact us in case you encounter any problems.Affected components:
CountVectorFeaturizerLexicalSyntacticFeaturizerLogisticRegressionClassifierSklearnIntentClassifierDIETClassifierCRFEntityExtractorTrackerFeaturizerTEDPolicyUnexpectedIntentTEDPolicy
-
Avoid filling slots that have
ask_before_filling = Trueand utilize afrom_textslot mapping during other steps in the flow. Ensure that theNLUCommandAdapteronly fills these types of slots when the flow reaches the designated collection step. -
Check for the metadata's
step_idandactive_flowkeys when adding theActionExecutedevent 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-storageCLI flag is used. -
Fix issue in e2e testing when customising
action_session_startwould lead to AttributeError, because theoutput_channelwas not set. This is now fixed by setting theoutput_channeltoCollectingOutputChannel().
Miscellaneous internal changes
Miscellaneous internal changes.
[3.10.27] - 2025-06-03
Rasa Pro 3.10.27 (2025-06-03)
Bugfixes
- Make
domainan optional argument inCommandProcessorComponent. This change addresses a potentialTypeErrorthat 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_tokensis not supported for theomodels. - Exposes LiteLLM's
drop_paramsparameter for LLM configurations.
- Updates the parameter name from
Bugfixes
- The
Clarifycommand 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
StoryGraphProviderfrom the prediction graph in caseIntentlessPolicyis not present to reduce the loading time of the bot in cases where theIntentlessPolicyis 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
CRFEntityExtractorpersistence 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_visitedset 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_tokento 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_loopslot mapping conditions that wouldn't list this slot in the form'srequired_slotscaused 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
usernameandpasswordin 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
ChitChatAnswerCommandcommand replaced withCannotHandleCommandif there are no e2e stories defined. Improve validation thatIntentlessPolicyhas 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 theChitChatAnswerCommandcommand. - 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
Inspectordependent 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:
jinja2werkzeugrequestscryptographypyarrowlangchainlangchain-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_predictionmethod ofFallbackClassifier
Bugfixes
-
- Fixed an issue where the
pattern_continue_interruptedwas 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-datawhen using a subclass ofSingleStepLLMCommandGenerator.
- Fixed an error in
- Make
pattern_session_startwork withrasa inspectorto 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_caseskey 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
jsonpickledependency by upgrading to the patched version. - Updated
pymilvusandminioto address security vulnerability.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.10.15] - 2024-12-18
Rasa Pro 3.10.15 (2024-12-18)
Bugfixes
- Validate that
api_typekey is only used for supported providers (Azure and OpenAI). - Fix issue in e2e testing when customising
action_session_startwould lead to AttributeError, because theoutput_channelwas not set. This is now fixed by setting theoutput_channeltoCollectingOutputChannel(). - Fixed the accuracy calculation to prevent 100% assertion reporting when a test case fails before any assertions are reached.
- 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.
- Try to instantiate LLM/embeddings client when loading component to validate environment variables.
- Enable asserting events returned by
action_session_startwhen running end-to-end testing with assertions format. The following assertions can be used:slot_was_setslot_was_not_setbot_utteredaction_executed
[3.10.14] - 2024-12-04
Rasa Pro 3.10.14 (2024-12-04)
Bugfixes
- Avoid filling slots that have
ask_before_filling = Trueand utilize afrom_textslot mapping during other steps in the flow. Ensure that theNLUCommandAdapteronly fills these types of slots when the flow reaches the designated collection step. - Fixes OpenAIException - AsyncClient.init() got an unexpected keyword argument 'proxies'
- Fix validation for LLM/Embedding clients when the api_base is configured in the config itself but not as an environment variable.
[3.10.13] - 2024-11-29
Rasa Pro 3.10.13 (2024-11-29)
Bugfixes
- Implement
eqandhashfunctions forChangeFlowCommandto fixerror=unhashable type: 'ChangeFlowCommand'error inMultiStepCommandGenerator. - Fixed an issue on Windows where flow files with names starting with 'u' would fail to load due to improper path escaping in YAML content processing
- Store the value of the
--disable-verifyCLI flag in thedisable_verifyattribute of theStudioConfigobject, so it can be reused across other studio commands.
[3.10.12] - 2024-11-25
Rasa Pro 3.10.12 (2024-11-25)
Bugfixes
-
Replace
pickleandjoblibwith 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
persistorloadmethod, make sure to update your code. Please contact us in case you encounter any problems.Affected components:
CountVectorFeaturizerLexicalSyntacticFeaturizerLogisticRegressionClassifierSklearnIntentClassifierDIETClassifierCRFEntityExtractorTrackerFeaturizerTEDPolicyUnexpectedIntentTEDPolicy
[3.10.11] - 2024-11-20
Rasa Pro 3.10.11 (2024-11-20)
Bugfixes
- Fix parsing of commands in case the LLM response surrounds flow names, slot names, or slot values with single or double quotes.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.10.10] - 2024-11-14
Rasa Pro 3.10.10 (2024-11-14)
Bugfixes
- Check for the metadata's
step_idandactive_flowkeys when adding theActionExecutedevent to the flows paths stack.
[3.10.9] - 2024-11-13
Rasa Pro 3.10.9 (2024-11-13)
Bugfixes
- Introduced the environment variable
MAX_NUMBER_OF_PREDICTIONS_CALMto 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. - Filter out comments from e2e test input files when writing e2e results to file.
- Specified UTF-8 encoding to correctly read test cases on Windows.
[3.10.8] - 2024-10-24
Rasa Pro 3.10.8 (2024-10-24)
Bugfixes
- The user message "/restart" is now restarting the session again after adding a proper implementation
(stack frame and command) for
pattern_restart. - Only infer and set the provider to
azurefor our LLM clients in case NOprovideris specified, but thedeploymentkey is set. - Fix OPENAI_API_KEY authentication error when using self-hosted provider.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.10.7] - 2024-10-17
Rasa Pro 3.10.7 (2024-10-17)
Improvements
- Change default response of
utter_free_chitchat_responsefrom"placeholder_this_utterance_needs_the_rephraser"to"Sorry, I'm not able to answer that right now.".
Bugfixes
- Disallow using the command payload syntax to set slots not filled by any of the active or startable flow(s)
collectsteps. - Add flow name to error message
validator.verify_flows_steps_against_domain.collect_step. - Update e2e test results output files on each test run so that, for example, when all tests pass on subsequent runs after failing previously, the failed results output file is emptied.
- Disable strict SSL verification to the Rasa Studio authentication server via the
--disable-verifyor-xCLI argument added to therasa studio configcommand. - Upgrade
zippdependency version to fix a security vulnerability: CVE-2024-5569.
[3.10.6] - 2024-10-04
Rasa Pro 3.10.6 (2024-10-04)
Bugfixes
- Fix cleanup of
SetSlotcommands issued by the LLM-based command generator for slots that define a slot mapping other than thefrom_llmslot mapping. The command processor now correctly removes the SetSlot command in these scenarios and instead adds aCannotHandleCommand. - Fix
UnicodeDecodeErrorwhile reading Windows path from yaml files. - Fix model loading from remote storage by correcting the handling of remote storage enum during the creation of the persistor object.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.10.5] - 2024-10-01
Rasa Pro 3.10.5 (2024-10-01)
Bugfixes
-
Fix the case where IntentlessPolicy is triggered while no e2e stories were written to guide it. In this situation a CannotHandleCommand will be issued.
-
Update litellm to version 1.45.0 to fix security vulnerability (CVE-2024-6587). Update gitpython to version 3.1.41 to fix security vulnerability (CVE-2024-22190). Update certifi to version 2024.07.04 to fix security vulnerability (CVE-2024-39689).
-
Prevent invalid domain with incorrectly defined intent from throwing stack trace. Throw InvalidDomain exception and send message to the user instead. The message looks like this:
Detected invalid intent definition: {'intent': 'ask_help'}.
Please make sure all intent definitions are valid. -
Support text completions endpoint when using self hosted models.
The
use_chat_completions_endpointparameter is now supported when using self-hosted models. This parameter is used to enable the use of the chat completions endpoint when using a self-hosted model. This parameter is set toTrueby default. To use the text completions endpoint, setuse_chat_completions_endpointtoFalsein thellmsection of the component.Usage:
llm:
provider: self-hosted
model: meta-llama/Meta-Llama-3-8B
api_base: "https://my-endpoint/v1"
use_chat_completions_endpoint: false -
Fixes an issue where the
CountVectorsFeaturizerandLogisticRegressionClassifierwould throw error during inference when no NLU training data is provided. -
Added tracing explicitly to
GRPCCustomActionExecutor.runin order to pass the tracing context to the action server.
[3.10.4] - 2024-09-25
Rasa Pro 3.10.4 (2024-09-25)
Bugfixes
- Fix failing validation of categorical slots when slot values contain Apostrophe.
[3.10.3] - 2024-09-20
Rasa Pro 3.10.3 (2024-09-20)
No significant changes.
[3.10.2] - 2024-09-19
Rasa Pro 3.10.2 (2024-09-19)
Deprecations and Removals
- Dropped support for Python 3.8 ahead of Python 3.8 End of Life in October 2024. In Rasa Pro versions 3.10.0, 3.9.11 and 3.8.13, we needed to pin the TensorFlow library version to 2.13.0rc1 in order to remove critical vulnerabilities; this resulted in poor user experience when installing these versions of Rasa Pro with
uv pip. Removing support for Python 3.8 will make it possible to upgrade to a stabler version of TensorFlow.
Improvements
- Update Keras and Tensorflow to version 2.14.
This will eliminate the need to use the
--prerelease allowflag when installing Rasa Pro usinguv piptool.
Bugfixes
-
Revert the old behavior when loading trained model by supplying a path to the model on the remote storage by using the model path (
-m) argument whenREMOTE_STORAGE_PATHenvironment variable is not set. Resulting path on the remote storage will be the same as the model path (-m) argument.Additionally, entire model path (
-m) argument wil be used when trained model is being uploaded to the remote storage withREMOTE_STORAGE_PATHenvironment variable not set. Resulting path on the remote storage will be the same as the model path (-m) argument.If
REMOTE_STORAGE_PATHenvironment variable is set, only the file name part of the model path (-m) argument is used in both loading and storage from/to the remote storage. Resulting path on the remote storage will be:REMOTE_STORAGE_PATH+ file name part of the model path (-m) argument. -
Fixed UnexpecTEDIntentlessPolicy training errors that resulted from a change to batching behavior. Changed the batching behavior back to the original for all components. Made the changed batching behavior accessible in DietClassifier using
drop_small_last_batch: True.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.10.1] - 2024-09-11
Rasa Pro 3.10.1 (2024-09-11)
Bugfixes
- Fix OpenAI LLM client ignoring API base and API version arguments if set.
- Fix
FileNotFounderror when runningrasa studiocommands and no pre-existing local assistant project exists. - Fixed telemetry collection for the components Rephraser, LLM Intent Classifier, Intentless Policy and Enterprise Search Policy to ensure that the telemetry data is only collected when it is enabled
- Update the default config for E2E test conversion to use the
providerkey instead ofapi_type. - Fix inconsistent recording of telemetry events for llm-based command generators.
- Throw deprecation warning when REQUESTS_CA_BUNDLE env var is used.
[3.10.0] - 2024-09-04
Rasa Pro 3.10.0 (2024-09-04)
Deprecations and Removals
- Remove experimental
LLMIntentClassifier. Use Rasa CALM instead.
Features
-
Implement the shell output of accuracy rate by assertion type as a table when running end-to-end testing with assertions.
-
Implement E2E testing assertions that measure metrics such as grounded-ness and answer relevance of generative responses issued by either Enterprise Search or the Contextual Response Rephraser.
You must specify a threshold which must be reached for the generative evaluation assertion to pass. In addition, you can also specify
ground_truthif you prefer providing this in the E2E test rather than relying on the retrieved context from the vector store (in the case of Enterprise Search) or from the domain (in the case of Contextual Response Rephraser) that is stored in the bot utterance event metadata. For rephrased answers, you must specifyutter_nameto run the assertion.These assertions can be specified for user steps only and cannot be used alongside the former E2E test format. You can learn more about this new feature in the documentation sections for grounded and relevant assertion types.
To enable this feature, please set the environment variable
RASA_PRO_BETA_E2E_ASSERTIONStotrue.export RASA_PRO_BETA_E2E_ASSERTIONS=true -
You can now produce a coverage report of your e2e tests via the following command:
rasa test e2e <e2e-test-folder> --coverage-report [--coverage-output-path <output-folder>]The coverage report contains the number of steps and the number of tested steps per flow. Untested steps are referenced by line numbers.
Flow Name Coverage Num Steps Missing Steps Line Numbers
flow_1 0.00% 1 1 [10-10]
flow_2 100.00% 4 0 []
Total 80.00% 5 1Additionally, we also create a histogram of command coverage showing how many and what commands are produced in your e2e tests.
To enable this feature, please set the environment variable
RASA_PRO_BETA_FINETUNING_RECIPEtotrue.export RASA_PRO_BETA_FINETUNING_RECIPE=trueMore information can be found on the documentation of the feature.
-
Create a self-hosted LLM client compatible with OpenAI format. Users can connect to their own self-hosted LLM server that is compatible with OpenAI format.
Sample basic usage:
llm:
provider: self-hosted
model: <deployment_name>
api_base: <deployment_url>
api_type: openai [Optional] -
Add a new CLI command
rasa llm finetune prepare-datato create a dataset from e2e tests that can be used to fine-tune a base model for the task of command generation.To enable this feature, please set the environment variable
RASA_PRO_BETA_FINETUNING_RECIPEtotrue.export RASA_PRO_BETA_FINETUNING_RECIPE=true -
It is now allowed to link to
pattern_human_handofffrom any pattern and user flow. -
Allow links from all patterns to user flows except for
pattern_internal_error. -
- LiteLLM Integration & Reduced LangChain Reliance:
- Introduced
LLMClientandEmbeddingClientprotocols for standardized client interfaces. - Created lightweight client wrappers for LiteLLM to streamline model instantiation, management, and inference.
- Updated
llm_factoryandembedder_factoryto utilize these LiteLLM client wrappers. - Added dedicated clients for Azure OpenAI and OpenAI to support both LLMs and embedding models.
- Added a HuggingFace client to compute embeddings using locally stored transformer models via the
sentence-transformerspackage.
- Introduced
- LangChain Update: Upgraded to the latest version (0.2.x) for improved compatibility and features. To understand the implications on your assistant, please refer to the feature documentation and the migration guide.
- LiteLLM Integration & Reduced LangChain Reliance:
-
Implement as part of E2E testing a new type of evaluation specifically designed to increase confidence in CALM. This evaluation runs assertions on the assistant's actual events and generative responses. New assertions include the ability to check for the presence of specific events, such as:
- flow started, flow completed or flow cancelled events
- whether
pattern_clarificationwas triggered for specific flows - whether buttons rendered well as part of the bot uttered event
- whether slots were set correctly or not
- whether the bot text response matches a provided regex pattern
- whether the bot response matches a provided domain response name
These assertions can be specified for user steps only and cannot be used alongside the former E2E test format. You can learn more about this new feature in the documentation.
To enable this feature, please set the environment variable
RASA_PRO_BETA_E2E_ASSERTIONStotrue.export RASA_PRO_BETA_E2E_ASSERTIONS=true -
Configure LLM-as-Judge settings in the
llm_as_judgesection of theconftest.ymlfile. These settings will be used to evaluate the groundedness and relevance of generated bot responses. Theconftest.ymlis discoverable as long as it is in the root directory of the assistant project, at the same level as theconfig.ymlfile.If the
conftest.ymlfile is not present in the root directory, the default LLM judge settings will be used. -
Implement automatic E2E test case conversion from sample conversation data.
This feature includes:
- A CLI command to convert sample conversation data (CSV, XLSX) into executable E2E test cases.
- Conversion of sample data using an LLM to generate YAML formatted test cases.
- Export of generated test cases into a specified YAML file.
Usage:
rasa data convert e2e <path>To enable this feature, please set the environment variable
RASA_PRO_BETA_E2E_CONVERSIONtotrue.export RASA_PRO_BETA_E2E_CONVERSION=trueFor more details, please refer to this documentation page.
Improvements
-
Implemented custom action stubbing for E2E test cases. To define custom action stubs, add
stub_custom_actionsto the test case file.Stubs can be defined in two ways:
- Test file level: Define each action by its name (
action_name). - Test case level: Define the stub using the test case ID as a prefix (
test_case_id::action_name).
To learn more about this feature, please refer to the documentation.
To enable this feature, set the environment variable
RASA_PRO_BETA_STUB_CUSTOM_ACTIONtotrue:export RASA_PRO_BETA_STUB_CUSTOM_ACTION=true - Test file level: Define each action by its name (
-
Add
max_messages_in_queryparameter to Enterprise Search Policy, it allows controlling the number of past messages that are used in the search query for retrieval -
Configure LLM E2E test converter settings in the
llm_e2e_test_conversionsection of theconftest.ymlfile.These settings will be used to configure the LLM used to convert sample conversation data into E2E test cases.
The
conftest.ymlis discoverable as long as it is in the root directory of the tests output path.If the
conftest.ymlfile is not present in the root directory, the default LLM settings will be used. -
Add the datetime of Rasa Pro license expiry to
rasa --versioncommand Add/licenseAPI endpoint that also returns the same information -
Suppress LiteLLM info and debug log messages in the console.
-
Cache llm_factory and embedder_factory methods to avoid client instantiation and validation for every user utterance.
-
Added E2E Test Conversion Completed telemetry event with file type and test case count properties.
-
Separate writing of failed and passed e2e test results to distinct file paths.
-
Implement support for evaluating IntentlessPolicy responses with generative response assertions.
-
Use direct custom action execution in tutorial and CALM templates. Skip action server health check in e2e testing if direct custom action execution is configured.
-
Modified the type of flows which are included into the import CLI (previously only user flows were enabled, now patterns are included). Use case: This is needed for Studio 1.7, since that release is enabling modification and management of patterns inside Studio, and needs the ability to import patterns from yaml files.
-
Improve events and responses sub-schemas used by the
stub_custom_actionssub-schema of end-to-end testing. The events sub-schema only allows the usage of events which are supported by therasa-sdk. These are documented in the action server API documentation. -
Change default model of conversation rephraser to 'gpt-4o-mini'.
-
Add
file_pathtoFlowso that we can show the full name, e.g.path/to/flow.py::flow namein the e2e test coverage report. -
Introduced remote storage to upload trained model to persistors(AWS, GCP, Azure)
-
Add ability to download training data from remote storage(gcs, aws, azure)
-
Allow saving models to and retrieving from sub folders in cloud storage.
-
Introduced
DirectCustomActionExecutorfor executing custom actions directly through the assistant.Introduced
actions_modulevariable underaction_endpointinendpoints.ymlto explicitly specify the path to custom actions module.If
actions_moduleis set, custom actions will be executed directly through the assistant. -
Add validation for the values against which categorical and boolean slots are checked in the if conditional steps. An error will be thrown when a slot is compared to an invalid/non-existent value for boolean and categorical slots.
-
Add user query and retrieved document results to the metadata of
action_send_textpredicted by EnterpriseSearchPolicy. In addition, add domain ground truth responses to theBotUtteredevent metadata when rephrasing is enabled. These changes were required to allow evaluations of generative responses against the ground truth stored in the metadata ofBotUtteredevents.
Bugfixes
-
Fix problem with custom action invocation when model is loaded from remote storage.
-
Ensure certificates for openai based clients.
-
Mark the first slot event as seen when the user turn in a E2E test case contains multiple slot events for the same slot. This fixes the issue when the
assertion_order_enabledis set totrueand the user step in a test case contained multipleslot_was_setassertions for the same slot, the last slot event was marked as seen when the first assertion was running. This caused the test to fail for subsequentslot_was_setassertions for the same slot with errorSlot <slot_name> was not set. -
Validate the LLM configuration during training for the following components:
Contextual Response RephraserEnterprise Search PolicyIntentless PolicyLLM Based Command GeneratorLLM Based Router
Additionally, update the
get_provider_from_configmethod to retrieve the provider using both themodelandmodel_nameconfiguration parameters. -
Fixes throwing the deprecation warning if the setting for Azure OpenAI Embedding Client was not set through the deprecated environment variable.
-
Fix execution of stub custom actions when they contain test case name and the separator in its provided stub name. Test runner will now correctly execute the correct stub implementation for the same custom action dependent on the test name.
-
Add validation to conversation rephraser.
-
Ensure YAML files with datetime-formatted strings are read as plain strings instead of being converted to datetime objects.
-
Deprecate 'request_timeout' for OpenAI and Azure OpenAI clients in favor of 'timeout'
-
Forbid
streamandnparameters for clients. Having these parameters withinllmandembeddingsconfiguration will result in error. -
Raise deprecation warning if
api_typeis set tohuggingfaceinstead ofhuggingface_localfor HuggingFace local embeddings. -
Fix resolving aliases for deprecated keys when instantiating LLM and embedding clients.
-
Fix detection of conftest file which contained custom LLM judge configuration.
-
Fix issue with Rasa Pro Studio download command exporting default flows which had not been customized by the Studio user. Rasa Pro Studio download command only exports user defined flows, customized patterns and user defined domain locally from the Studio instance.
Similarly, fix issue with Rasa Pro Studio upload command importing default flows which had not been customized to Studio. Rasa Pro Studio upload command only imports user defined flows, customized patterns and user defined domain to the Studio instance.
-
Disable auto-inferring provider from the config. Ensure the provider is explicitly read from the
providerkey. -
Fix writing e2e test cases to disk.
slot_was_setandslot_was_not_setare now written down correctly. -
The rephraser of the
rasa llm finetune data-preparecommand now compares the original user message and the user message returned in the LLM output case-insensitive. -
[rasa llm finetune prepare-data] Do not rephrase user messages that come from a button payload.
-
Separate commands in the expected LLM output by newlines.
-
Fix TypeError in PatternClarificationContainsAssertion hash function by converting sets to lists for successful JSON serialization.
-
Fix validation in case a link to
pattern_human_handoffis used. -
[
rasa llm finetune prepare-data] Skip paraphrasing module in casenum-rephrasesis set to 0. -
Update the handling of incorrect use of slash syntax. Messages with undefined intents do not automatically trigger
pattern_cannot_handle; instead, they are sanitized (prepended slash(es) are removed) and passed through the graph. -
Allow suitable patterns to be properly started using nlu triggers
-
Fix API connection error for bedrock embedding endpoint.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.9.20] - 2025-04-14
Rasa Pro 3.9.20 (2025-04-14)
Bugfixes
- Updated
Inspectordependent 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 - 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.
[3.9.19] - 2025-01-30
Rasa Pro 3.9.19 (2025-01-30)
Improvements
- Remove unnecessary deepcopy to improve performance in
undo_fallback_predictionmethod ofFallbackClassifier
Bugfixes
-
- Fixed an issue where the
pattern_continue_interruptedwas 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.9.18] - 2025-01-15
Rasa Pro 3.9.18 (2025-01-15)
Bugfixes
- Fix issue in e2e testing when customising
action_session_startwould lead to AttributeError, because theoutput_channelwas not set. This is now fixed by setting theoutput_channeltoCollectingOutputChannel(). - 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.
- Make
pattern_session_startwork withrasa inspectorto allow the assistant proactively start the conversation with a user. - Fixes a critical security vulnerability with
jsonpickledependency by upgrading to the patched version. - Updated
minioto address security vulnerability.
[3.9.17] - 2024-12-05
Rasa Pro 3.9.17 (2024-12-05)
Bugfixes
- Implement
eqandhashfunctions forChangeFlowCommandto fixerror=unhashable type: 'ChangeFlowCommand'error inMultiStepCommandGenerator.
[3.9.16] - 2024-11-26
Rasa Pro 3.9.16 (2024-11-26)
Bugfixes
-
Replace
pickleandjoblibwith 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
persistorloadmethod, make sure to update your code. Please contact us in case you encounter any problems.Affected components:
CountVectorFeaturizerLexicalSyntacticFeaturizerLogisticRegressionClassifierSklearnIntentClassifierDIETClassifierCRFEntityExtractorTrackerFeaturizerTEDPolicyUnexpectedIntentTEDPolicy
[3.9.15] - 2024-10-18
Rasa Pro 3.9.15 (2024-10-18)
Improvements
- Change default response of
utter_free_chitchat_responsefrom"placeholder_this_utterance_needs_the_rephraser"to"Sorry, I'm not able to answer that right now.".
Bugfixes
- Fix cleanup of
SetSlotcommands issued by the LLM-based command generator for slots that define a slot mapping other than thefrom_llmslot mapping. The command processor now correctly removes the SetSlot command in these scenarios and instead adds aCannotHandleCommand. - Disallow using the command payload syntax to set slots not filled by any of the active or startable flow(s)
collectsteps.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.9.14] - 2024-10-02
Rasa Pro 3.9.14 (2024-10-02)
No significant changes.
[3.9.13] - 2024-10-01
Rasa Pro 3.9.13 (2024-10-01)
Bugfixes
- Fix inconsistent recording of telemetry events for llm-based command generators.
- Added tracing explicitly to
GRPCCustomActionExecutor.runin order to pass the tracing context to the action server. - Fixes an issue where the
CountVectorsFeaturizerandLogisticRegressionClassifierwould throw error during inference when no NLU training data is provided.
[3.9.12] - 2024-09-20
Rasa Pro 3.9.12 (2024-09-20)
Deprecations and Removals
- Dropped support for Python 3.8 ahead of Python 3.8 End of Life in October 2024. In Rasa Pro versions 3.10.0, 3.9.11 and 3.8.13, we needed to pin the TensorFlow library version to 2.13.0rc1 in order to remove critical vulnerabilities; this resulted in poor user experience when installing these versions of Rasa Pro with
uv pip. Removing support for Python 3.8 will make it possible to upgrade to a stabler version of TensorFlow.
Improvements
- Update Keras and Tensorflow to version 2.14.
This will eliminate the need to use the
--prerelease allowflag when installing Rasa Pro usinguv piptool.
Bugfixes
- Fix
AttributeErrorwith the instrumentation of therunmethod of theCustomActionExecutorclass. - Fixed UnexpecTEDIntentlessPolicy training errors that resulted from a change to batching behavior. Changed the batching behavior back to the original for all components. Made the changed batching behavior accessible in DietClassifier using
drop_small_last_batch: True.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.9.11] - 2024-09-13
Rasa Pro 3.9.11 (2024-09-13)
Bugfixes
- Update Keras to 2.13.1 and Tensorflow to 2.13.0rc0 to fix critical vulnerability (CVE-2024-3660).
[3.9.10] - 2024-09-12
Rasa Pro 3.9.10 (2024-09-12)
Bugfixes
- Fix
FileNotFounderror when runningrasa studiocommands and no pre-existing local assistant project exists. - Fixed telemetry collection for the components Rephraser, LLM Intent Classifier, Intentless Policy and Enterprise Search Policy to ensure that the telemetry data is only collected when it is enabled
[3.9.9] - 2024-08-23
Rasa Pro 3.9.9 (2024-08-23)
Bugfixes
-
Updated behaviour of policies in coexistence:
- CALM policies run in case the routing slot is set to
True(routing to CALM). - Policies of the nlu-based system run in case the routing slot is set to
False(routing to NLU-based system) orNone(non-sticky routing).
- CALM policies run in case the routing slot is set to
-
Don't create an instance of
FlowRetrievalin the command generators in case no flows exists. -
Patterns do not count as active flows in
MultiStepLLMCommandGeneratoranymore. -
Make sure that all e2e test cases in rasa inspector are valid.
-
Downloading of CALM Assistants from Studio improved:
- Downloading CALM assistants from Studio now includes
configandendpointsfiles - Downloading CALM assistants from Studio now doesn't require
config.ymlanddatafolder to exist
- Downloading CALM assistants from Studio now includes
[3.9.8] - 2024-08-21
Rasa Pro 3.9.8 (2024-08-21)
Bugfixes
- Fix problem with custom action invocation when model is loaded from remote storage.
[3.9.7] - 2024-08-15
Rasa Pro 3.9.7 (2024-08-15)
Bugfixes
- Fix extraction of tracing context from the request headers and injection into the Rasa server tracing context.
YamlValidationExceptionwill correctly return line number of the element where the error occurred when line number of that element is not returned byruamel.yaml(for elements of primitive types, e.g.str,int, etc.), instead of returning the line number of the parent element.- Updated
setuptoolsto fix security vulnerability. - Fix tracing context propagation to work for all external service calls.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.9.6] - 2024-08-07
Rasa Pro 3.9.6 (2024-08-07)
Miscellaneous internal changes
Miscellaneous internal changes.
[3.9.5] - 2024-08-01
Rasa Pro 3.9.5 (2024-08-01)
Improvements
- Enabled generative chitchat in the
tutorialtemplate with instructions on how to turn it off added to the documentation.
Bugfixes
- Update the usage of
time.process_time_nswithtime.perf_counter_nsto fix the inconsistencies between duration metrics and trace spans duration.
[3.9.4] - 2024-07-25
Rasa Pro 3.9.4 (2024-07-25)
Bugfixes
- Fix instrumentation not accounting for
kwargsthat are passed toNLUCommandAdapter.predict_commands.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.9.3] - 2024-07-18
Rasa Pro 3.9.3 (2024-07-18)
Bugfixes
- Refactor the supported remote storage (AWS, GCS, Azure) verification check before downloading Rasa model by fixing the initial implementation which attempted to create the object storage to check existence.
- Fix
TypeError: InformationRetrieval.search() got an unexpected keyword argumentwhen tracing is enabled withEnterpriseSearchPolicy. - Change
warninglog level toerrorlog level forValidatormethods that verify that forms and actions used in stories and rules are present in the domain.
[3.9.2] - 2024-07-09
Rasa Pro 3.9.2 (2024-07-09)
Bugfixes
- Add key-word arguments in the predict_commands method of LLM-based CommandGenerator class to ensure custom components are not impacted by changes to the signature of the base classes.
[3.9.1] - 2024-07-04
Rasa Pro 3.9.1 (2024-07-04)
Bugfixes
- Modify the validation to throw an error for a missing associated action/utterance in a collect step only if the slot does not have a defined initial value.
- Modify the collect step validation in flow executor to trigger
pattern_internal_errorfor a missing associated action/utterance in a collect step only if the slot does not have a defined initial value.
[3.9.0] - 2024-07-03
Rasa Pro 3.9.0 (2024-07-03)
Features
-
Introduce a new response button payload format that runs set slot CALM commands directly by skipping the user message processing pipeline.
-
Added support for Information Retrieval custom components. It allows Enterprise Search Policy to be used with arbitrary search systems. Custom Information Retrievals can be implemented as a subclass of
rasa.core.information_retrieval.InformationRetrieval -
Enable slot filling in a CALM assistant to be configurable:
- either use NLU-based predefined slot mappings that instructs
NLUCommandAdapterto issue SetSlot commands with values extracted from the user input via an entity extractor or intent classifier - or use the new predefined slot mapping
from_llmwhich enables LLM-based command generators to issue SetSlot commands If no slot mapping is defined, the default behavior is to use thefrom_llmslot mapping.
In case you had been using
customslot mapping type for slots set with the prediction of the LLM-based command generator, you need to update your assistant configuration to use the newfrom_llmslot mapping type. Note that even if you have written custom slot validation actions (following thevalidate_<slot_name>convention) for slots set by the LLM-based command generator, you need to update your assistant configuration to use the newfrom_llmslot mapping type.For slots that are set only via the custom action e.g. slots set by external sources only, you need to add the action name to the slot mapping:
slots:
slot_name:
type: text
mappings:
- type: custom
action: custom_action_name - either use NLU-based predefined slot mappings that instructs
-
Skip
SetSlotcommands issued by LLM based command generators for slots with NLU-based predefined slot mappings. Instead, the command processor component will issueCannotHandlecommand to triggerpattern_cannot_handleif no other valid command is found. -
Rasa now supports gRPC protocol for custom actions. This allows users to use gRPC to invoke custom actions. To connect to the action server using gRPC, specify:
endpoints.ymlaction_endpoint:
url: "grpc://<rasa-grpc-action-server>:<port>"Users can use secure (TLS) and insecure connections to communicate over gRPC. To use TLS specify the following in
endpoints.yml:endpoints.ymlaction_endpoint:
url: "grpc://<rasa-grpc-action-server>:<port>"
cafile: "<ca_file>" -
Add
MultiStepLLMCommandGeneratoras an alternative LLM based command generator.MultiStepLLMCommandGeneratorbreaks down the task of dialogue understanding into two steps: handling the flows and filling the slots. The component was designed to enable cheaper and smaller LLMs, such asgpt-3.5-turbo, as viable alternatives to costlier but more powerful models such asgpt-4. To use theMultiStepLLMCommandGeneratoradd it to your pipeline:pipeline:
...
- name: MultiStepLLMCommandGenerator
...
Improvements
-
Improve diagram display in the inspector by adding an horizontal scroll and an auto scroll to the active step.
-
Create a separate default prompt for Enterprise Search with source citation enabled and revert the default Enterprise Search prompt to that of
3.7.x. -
Refactored
RemoteActionto utilize a newCustomActionExecutorinterface by implementingHTTPCustomActionExecutorto handle HTTP requests for custom actions. -
Implemented an optimization to reduce payload size by ensuring the Assistant sends the domain dictionary to the Action Server only once, which the server then stores. If the Action Server responds with a 449 status code indicating a missing domain context, the Assistant will repeat the API request including the domain dictionary in the payload, ensuring the server properly saves this data.
-
Integrate the capability of testing scenarios that reflect actual operational environments where conversations can be influenced by real-time external data. This is done by injecting metadata when running end-to-end tests.
-
Introduced LRU caching for reading and parsing YAML files to enhance performance by avoiding multiple reads of the same file. Added
READ_YAML_FILE_CACHE_MAXSIZEenvironment variable with a default value of 256 to configure the cache size. -
Add validations for flow ID to allow only alphanumeric characters, underscores, and hyphens except for the first character.
-
The
LLMCommandGeneratorcomponent has been renamed toSingleStepLLMCommandGenerator. There is no change to the functionality.Using the
LLMCommandGeneratoras the name of the component results in a deprecation warning as it will be permanently renamed toSingleStepLLMCommandGeneratorin 4.0.0. Please modify the assistant’s configuration to use theSingleStepLLMCommandGeneratorinstead of theLLMCommandGeneratorto avoid seeing the deprecation warning. -
Make improvements to
rasa data validatethat check if the usage of slot mappings in a CALM assistant is valid:- a slot cannot have both a
from_llmmapping and either a nlu-predefined mapping or a custom slot mapping - a slot collected in a flow by a custom action has an associated
action_ask_defined in the domain - a CALM assistant with slots that have nlu-based predefined mappings include
NLUCommandAdapterin the config pipeline - a NLU-based assistant cannot have slots that have a
from_llmmapping
- a slot cannot have both a
-
Modify post processing of commands - Clarify command with single option is converted into a StartFlow command.
-
Improve debug logging for predicate evaluation.
Bugfixes
- Properly handle projects where
rasa studio downloadis run in a project with no NLU data. - Tracing is supported for actions called over gRPC protocol.
- Fix the hash function of ClarifyCommand to return a hashed list of options.
- Raise an error if action_reset_routing is used without the defined ROUTE_TO_CALM_SLOT / router.
- Add a few bugfixes to the CALM slot mappings feature:
- Coexistence bot should ignore
NoOpCommandwhen checking if the processed message contains commands. - Update condition under which FlowPolicy triggers
pattern_internal_errorfor slots with custom slot mappings.
- Coexistence bot should ignore
- Remove invalid warnings during collect step.
-
- Fixed issue where messages with invalid intent triggers ('/<intent>') were not handled correctly. Now triggering the
pattern_cannot_handle. - Introduced a new reason
cannot_handle_invalid_intentfor use in the pattern_cannot_handle switch mechanism to improve error handling.
- Fixed issue where messages with invalid intent triggers ('/<intent>') were not handled correctly. Now triggering the
- Validates that a collect step in a flow either has an action or an utterance defined in the domain to avoid the bot being silent.
- Slots that are set via response buttons should not trigger
pattern_cannot_handleregardless of the slots' mapping type. - Coerce "None", "null" or "undefined" slot values set via response buttons to be of type
NoneTypeinstead ofstr. - Avoid raising a
UserWarningduring validation of response buttons which contain double curly braces. - Do not run NLUCommandAdapter during message parsing when receiving a
/SetSlotsbutton payload. This is because the NLUCommandAdapter run during message parsing (when the graph is skipped) is meant to handle intent button payloads only. - Exclude slots that are not collected in any flow from being set by the NLUCommandAdapter in a coexistence assistant.
- Default action
action_extract_slotsshould not run custom actions specified in custom slot mappings for slots that are set by custom actions in the flows/CALM system of a coexistence assistant. - Fix pattern flows being unavailable during input preparation and template rendering in
MultiStepLLMCommandGenerator. - Skip command cleaning when no commands are present in NLUCommandAdapter. Fix get active flows to return the correct active flows, including all the nested parent flows if present.
- If FlowPolicy tries to collect a slot with a custom slot mapping without the
actionkey oraction_askspecified in the domain, it will triggerpattern_cancel_flowfirst, thenpattern_internal_error. - Cancel user flow in progress and invoke pattern_internal_error if the flow reached a collect step which does not have an associated utter_ask response or action_ask action defined in the domain.
- IntentlessPolicy abstains from making a prediction during coexistence when it's the turn of the NLU-based system.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.8.17] - 2024-10-18
Rasa Pro 3.8.17 (2024-10-18)
Improvements
- Change default response of
utter_free_chitchat_responsefrom"placeholder_this_utterance_needs_the_rephraser"to"Sorry, I'm not able to answer that right now.".
[3.8.16] - 2024-10-02
Rasa Pro 3.8.16 (2024-10-02)
No significant changes.
[3.8.15] - 2024-10-01
Rasa Pro 3.8.15 (2024-10-01)
Bugfixes
- Fixes an issue where the
CountVectorsFeaturizerandLogisticRegressionClassifierwould throw error during inference when no NLU training data is provided.
[3.8.14] - 2024-09-20
Rasa Pro 3.8.14 (2024-09-20)
Deprecations and Removals
- Dropped support for Python 3.8 ahead of Python 3.8 End of Life in October 2024. In Rasa Pro versions 3.10.0, 3.9.11 and 3.8.13, we needed to pin the TensorFlow library version to 2.13.0rc1 in order to remove critical vulnerabilities; this resulted in poor user experience when installing these versions of Rasa Pro with
uv pip. Removing support for Python 3.8 will make it possible to upgrade to a stabler version of TensorFlow.
Improvements
- Update Keras and Tensorflow to version 2.14.
This will eliminate the need to use the
--prerelease allowflag when installing Rasa Pro usinguv piptool.
Bugfixes
- Fixed UnexpecTEDIntentlessPolicy training errors that resulted from a change to batching behavior. Changed the batching behavior back to the original for all components. Made the changed batching behavior accessible in DietClassifier using
drop_small_last_batch: True.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.8.13] - 2024-09-12
Rasa Pro 3.8.13 (2024-09-12)
Bugfixes
- Fixed telemetry collection for the components Rephraser, LLM Intent Classifier, Intentless Policy and Enterprise Search Policy to ensure that the telemetry data is only collected when it is enabled
- Update Keras to 2.13.1 and Tensorflow to 2.13.0rc0 to fix critical vulnerability (CVE-2024-3660).
[3.8.12] - 2024-08-12
Rasa Pro 3.8.12 (2024-08-12)
Bugfixes
- Fix
TypeError: InformationRetrieval.search() got an unexpected keyword argumentwhen tracing is enabled withEnterpriseSearchPolicy. - Fix extraction of tracing context from the request headers and injection into the Rasa server tracing context.
- Update the usage of
time.process_time_nswithtime.perf_counter_nsto fix the inconsistencies between duration metrics and trace spans duration. YamlValidationExceptionwill correctly return line number of the element where the error occurred when line number of that element is not returned byruamel.yaml(for elements of primitive types, e.g.str,int, etc.), instead of returning the line number of the parent element.- Updated
setuptoolsto fix security vulnerability.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.8.11] - 2024-07-04
Rasa Pro 3.8.11 (2024-07-04)
Improvements
- Improve debug logging for predicate evaluation.
Bugfixes
- Raise an error if action_reset_routing is used without the defined ROUTE_TO_CALM_SLOT / router.
- Remove invalid warnings during collect step.
-
- Fixed issue where messages with invalid intent triggers ("/intent_name") were not handled correctly. Now triggering the
pattern_cannot_handle. - Introduced a new reason
cannot_handle_invalid_intentfor use in the pattern_cannot_handle switch mechanism to improve error handling.
- Fixed issue where messages with invalid intent triggers ("/intent_name") were not handled correctly. Now triggering the
- Validates that a collect step in a flow either has an action or an utterance defined in the domain to avoid the bot being silent.
- Skip command cleaning when no commands are present in NLUCommandAdapter. Fix get active flows to return the correct active flows, including all the nested parent flows if present.
- Update the handling of incorrect use of slash syntax. Messages with undefined intents do not automatically trigger
pattern_cannot_handle; instead, they are sanitized (prepended slash(es) are removed) and passed through the graph. - Modify the validation to throw an error for a missing associated action/utterance in a collect step only if the slot does not have a defined initial value.
[3.8.10] - 2024-06-19
Rasa Pro 3.8.10 (2024-06-19)
Improvements
- Added NLG validation to the rasa model training process.
Bugfixes
- Fixes Clarify command being dropped by command processor due to presence of coexistence slot -
route_session_to_calm - Fix validation for LLMBasedRouter to check only for calm_entry.sticky
[3.8.9] - 2024-06-14
Rasa Pro 3.8.9 (2024-06-14)
Improvements
- Add validations for flow ID to allow only alphanumeric characters, underscores, and hyphens except for the first character.
[3.8.8] - 2024-06-07
Rasa Pro 3.8.8 (2024-06-07)
Bugfixes
- Add wrappers around openai clients that can set the self-signed certs via
REQUESTS_CA_BUNDLEenv variable.
[3.8.7] - 2024-05-29
Rasa Pro 3.8.7 (2024-05-29)
Bugfixes
- Add support for domain entities in CALM import
- Download NLU data when running
rasa studio downloadfor a modern assistant with NLU triggers. Previously, this data was not downloaded, leading to a partial assistant.
[3.8.6] - 2024-05-27
Rasa Pro 3.8.6 (2024-05-27)
Improvements
- Adds
tracker_stateattribute toOutputChannel. It simplifies the access of tracker state for custom channel connector withCollectingOutputChannel.tracker_state.
Bugfixes
- If a button in a response does not have a payload, socketio channel will use the title as payload by default rather than throwing an exception.
[3.8.5] - 2024-05-03
Rasa Pro 3.8.5 (2024-05-03)
Bugfixes
- Trigger
pattern_internal_errorif collection does not exist in a Qdrant vector store.
[3.8.4] - 2024-04-30
Rasa Pro 3.8.4 (2024-04-30)
Improvements
- Added support for NLU Triggers by supporting uploading the NLU files for CALM Assistants
[3.8.3] - 2024-04-26
Rasa Pro 3.8.3 (2024-04-26)
Improvements
-
- Throw validation error and exit when duplicate responses are found across domains. This is a breaking change, as it will cause training to fail if duplicate responses are found. If you have duplicate responses in your training data, you will need to remove them before training.
- Update domain importing to ignore the warnings about duplicates when merging with the default flow domain
Bugfixes
- Use AzureChatOpenAI class instead of AzureOpenAI class to instantiate openai models deployed in Azure. This fixes the usage of gpt-3.5-turbo model in Azure.
- Fixes validation to catch empty placeholders in response that dumps entire context.
- Fix security vulnerabilities by updating poetry environment: fonttools, CVE-2023-45139, from 4.40.0 to 4.43.0 aiohttp, CVE-2024-27306, from 3.9.3 to 3.9.4 dnspython, CVE-2023-29483, from 2.3.0 to 2.6.1 pymongo, CVE-2024-21506, from 4.3.3 to 4.6.3
- Numbers that are part of the body of the LLM answer in EnterpriseSearch should not be matched as citation references in the postprocessing method.
- Errors from the Flow Retrieval API are now both logged and thrown. When such errors occur, an ErrorCommand is emitted by the Command Generator.
[3.8.2] - 2024-04-25
Rasa Pro 3.8.2 (2024-04-25)
Bugfixes
- Add the currently active flow as well as the called flow (if present) to the
list of available flows for the
LLMCommandGenerator. - Fix custom prompt not read from the model resource path for LLMCommandGenerator.
[3.8.1] - 2024-04-17
Rasa Pro 3.8.1 (2024-04-17)
Improvements
- Adjusted chat widget behavior to remain open when clicking outside the chat box area.
- Improve debug logs to include information about evaluation of
if-elseconditions in flows at runtime. - Remove the
ContextualResponseRephraserfrom the tutorial template to keep it simple as it is not needed anymore. - Update poetry package manager version to
1.8.2. Check the migration guide for instructions on how to update your environment.
Bugfixes
- Introduced support for numbered Markdown lists.
- Added support for uploading assistants with default domain directory.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.8.0] - 2024-04-03
Rasa Pro 3.8.0 (2024-04-03)
Features
-
Introduces semantic retrieval of flows at runtime to reduce the size of the prompt sent to the LLM by utilizing similarity between vector embeddings. It enables the assistant to scale to a large number of flows.
Flow retrieval is enabled by default. To configure it, you can modify the settings under the
flow_retrievalproperty ofLLMCommandGeneratorcomponent. For detailed configuration options, refer to our documentation.Introduces
always_include_in_promptfield to the flow definition. If field is set totrueand the flow guard defined in theiffield evaluates totrue, the flow will be included in the prompt. -
Introduction of coexistence between CALM and NLU-based assistants. Coexistence allows you to use policies from both CALM and NLU-based assistants in a single assistant. This allows migrating from NLU-based paradigm to CALM in an iterative fashion.
-
Introduction of
callstep. You can use acallstep to embed another flow. When the execution reaches acallstep, Rasa starts the called flow. Once the called flow is complete, the execution continues with the calling flow.
Improvements
-
Instrument the
command_processormodule, in particular the following functions:execute_commandsclean_up_commandsvalidate_state_of_commandsremove_duplicated_set_slots
-
Improve the instrumentation of
LLMCommandGenerator:- extract more LLM configuration parameters, e.g.
type,temperature,request-timeout,engineanddeployment(the latter 2 being only for the Azure OpenAI service). - instrument the private method
_check_commands_against_startable_flowsto track the commands with which the LLM responded, as well as the startable flow ids.
- extract more LLM configuration parameters, e.g.
-
Instrument
flow_executor.pymodule, in particular these functions:advance_flows(): extractavailable_actionstracing tagadvance_flows_until_next_action(): extract action name and score, metadata and prediction events as tracing tags from the returned prediction valuerun_step(): extract step custom id, description and current flow id.
-
Instrument
Policy._prediction()method for each of the policy subclasses. -
Instrument
IntentlessPolicymethods such as:find_closest_response: extract theresponseandscorefrom the returned tuple;select_response_examples: extract theai_response_examplesfrom returned value;select_few_shot_conversations: extract theconversation_samplesfrom returned value;extract_ai_responses: extract theai_responsesfrom returned value;generate_answer: extract thellm_responsefrom returned value.
-
- Instrument
InformationRetrieval.searchmethod for supported vector stores: extract query and document metadata tracing attributes. - Instrument
EnterpriseSearchPolicy._generate_llm_answermethod: extract LLM config tracing attributes. - Extract dialogue stack current context in the following functions:
rasa.dialogue_understanding.processor.command_processor.clean_up_commandsrasa.core.policies.flows.flow_executor.advance_flowsrasa.core.policies.flows.flow_executor.run_step
- Instrument
-
- Instrument
NLUCommandAdapter.predict_commandsmethod and extract thecommandsfrom the returned value, as well as the user messageintent. - Improve LLM config tracing attribute extraction for
ContextualResponseRephraser.
- Instrument
-
Add new config boolean property
trace_prompt_tokensthat would enable the tracing of the length of the prompt tokens for the following components:LLMCommandGeneratorEnterpriseSearchPolicyIntentlessPolicyContextualResponseRephraser
-
Enable execution of single E2E tests by including the test case name in the path to test cases, like so:
path/to/test_cases.yml::test_case_nameorpath/to/folder_containing_test_cases::test_case_name. -
Implement
MetricInstrumentProviderinterface whose role is to:- register instruments during metrics configuration
- retrieve the appropriate instrument to record measurements in the relevant instrumentation code section
-
Enabled the setting of a minimum similarity score threshold for retrieved documents in Enterprise Search's
vector_storewith the addition of thethresholdproperty. If no documents are retrieved, it triggers Pattern Cannot Handle. This feature is supported in Milvus and Qdrant vector stores. -
Record measurements for the following metrics in the instrumentation code:
- CPU usage of the
LLMCommandGenerator - memory usage of
LLMCommandGenerator - prompt token usage of
LLMCommandGenerator - method call duration for LLM specific calls (in
LLMCommandGenerator,EnterpriseSearchPolicy,IntentlessPolicy,ContextualResponseRephraser) - rasa client request duration
- rasa client request body size
Instrument
EndpointConfig.request()method call in order to measure the client request metrics. - CPU usage of the
-
Improvements around default behaviour of
ChitChatAnswerCommand():- The command processor will issue
CannotHandleCommand()instead of theChitChatCommand()whenpattern_chitchatuses an action stepaction_trigger_chitchatwithout theIntentlessPolicybeing configured. During training a warning is raised. - Changed the default pattern_chitchat to:
pattern_chitchat:
description: handle interactions with the user that are not task-oriented
name: pattern chitchat
steps:
- action: action_trigger_chitchat- Default rasa init template for CALM comes with
IntentlessPolicyadded to pipeline.
- The command processor will issue
-
Add support for OTLP Collector as metrics receiver which can forward metrics to the chosen metrics backend, e.g. Prometheus.
-
Enable document source citation for Enterprise Search knowledge answers by setting the boolean
citation_enabled: trueproperty in theconfig.ymlfile:policies:
- name: EnterpriseSearchPolicy
citation_enabled: true -
Add telemetry events for flow retrieval and call step
-
Tighten python dependency constraints in
pyproject.toml, hence reducing the installation time to around 20 minutes withpip(and no caching enabled). -
Improved tracing clarity of the Contextual Response Rephraser by adding the
_create_historymethod span, including its LLM configuration attributes. -
Users now have enhanced control over the debugging process of LLM-driven components. This update introduces a fine-grained, customizable logging that can be controlled through specific environment variables.
For example, set the
LOG_LEVEL_LLMenvironment variable to enable detailed logging at the desired level for all the LLM components or specify the component you are debugging:Example configuration
export LOG_LEVEL_LLM=DEBUG
export LOG_LEVEL_LLM_COMMAND_GENERATOR=INFO
export LOG_LEVEL_LLM_ENTERPRISE_SEARCH=INFO
export LOG_LEVEL_LLM_INTENTLESS_POLICY=DEBUG
export LOG_LEVEL_LLM_REPHRASER=DEBUG -
If the user wants to chat with the assistant at the end of
rasa init, we are now callingrasa inspectinstead ofrasa shell. -
A slot can now be collected via an action
action_ask_<slot-name>instead of the utteranceutter_ask_<slot-name>in a collect step. You can either define an utterance or an action for the collect step in your flow. Make sure to add your custom actionaction_ask_<slot-name>to the domain file. -
Validate the configuration of the coexistence router before the actual training starts.
-
Improved error handling in Enterprise Search Policy, changed the prompt to improve formatting of documents and ensured empty slots are not added to the prompt.
-
Implement asynchronous graph execution. CALM assistants rely on a lot of I/O calls (e.g. to a LLM service), which impaired performances. With this change, we've improved the response time performance by 10x. All policies and components now support async calling.
-
Merge
rasaandrasa-pluspackages into one. As a result, we renamed the Python package torasa-proand the Docker image torasa-pro. Please head over to the migration guide here for installation, and here for the necessary configuration updates.
Bugfixes
-
Updated pillow and jinja2 packages to address security vulnerabilities.
-
Fix OpenTelemetry
Invalid type NoneType for attribute valuewarning. -
Add support for
metadata_payload_keyfor Qdrant Vector Store with an error message ifcontent_payload_keyormetadata_payload_keyare incorrect -
Changed the ordering of returned events to order by ID (previously timestamp) in SQL Tracker Store
-
Improved the end-to-end test comparison mechanism to accurately handle and strip trailing newline characters from expected bot responses, preventing false negatives due to formatting mismatches.
-
Fixed a bug that caused inaccurate search results in Enterprise Search when a bot message appeared before the last user message.
-
Fixes flow guards pypredicate evaluatation bug: pypredicate was evaluated with
Slotinstances instead of slot values -
Post-process source citations in Enterprise Search Policy responses so that they are enumerated in the correct order.
-
Resolves issue causing the
FlowRetrieval.populateto always use default embeddings. -
Fix the bug with the validation of routing setup crashing when the pipeline is not specified (null)
-
Remove conversation turns prior to a restart when creating a conversation transcript for an LLM call.
This helps in cases where the prior conversation is not relevant for the current session. Information which should be carried to the next session should explicitly be stored in slots.
-
Add tracker back to the LLMCommandGenerator.parse_command to ensure compatibility with custom command generator built with 3.7.
-
Move coexistence routing setup validation from
rasa.validator.Validatortorasa.engine.validation. This gave access to graph schema which allowed for validation checks of subclassed routers. -
Fixes a bug in determining the name of the model based on provided parameters.
-
LogisticRegressionClassifierchecks if training examples are present during training and logs a warning in case no training examples are provided. -
Fixes the bug that resulted in an infinite loop on a collect step in a flow with a flow guard set to
if: False. -
Fix training the enterprise search policy multiple times with a different source folder name than the default name "docs".
-
Log message
llm_command_generator.predict_commands.finishedis set to debug log by default. To enable logging of theLLMCommandGeneratorsetLOG_LEVEL_LLM_COMMAND_GENERATORtoINFO. -
Improvements and fixes to cleaning up commands:
- Clean up predicted
StartFlowcommands from theLLMCommandGeneratorif the flow, that should be started, is already active. - Clean up predicted SetSlot commands from the
LLMCommandGeneratorif the value of the slot is already set on the tracker. - Use string comparison for slot values to make sure to capture cases when the
LLMCommandGeneratorpredicted a string value but the value set on the tracker is, for example, an integer value.
- Clean up predicted
-
Remove
contextfrom list ofrestrictedslots -
Improved handling of categorical slots with text values when using CALM.
Slot values extracted by the command generator (LLM) will be stored in the same casing as the casing used to define the categorical slot values in the domain. E.g. A categorical slot defined to store the values ["A", "B"] will store "A" if the LLM predicts the slot to be filled with "a". Previously, this would have stored "a".
Miscellaneous internal changes
Miscellaneous internal changes.
[3.7.9] - 2024-03-26
Rasa Pro 3.7.9 (2024-03-26)
Improvements
- Add validations for flow ID to allow only alphanumeric characters, underscores, and hyphens except for the first character.
Bugfixes
-
Changed the ordering of returned events to order by ID (previously timestamp) in SQL Tracker Store
-
Fixes flow guards pypredicate evaluatation bug: pypredicate was evaluated with
Slotinstances instead of slot values -
Improved handling of categorical slots with text values when using CALM.
Slot values extracted by the command generator (LLM) will be stored in the same casing as the casing used to define the categorical slot values in the domain. E.g. A categorical slot defined to store the values ["A", "B"] will store "A" if the LLM predicts the slot to be filled with "a". Previously, this would have stored "a".
-
Log message
llm_command_generator.predict_commands.finishedis set to debug log by default. To enable logging of theLLMCommandGeneratorsetLOG_LEVEL_LLM_COMMAND_GENERATORtoINFO. -
Improvements and fixes to cleaning up commands:
- Clean up predicted
StartFlowcommands from theLLMCommandGeneratorif the flow, that should be started, is already active. - Clean up predicted SetSlot commands from the
LLMCommandGeneratorif the value of the slot is already set on the tracker. - Use string comparison for slot values to make sure to capture cases when the
LLMCommandGeneratorpredicted a string value but the value set on the tracker is, for example, an integer value.
- Clean up predicted
[3.7.8] - 2024-02-28
Rasa Pro 3.7.8 (2024-02-28)
Improvements
- Improved UX around ClarifyCommand by checking options for existence and ordering them. Also, now dropping Clarify commands if there are any other commands to prevent two questions or statements to be uttered at the same time.
- LLMCommandGenerator returns CannotHandle() command when is encountered with scenarios where it is unable to predict a valid command.
Bugfixes
- Replace categorical slot values in a predicate with lower case replacements. This fixes the case sensitive slot comparisons in flow guards, branches in flows and slot rejections.
- Modify flows YAML schema to make next step mandatory to noop step.
- Flush messages when Kafka producer is closed. This is to ensure that all messages in the producer's internal queue are sent to the broker.
Ensure to import all pattern stack frame subclasses of
DialogueStackFramewhen retrieving tracker from the tracker store, a required step duringrasa export. - Add support for
metadata_payload_keyfor Qdrant Vector Store with an error message ifcontent_payload_keyormetadata_payload_keyare incorrect
[3.7.7] - 2024-02-06
Rasa Pro 3.7.7 (2024-02-06)
Bugfixes
- Updated pillow and jinja2 packages to address security vulnerabilities.
[3.7.6] - 2024-02-01
Rasa Pro 3.7.6 (2024-02-01)
Bugfixes
- Fix reported issue, e.g. https://github.com/RasaHQ/rasa/issues/5461 in Rasa Pro:
Do not unpack json payload if
datakey is not present in the response custom output payloads when using socketio channel. This allows assistants which use custom output payloads to work with the Rasa Inspector debugging tool. - Make flow description a required property in the flow json schema.
- Fix training the enterprise search policy multiple times with a different source folder name than the default name "docs".
Miscellaneous internal changes
Miscellaneous internal changes.
[3.7.5] - 2024-01-24
Rasa Pro 3.7.5 (2024-01-24)
Improvements
- Add new embedding types:
huggingfaceandhuggingface_bge. These new types import theHuggingFaceEmbeddingsandHuggingFaceBgeEmbeddingsembedding classes from Langchain.
Bugfixes
- Fixes a bug that caused the
full_retrieval_intent_namekey to be missing in the published event. Rasa Analytics makes use of this key to get the Retrieval Intent Name - Pin
grpcioindirect dependency to1.56.2to address CVE-2023-33953 Pinaiohttpto version3.9.0to address CVE-2023-49081 - Fixes the bug that resulted in an infinite loop on a collect step in a flow with a flow guard set to
if: False. - Changed the parameters request timeout to 10 seconds and maximum number of retries to 1 for the default LLM used by Enterprise Search Policy. Any error during vector search or LLM API calls should now trigger the pattern
pattern_internal_error. Updated the default enterprise search policy prompt to respond more succinctly to queries.
[3.7.4] - 2024-01-03
Rasa Pro 3.7.4 (2024-01-03)
Improvements
- Add embeddings type
azureto simplify azure configurations, particularly when using Enterprise Search Policy
Bugfixes
- Add a validation in
rasa data validateto check the LinkFlowStep refers to a valid flow ID
[3.7.3] - 2023-12-21
Rasa Pro 3.7.3 (2023-12-21)
Improvements
- Persist prompt as part of the model and reread prompt from the model storage instead of original file path during loading. Impacts LLMCommandGenerator.
- Replaced soon to be depracted text-davinci-003 model with gpt-3.5-turbo. Affects components - LLM Intent Classifier and Contextual Response Rephraser.
Bugfixes
- Fix stale cache of local knowledge base used by EnterpriseSearchPolicy by implementing the
fingerprint_addonclass method.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.7.2] - 2023-12-07
Rasa Pro 3.7.2 (2023-12-07)
Bugfixes
- Fix propagation of context across rasa spans when running
rasa run --enable-apiin the case when no additional tracing context is passed to rasa. - Fixed a bug in policy invocation that made Enterprise Search Policy and
action_trigger_searchbehaved strangely when used with rules and stories - Updated aiohttp, cryptography and langchain to address security vulnerabilities.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.7.1] - 2023-12-01
Rasa Pro 3.7.1 (2023-12-01)
Improvements
- Improved error handling in Enterprise Search Policy, changed the prompt to improve formatting of documents and ensured empty slots are not added to the prompt
[3.7.0] - 2023-11-22
Rasa Pro 3.7.0 (2023-11-22)
Features
- Added Enterprise Search Policy that uses an LLM with conversation context and relevant knowledge base documents to generate rephrased responses. The LLM is prompted to answer the user questions given the chat transcript, documents retrived from a document search and the slot values so far. This policy supports an in-memory Faiss vector store and connecting to instances of Milvus or Qdrant vector store.
Improvements
-
Skip executing the pipeline when the user message is of the form /intent or /intent + entities.
-
Remove tensorflow-addons from dependencies as it is now deprecated.
-
Add building multi-platform Docker image (amd64/arm64)
-
Switch struct log to
FilteringBoundLoggerin order to retain log level set in the config. -
Added metadata as an additional argument as an additional parameter to an
Actionsrunmethod.Added an additional default action called
action_send_textwhich allows a policy to respond with a text. The text is passed to the action using the metadata, e.g.metadata={"message": {"text": "Hello"}}.Added LLM utility functions.
-
Passed request headers from REST channel.
-
Added additional method
fingerprint_addonto theGraphComponentinterface to allow inclusion of external data into the fingerprint calculation of a component -
Added Schema file and schema validation for flows.
-
Added environment variables to configure JWT and auth token. For JWT the following environment variables are available:
- JWT_SECRET
- JWT_METHOD
- JWT_PRIVATE_KEY
For auth token the following environment variable is available:
- AUTH_TOKEN
-
Add skip question command
-
Update the CALM starter template by:
- adding the following flows from the financial chatbot:
- add_contact.yml
- remove_contact.yml
- list_contacts.yml
- using multiple modules (in the form of yml files) to segregate the flows (a good model to be followed)
- adding e2e tests:
- happy paths
- cancelations
- corrections
- adding the following flows from the financial chatbot:
-
- Enhanced the Rasa error pattern for accommodating various error types.
- Upgraded the LLMCommandGenerator for processing the new 'user_input' configuration section. This update includes handling of messages that surpass the defined character limit.
Configuration Update:
The LLMCommandGenerator now supports a user-defined character limit via the 'user_input' configuration:
- name: LLMCommandGenerator
llm:
...
user_input:
max_characters: 500Default Behavior:
In the absence of a specified limit, it defaults to a 420-character cap. To bypass the limit entirely, set the 'max_characters' value to -1.
-
- Bot now returns a default message in response to an empty user message. This improves user experience by providing feedback even when no input is detected.
LLMCommandGeneratorbehavior updated. It now returns anErrorCommandfor empty user messages.- Updated default error pattern and added the default utterance in
default_flows_for_patterns.yml
-
Add support for Vault namespaces. To use namespace set either:
VAULT_NAMESPACEenvironment variablenamespaceproperty insecrets_managersection atendpoints.yaml
-
Added Rasa Labs LLM components. Added components are:
LLMIntentClassifierIntentlessPolicyContextualResponseRephraser
-
Made it possible for the Rasa REST channel to accept OpenTelemetry tracing context.
-
Improved the naming of trace spans and added more trace tags.
-
Add
slot_was_not_setto E2E testing for asserting that a slot was not set and that a slot was not set with a specific value. -
Introduced the rasa studio download command, enabling data retrieval from the studio. Implemented the option to refresh the Keycloak token. Expanded the functionality of RasaPrimitiveStorageMapper with the addition of flows. Added flows support to
rasa studio train. -
Instrument
LLMCommandGenerator._generate_action_list_using_llmandCommand.run_command_on_trackermethods. -
Added the default values for the number of tokens generated by the LLM (
max_tokens) -
Make the instrumentation of
Command.run_command_on_trackermethod applicable to all subclasses of theCommandclass` -
Instrument
ContextualResponseRephraser._generate_llm_responseandContextualResponseRephraser.generatemethods. -
Extract commands as tracing attributes from message input when previous node was the
LLMCommandGenerator. -
Rename
rasa chatcommand torasa inspectand rename channel name toinspector. -
Extract
eventsandoptional_eventswhenGraphNodeisFlowPolicy.
Bugfixes
-
uvloop is disabled by default on apple silicon machines
-
Add
rasa_eventsto the list of anonymizable structlog keys and rename structlog keys. -
Introduce a validation step in
rasa data validateandrasa traincommands to identify non-existent paths and empty domains. -
Rich responses containing buttons with parentheses characters are now correctly parsed. Previously any characters found between the first identified pair of
()in response button took precedence. -
Resolve dependency incompatibility: Pin version of
dnspythonto ==2.3.0. -
Fixed
KeyErrorwhich resulted whendomain_responsesdoesn't exist as a keyword argument while using a custom action dispatcher with nlg server. -
Fixed incompatibility with latest python-socketio release.
The python-socketio released a backwards incompatible change on their minor release. This fix addresses this and makes the code compatible with prior and the new python-socketio version.
https://github.com/miguelgrinberg/python-socketio/blob/main/CHANGES.md
-
Fixed the
404 Not FoundGithub actions error while removing packages. -
Corrected E2E diff behavior to prevent it from going out of sync when more than one turn difference exists between actual and expected events. Fixed E2E tests from propagating errors when events and test steps did not have the same length. Fixed the issue where E2E tests couldn't locate slot events that were not arranged chronologically. Resolved the problem where E2E tests were incorrectly diffing user utter events when they were not in the correct order.
-
Fixed E2E runner wrongly selecting the first available bot utterance when generating the test fail diff.
-
Updated werkzeug and urllib3 to address security vulnerabilities.
-
Fix cases when E2E test runner crashes when there is no response from the bot.
Improved Documentation
- Update wording in Rasa Pro installation page.
- Updated docs on sending Conversation Events to Multiple DBs.
- Corrected action server api sample in docs.
- Document support for Vault namespaces.
- Updated tracing documentation to include tracing in the action server and the REST Channel.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.6.13] - 2023-10-23
Rasa Pro 3.6.13 (2023-10-23)
Bugfixes
- Fix wrong conflicts that occur when rasa validate stories is run with slots that have active_loop set to null in mapping conditions.
[3.6.12] - 2023-10-10
Rasa Pro 3.6.12 (2023-10-10)
Improvements
- Added
usernameto the connection parameters forConcurrentRedisLockStore.
Bugfixes
- Refresh headers used in requests (e.g. action server requests) made by
EndpointConfigusing itsheadersattribute. - Upgrade
pillowto10.0.1to address security vulnerability CVE-2023-4863 found in10.0.0version. - Fix setuptools security vulnerability CVE-2022-40897 in Docker build by updating setuptools in poetry's environment.
[3.6.11] - 2023-10-05
Rasa Pro 3.6.11 (2023-10-05)
Bugfixes
-
Intent names will not be falsely abbreviated in interactive training (fixes OSS-413).
This will also fix a bug where forced user utterances (using the regex matcher) will be reverted even though they are present in the domain.
-
Cache
EndpointConfigsession object usingcached_propertydecorator instead of recreating this object on every request. Initialize these connection pools for action server and model server endpoints as part of the Sanicafter_server_startlistener. Also close connection pools during Sanicafter_server_stoplistener.
[3.6.10] - 2023-09-26
Rasa Pro 3.6.10 (2023-09-26)
Improvements
- Improved handling of last batch during DIET and TED training. The last batch is discarded if it contains less than half a batch size of data.
- Added
usernameto the connection parameters forRedisLockStoreandRedisTrackerStore - Telemetry data is only send for licensed users.
Improved Documentation
- Remove the Playground from docs.
[3.6.9] - 2023-09-15
Rasa Pro 3.6.9 (2023-09-15)
Improvements
- Added additional method
fingerprint_addonto theGraphComponentinterface to allow inclusion of external data into the fingerprint calculation of a component
Bugfixes
- Fixed
KeyErrorwhich resulted whendomain_responsesdoesn't exist as a keyword argument while using a custom action dispatcher with nlg server.
[3.6.8] - 2023-08-30
Rasa Pro 3.6.8 (2023-08-30)
Bugfixes
- Fix E2E testing diff algorithm to support the following use cases:
- asserting a slot was not set under a
slot_was_setblock - asserting multiple slot names and/or values under a
slot_was_setblock Additionally, the diff algorithm has been improved to show a higher fidelity result.
- asserting a slot was not set under a
[3.6.7] - 2023-08-29
Rasa Pro 3.6.7 (2023-08-29)
Bugfixes
- Updated certifi, cryptography, and scipy packages to address security vulnerabilities.
- Updated setuptools and wheel to address security vulnerabilities.
[3.6.6] - 2023-08-23
Rasa Pro 3.6.6 (2023-08-23)
Bugfixes
- Updated setuptools and wheel to address security vulnerabilities.
[3.6.5] - 2023-08-17
Rasa Pro 3.6.5 (2023-08-17)
Improvements
- Use the same session across requests in
RasaNLUHttpInterpreter
Bugfixes
- Resolve dependency incompatibility: Pin version of
dnspythonto ==2.3.0. - Fix the issue in
rasa test e2ewhere test diff inaccurately displayed actual event transcripts, leading to the duplication ofBotUtter`` orUserUtterevents. This occurred specifically when `SetSlotevents took place that were not explicitly defined in the Test Cases.
Improved Documentation
- Updated PII docs with new section on how to use Rasa X/Enterprise with PII management solution, and a new note on debug
logs being displayed after the bot message with
rasa shell.
[3.6.4] - 2023-07-21
Rasa Pro 3.6.4 (2023-07-21)
Bugfixes
- Extract conditional response variation and channel variation filtering logic into a separate component. Enable usage of this component in the NaturalLanguageGenerator subclasses (e.g. CallbackNaturalLanguageGenerator, TemplatedNaturalLanguageGenerator). Amend nlg_request_format to include a single response ID string field, instead of a list of IDs.
- Added details to the logs of successful and failed cases of running the markers upload command.
Improved Documentation
- Updated commands with square brackets e.g (
pip install rasa[spacy]) to use quotes (pip install 'rasa[spacy]') for compatibility with zsh in docs.
[3.6.3] - 2023-07-20
Rasa Pro 3.6.3 (2023-07-20)
Improvements
- Added a human readable component to structlog using the
event_infokey and made it the default rendered key if present.
Bugfixes
- Fix the issue with the most recent model not being selected if the owner or permissions where modified on the model file.
- Fixed
BlockingIOErrorwhich occured as a result of too large data passed to strulogs. - Fixed the error handling mechanism in
rasa test e2eto quickly detect and communicate errors when the action server, defined in endpoints.yaml, is not available. - Allow hyphens
-to be present in e2e test slot names. - Resolved issues in
rasa test e2ewhere errors occurred when the bot concluded the conversation withSetSlotevents while there were remaining steps in the test case. Corrected the misleading error message '- No slot set' to '- Slot types do not match' inrasa test e2ewhen a type mismatch occurred during testing.
Improved Documentation
- Update action server documentation with new capability to extend Sanic features by using plugins. Update rasa-sdk dependency to version 3.6.1.
- Updated commands with square brackets e.g (
pip install rasa[spacy]) to use quotes (pip install 'rasa[spacy]') for compatibility with zsh in docs.
[3.6.2] - 2023-07-06
Rasa Pro 3.6.2 (2023-07-06)
Improvements
-
Add building Docker container for arm64 (e.g. to allow running Rasa inside docker on M1/M2).
Bumped the version of OpenTelemetry to meet the requirement of protobuf 4.x.
Bugfixes
- Resolves the issue of importing TensorFlow on Docker for ARM64 architecture.
[3.6.1] - 2023-07-03
Rasa Pro 3.6.1 (2023-07-03)
Improvements
- Add building multi-platform Docker image (amd64/arm64)
- Switch struct log to
FilteringBoundLoggerin order to retain log level set in the config. - Add new anonymizable structlog keys.
Bugfixes
- Add
rasa_eventsto the list of anonymizable structlog keys and rename structlog keys. - Introduce a validation step in
rasa data validateandrasa traincommands to identify non-existent paths and empty domains. - Rich responses containing buttons with parentheses characters are now correctly parsed.
Previously any characters found between the first identified pair of
()in response button took precedence. - Add PII bugfixes (e.g. handling None values and casting data types to string before being passed to the anonymizer) after testing manually with Audiocodes channel.
Improved Documentation
- Update wording in Rasa Pro installation page.
- Document new PII Management section.
- Added Documentation for Realtime Markers Section.
- Add "Rasa Pro Change Log" to documentation.
- Document new Load Testing Guidelines section.
- Changes the formatting of realtime markers documentation page
[3.6.0] - 2023-06-14
Rasa Pro 3.6.0 (2023-06-14)
Deprecations and Removals
- Removed Python 3.7 support as it reaches its end of life in June 2023
Features
-
Implemented PII (Personally Idenfiable Information) management using Microsoft Presidio as the entity analyzer and anonymization engine. The feature covers the following:
- anonymization of Rasa events (
UserUttered,BotUttered,SlotSet,EntitiesAdded) before they are streamed to Kafka event broker anonymization topics specified inendpoints.yml. - anonymization of Rasa logs that expose PII data
The main components of the feature are:
- anonymization rules that define in
endpoints.ymlthe PII entities to be anonymized and the anonymization method to be used - anonymization executor that executes the anonymization rules on a given text
- anonymization orchestrator that orchestrates the execution of the anonymization rules and publishes the anonymized event to the matched Kafka topic.
- anonymization pipeline that contains a list of orchestrators and is registered to a singleton provider component, which gets invoked in hook calls in Rasa Pro when the pipeline must be retrieved for anonymizing events and logs.
Please read through the PII Management section in the official documentation to learn how to get started.
- anonymization of Rasa events (
-
Implemented support for real time evaluation of Markers with the Analytics Data Pipeline, enabling you to gain valuable insights and enhance the performance of your Rasa Assistant.
For this feature, we've added support for
rasa markers uploadcommand. Running this command validates the marker configuration file against the domain file and uploads the configuration to Analytics Data Pipeline.
Improvements
-
Add optional property
idsto the nlg server request body. IDs will be transmitted to the NLG server and can be used to identify the response variation that should be used. -
Add building Docker container for arm64 (e.g. to allow running Rasa inside docker on M1/M2).
-
Add support for Location data from Whatsapp on Twilio Channel
-
Add validation to
rasa trainto align validation expectations withrasa data validate. Add--skip-validationflag to disable validation and--fail-on-validation-warnings,--validation-max-historytorasa trainto have the same options asrasa data validate. -
Updated tensorflow to version 2.11.1 for all platforms except Apple Silicon which stays on 2.11.0 as 2.11.1 is not available yet
-
Slot mapping conditions accept
active_loopspecified asnullin those cases when slots with this mapping condition should be filled only outside form contexts. -
Add an optional
descriptionkey to the Markers Configuration format. This can be used to add documentation and context about marker's usage. For example, amarkers.ymlcan look likemarker_name_provided:
description: “Name slot has been set”
slot_was_set: name
marker_mood_expressed:
description: “Unhappy or Great Mood was expressed”
or:
- intent: mood_unhappy
- intent: mood_great -
Add
rasa marker uploadcommand to upload markers to the Rasa Pro Services. Usage:rasa marker upload --config=<path-to-config-file> -d=<path-to-domain-file> -rasa-pro-services-url=<url>. -
Enhance the validation of the
anonymizationkey inendpoints.yamlby introducing checks for required fields and duplicate IDs.
Bugfixes
- Fix running custom form validation to update required slots at form activation when prefilled slots consist only of slots that are not requested by the form.
- Anonymize
rasa_eventsstructlog key. - Fixes issue with uploading locally trained model to a cloud rasa-plus instance where the conversation does not
go as expected because slots don't get set correctly, e.g. an error is logged
Tried to set non existent slot 'placeholder_slot_name'. Make sure you added all your slots to your domain file.. This is because the updated domain during the cloud upload did not get passed to the wrapped tracker store of theAuthRetryTrackerStorerasa-plus component. The fix was to add domain property and setter methods to theAuthRetryTrackerStorecomponent. - When using
rasa studio upload, if no specificintentsorentitiesare specified by the user, the update will now include all availableintentsorentities.
Improved Documentation
- Explicitly set Node.js version to 12.x in order to run Docusaurus.
- Update obselete commands in docs README.
- Correct docker image name for
deploy-rasa-pro-servicesin docs. - Update Compatibility Matrix.
- Implement
rasa data split storiesto split stories data into train/test parts. - Updated knowledge base action docs to reflect the improvements made in
knowledge base actionsin Rasa Pro 3.6 version. This enhancement now allows users to query for theobjectattribute without the need for users to request a list ofobjectsof a particularobject typebeforehand. The docs update mentions this under:::info New in 3.6section. - Fix dead link in Analytics documentation.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.5.12] - 2023-06-23
Rasa Pro 3.5.12 (2023-06-23)
Bugfixes
- Rich responses containing buttons with parentheses characters are now correctly parsed.
Previously any characters found between the first identified pair of
()in response button took precedence.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.5.11] - 2023-06-08
Rasa Pro 3.5.11 (2023-06-08)
Bugfixes
- Fix running custom form validation to update required slots at form activation when prefilled slots consist only of slots that are not requested by the form.
[3.5.10] - 2023-05-23
Rasa Pro 3.5.10 (2023-05-23)
Improved Documentation
- Added documentation for spaces alpha
[3.5.9] - 2023-05-19
Rasa Pro 3.5.9 (2023-05-19)
No significant changes.
[3.5.8] - 2023-05-12
Rasa Pro 3.5.8 (2023-05-12)
Bugfixes
- Explicitly handled
BufferError exception - Local: Queue fullin Kafka producer.
[3.5.7] - 2023-05-09
Rasa Pro 3.5.7 (2023-05-09)
Bugfixes
-
SlotSetevents will be emitted when the value set by the custom action is the same as the existing value of the slot. This was fixed forAugmentedMemoizationPolicyto work properly with truncated trackers.To restore the previous behaviour, the custom action can return a SlotSet only if the slot value has changed. For example,
class CustomAction(Action):
def name(self) -> Text:
return "custom_action"
def run(self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
# current value of the slot
slot_value = tracker.get_slot('my_slot')
# value of the entity
# this is parsed from the user utterance
entity_value = next(tracker.get_latest_entity_values("entity_name"), None)
if slot_value != entity_value:
return[SlotSet("my_slot", entity_value)]
[3.5.6] - 2023-04-28
Rasa Pro 3.5.6 (2023-04-28)
Bugfixes
- Addresses Regular Expression Denial of Service vulnerability in slack connector (https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS)
- Fix parsing of RabbitMQ URL provided in
endpoints.ymlfile to include vhost path and query parameters. Re-allows inclusion of credentials in the URL as a regression fix (this was supported in 2.x).
[3.5.5] - 2023-04-20
Rasa Pro 3.5.5 (2023-04-20)
Bugfixes
- Allow slot mapping parameter
intentto accept a list of intent names (as strings), in addition to accepting an intent name as a single string. - Fix
BlockingIOErrorwhen runningrasa shellon utterances with more than 5KB of text. - Use
ruamel.yamlround-trip loader in order to preserve all comments after appendingassistant_idtoconfig.yml. - Fix
AttributeError: 'NoneType' object has no attribute 'send_response'caused by retrieving tracker viaGET /conversations/\{conversation_id\}/trackerendpoint whenaction_session_startis customized in a custom action. This was addressed by passing an instance ofCollectingOutputChannelto the method retrieving the tracker from theMessageProcessor.
Improved Documentation
- Updated AWS model loading documentation to indicate what should
AWS_ENDPOINT_URLenvironment variable be set to. Added integration test for AWS model loading. - Updated Rasa Pro Services documentation to add
KAFKA_SSL_CA_LOCATIONenvironment variable. Allows connections over SSL to Kafka - Added note to CLI documentation to address encoding and color issues on certain Windows terminals
Miscellaneous internal changes
Miscellaneous internal changes.
[3.5.4] - 2023-04-05
Rasa Pro 3.5.4 (2023-04-05)
Bugfixes
- Fix issue with failures while publishing events to RabbitMQ after a RabbitMQ restart.
The fix consists of pinning
aio-pikadependency to8.2.3, since this issue was introduced inaio-pikav8.2.4. - Patch redis Race Conditiion vulnerability.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.5.3] - 2023-03-30
Rasa Pro 3.5.3 (2023-03-30)
Improved Documentation
- Add new Rasa Pro page in docs, together with minimal content changes.
[3.5.2] - 2023-03-30
Rasa Pro 3.5.2 (2023-03-30)
Improvements
- Add a self-reference of the synonym in the EntitySynonymMapper to handle entities extracted in a casing different to synonym case. (For example if a synonym
austriais added, entities extracted with any alternate casing of the synonym will also be mapped toaustria). It addresses ATO-616
Bugfixes
- Make custom actions inheriting from rasa-sdk
FormValidationActionparent class an exception of theselective_domainrule and always send them domain. - Fix 2 issues detected with the HTTP API:
- The
GET /conversations/\{conversation_id\}/trackerendpoint was not returning the tracker with all sessions wheninclude_eventsquery parameter was set toALL. The fix constituted in usingTrackerStore.retrieve_full_trackermethod instead ofTrackerStore.retrievemethod in the function handling theGET /conversations/\{conversation_id\}/trackerendpoint. Implemented or updated this method across all tracker store subclasses. - The
GET /conversations/\{conversation_id\}/storyendpoint was not returning all the stories for all sessions whenall_sessionsquery parameter was set totrue. The fix constituted in using all events of the tracker to be converted in stories instead of only theapplied_events.
- The
Improved Documentation
- Add documentation for secrets managers.
[3.5.1] - 2023-03-24
Rasa Pro 3.5.1 (2023-03-24)
Bugfixes
-
Fixes training
DIETCLassifieron the GPU.A deterministic GPU implementation of SparseTensorDenseMatmulOp is not currently available
Improved Documentation
- Updated
Test your assistantsection to describe the new end-to-end testing feature. Also updated CLI and telemetry reference docs. - Update Compatibility Matrix.
[3.5.0] - 2023-03-21
Rasa Pro 3.5.0 (2023-03-21)
Features
-
Add a new required key (
assistant_id) toconfig.ymlto uniquely identify assistants in deployment. The assistant identifier is extracted from the model metadata and added to the metadata of all dialogue events. Re-training will be required to include the assistant id in the event metadata.If the assistant identifier is missing from the
config.ymlor the default identifier value is not replaced, a random identifier is generated during each training.An assistant running without an identifier will issue a warning that dialogue events without identifier metadata will be streamed to the event broker.
-
End-to-end testing is an enhanced and comprehensive CLI-based testing tool that allows you to test conversation scenarios with different pre-configured contexts, execute custom actions, verify response texts or names, and assert when slots are filled. It is available ysing the new
rasa test e2ecommand. -
You can now store your assistant's secrets in an external credentials manager. In this release, Rasa Pro currently supports credentials manager for the Tracker Store with HashiCorp Vault.
Improvements
- Add capability to send compressed body in HTTP request to action server. Use COMPRESS_ACTION_SERVER_REQUEST=True to turn the feature on.
Bugfixes
- Address potentially missing events with Pika consumer due to weak references on asynchronous tasks, as specifcied in Python official documentation.
- Sets a global seed for numpy, TensorFlow, keras, Python and CuDNN, to ensure consistent random number generation.
Improved Documentation
- Clarify in the docs, how rules are designed and how to use this behaviour to abort a rule
Miscellaneous internal changes
Miscellaneous internal changes.
[3.4.14] - 2023-06-08
Rasa Pro 3.4.14 (2023-06-08)
Bugfixes
- Fix running custom form validation to update required slots at form activation when prefilled slots consist only of slots that are not requested by the form.
[3.4.13] - 2023-05-19
Rasa Pro 3.4.13 (2023-05-19)
No significant changes.
[3.4.12] - 2023-05-12
Rasa Pro 3.4.12 (2023-05-12)
Bugfixes
- Explicitly handled
BufferError exception - Local: Queue fullin Kafka producer.
[3.4.11] - 2023-05-09
Rasa Pro 3.4.11 (2023-05-09)
Bugfixes
-
Fix parsing of RabbitMQ URL provided in
endpoints.ymlfile to include vhost path and query parameters. Re-allows inclusion of credentials in the URL as a regression fix (this was supported in 2.x). -
SlotSetevents will be emitted when the value set by the custom action is the same as the existing value of the slot. This was fixed forAugmentedMemoizationPolicyto work properly with truncated trackers.To restore the previous behaviour, the custom action can return a SlotSet only if the slot value has changed. For example,
class CustomAction(Action):
def name(self) -> Text:
return "custom_action"
def run(self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
# current value of the slot
slot_value = tracker.get_slot('my_slot')
# value of the entity
# this is parsed from the user utterance
entity_value = next(tracker.get_latest_entity_values("entity_name"), None)
if slot_value != entity_value:
return[SlotSet("my_slot", entity_value)]
Miscellaneous internal changes
Miscellaneous internal changes.
[3.4.10] - 2023-04-17
Rasa Pro 3.4.10 (2023-04-17)
Miscellaneous internal changes
Miscellaneous internal changes.
[3.4.9] - 2023-04-05
Miscellaneous internal changes
Miscellaneous internal changes.
[3.4.8] - 2023-04-03
Rasa Pro 3.4.8 (2023-04-03)
Bugfixes
- Fix issue with failures while publishing events to RabbitMQ after a RabbitMQ restart.
The fix consists of pinning
aio-pikadependency to8.2.3, since this issue was introduced inaio-pikav8.2.4.
[3.4.7] - 2023-03-30
Rasa Pro 3.4.7 (2023-03-30)
Improvements
- Add a self-reference of the synonym in the EntitySynonymMapper to handle entities extracted in a casing different to synonym case. (For example if a synonym
austriais added, entities extracted with any alternate casing of the synonym will also be mapped toaustria). It addresses ATO-616
Bugfixes
- Fix 2 issues detected with the HTTP API:
- The
GET /conversations/\{conversation_id\}/trackerendpoint was not returning the tracker with all sessions wheninclude_eventsquery parameter was set toALL. The fix constituted in usingTrackerStore.retrieve_full_trackermethod instead ofTrackerStore.retrievemethod in the function handling theGET /conversations/\{conversation_id\}/trackerendpoint. Implemented or updated this method across all tracker store subclasses. - The
GET /conversations/\{conversation_id\}/storyendpoint was not returning all the stories for all sessions whenall_sessionsquery parameter was set totrue. The fix constituted in using all events of the tracker to be converted in stories instead of only theapplied_events.
- The
- Make custom actions inheriting from rasa-sdk
FormValidationActionparent class an exception of theselective_domainrule and always send them domain.
[3.4.6] - 2023-03-16
Rasa Pro 3.4.6 (2023-03-16)
Bugfixes
- Fixes CountVectorFeaturizer to train when min_df != 1.
[3.4.5] - 2023-03-09
Rasa Pro 3.4.5 (2023-03-09)
Bugfixes
- Check unresolved slots before initiating model training.
- Fixes the bug when a slot (with
from_intentmapping which contains no input forintentparameter) will no longer fill for any intent that is not under thenot_intentparameter. - Fix validation metrics calculation when batch_size is dynamic.
Improved Documentation
- Add a link to an existing docs section on how to test the audio channel on
localhost.
[3.4.4] - 2023-02-17
Rasa Pro 3.4.4 (2023-02-17)
Improvements
- Add capability to send compressed body in HTTP request to action server. Use COMPRESS_ACTION_SERVER_REQUEST=True to turn the feature on.
Bugfixes
- Fix the error which resulted during merging multiple domain files where at least one of them contains custom actions that explicitly need
send_domainset as True in the domain.
[3.4.3] - 2023-02-14
Rasa Pro 3.4.3 (2023-02-14)
Improvements
- Add support for custom RulePolicy.
- Add capability to select which custom actions should receive domain when they are invoked.
Bugfixes
- Fix calling the form validation action twice for the same user message triggering a form.
- Fix conditional response does not check other conditions if first condition matches.
Improved Documentation
- Add section in tracker store docs to document the fallback tracker store mechanism.
[3.4.2] - 2023-01-27
Rasa Pro 3.4.2 (2023-01-27)
Bugfixes
-
Decision to publish docs should not consider next major and minor alpha release versions.
-
Exit training/running Rasa model when SpaCy runtime version is not compatible with the specified SpaCy model version.
-
The new custom logging feature was not working due to small syntax issue in the argparse level.
Previously, the file name passed using the argument --logging-config-file was never retrieved so it never creates the new custom config file with the desired formatting.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.4.1] - 2023-01-19
Rasa Pro 3.4.1 (2023-01-19)
Bugfixes
- Changed categorical slot comparison to be case insensitive.
- Exit training when transformer_size is not divisible by the number_of_attention_heads parameter and update the transformer documentations.
Improved Documentation
- Update compatibility matrix between Rasa-plus and Rasa Pro services.
[3.4.0] - 2022-12-14
Rasa Pro 3.4.0 (2022-12-14)
Features
- Add metadata to Websocket channel. Messages can now include a
metadataobject which will be included as metadata to Rasa. The metadata can be supplied on a user configurable key with themetadata_keysetting in thesocketiosection of thecredentials.yml. - Use a new IVR Channel to connect your assistant to AudioCodes VoiceAI Connect.
Improvements
- Added
./docker/Dockerfile_pretrained_embeddings_spacy_itto include Spacy's Italian pre-trained modelit_core_news_md. - Replace
kafka-pythondependency withconfluent-kafkaasync Producer API. - Add support for Python 3.10 version.
- Added CLI option
--logging-config-fileto enable configuration of custom logs formatting.
Bugfixes
- Implements a new CLI option
--jwt-private-keyrequired to have complete support for asymmetric algorithms as specified originally in the docs.
Improved Documentation
- Clarify in the documentation how to write testing stories if a user presses a button with payload.
- Clarify prioritisation of used slot asking option in forms in documentation.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.3.8] - 2023-04-06
Miscellaneous internal changes
Miscellaneous internal changes.
[3.3.7] - 2023-03-31
Improvements
- Add a self-reference of the synonym in the EntitySynonymMapper to handle entities extracted in a casing different to synonym case. (For example if a synonym
austriais added, entities extracted with any alternate casing of the synonym will also be mapped toaustria). It addresses ATO-616
Bugfixes
- Fix issue with failures while publishing events to RabbitMQ after a RabbitMQ restart.
The fix consists of pinning
aio-pikadependency to8.2.3, since this issue was introduced inaio-pikav8.2.4. - Fix 2 issues detected with the HTTP API:
- The
GET /conversations/\{conversation_id\}/trackerendpoint was not returning the tracker with all sessions wheninclude_eventsquery parameter was set toALL. The fix constituted in usingTrackerStore.retrieve_full_trackermethod instead ofTrackerStore.retrievemethod in the function handling theGET /conversations/\{conversation_id\}/trackerendpoint. Implemented or updated this method across all tracker store subclasses. - The
GET /conversations/\{conversation_id\}/storyendpoint was not returning all the stories for all sessions whenall_sessionsquery parameter was set totrue. The fix constituted in using all events of the tracker to be converted in stories instead of only theapplied_events.
- The
[3.3.6] - 2023-03-09
Rasa Pro 3.3.6 (2023-03-09)
Bugfixes
- Fixes the bug when a slot (with
from_intentmapping which contains no input forintentparameter) will no longer fill for any intent that is not under thenot_intentparameter. - Fix validation metrics calculation when batch_size is dynamic.
[3.3.5] - 2023-02-21
No significant changes.
[3.3.4] - 2023-02-14
Rasa Pro 3.3.4 (2023-02-14)
Improvements
- Add capability to send compressed body in HTTP request to action server. Use COMPRESS_ACTION_SERVER_REQUEST=True to turn the feature on.
- Add support for custom RulePolicy.
[3.3.3] - 2022-12-01
Bugfixes
- Bypass Windows path length restrictions upon saving and reading a model archive in
rasa.engine.storage.LocalModelStorage.
Improvements
- Updated tensorflow to 2.8.4.
[3.3.2] - 2022-11-30
Improvements
- Added support for camembert french bert model
Bugfixes
- Fixes
RuntimeWarning: coroutine 'Bot.set_webhook' was never awaitedissue encountered when starting the rasa server, which caused the Telegram bot to be unresponsive.
Improved Documentation
- The documentation was updated for Buttons using messages that start with '/'. Previously, it wrongly stated that messages with '/' bypass NLU, which is not the case.
- Add documentation for Rasa Pro Services upgrades.
[3.3.1] - 2022-11-09
Improved Documentation
- Add docs on how to set up additional data lakes for Rasa Pro analytics pipeline.
- Update migration guide and form docs with prescriptive recommendation on how to implement dynamic forms with custom slot mappings.
Improvements
- Updated numpy and scikit learn version to fix vulnerabilities of those dependencies
[3.3.0] - 2022-10-24
Features
- Tracing capabilities for your Rasa Pro assistant. Distributed tracing tracks requests as they flow through a distributed system (in this case: a Rasa assistant), sending data about the requests to a tracing backend which collects all trace data and enables inspecting it. With this version of the Tracing feature, Rasa Pro supports OpenTelemetry.
ConcurrentRedisLockStoreis a new lock store that uses Redis as a persistence layer and is safe for use with multiple Rasa server replicas.
Improvements
- Added option
--offset-timestamps-by-secondsto offset the timestamp of events when usingrasa export - Rasa supports native installations on Apple Silicon (M1 / M2). Please follow the installation instructions and take a look at the limitations.
- Caching
MessageandFeaturesfingerprints unless they are altered, saving up to 2/3 of fingerprinting time in our tests. - Added package versions of component dependencies as an additional part of fingerprinting calculation. Upgrading an dependency will thus lead to a retraining of the component in the future. Also, by changing fingerprint calculation, the next training after this change will be a complete retraining.
- Export events continuously rather than loading all events in memory first when
using
rasa export. Events will be streamed right from the start rather than loading all events first and pushing them to the broker afterwards. - Adds new dependency pluggy, with which it was possible to implement new plugin functionality. This plugin manager enables the extension and/or enhancement of the Rasa command line interface with functionality made available in the rasa-plus package.
Bugfixes
- Fix
BlockingIOErrorwhen runningrasa interactive, after the upgrade ofprompt-toolkitdependency. - Fixes a bug that lead to initial slot values being incorporated into all rules by default, thus breaking most rules when the slot value changed from its initial value
- Made logistic regression classifier output a proper intent ranking and made ranking length configurable
Deprecations and Removals
- Remove code related to Rasa X local mode as it is deprecated and scheduled for removal.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.2.13] - 2023-03-09
Rasa 3.2.13 (2023-03-09)
Bugfixes
- Fix validation metrics calculation when batch_size is dynamic.
- Fixes the bug when a slot (with
from_intentmapping which contains no input forintentparameter) will no longer fill for any intent that is not under thenot_intentparameter.
[3.2.12] - 2023-02-21
Features
- Add metadata to Websocket channel. Messages can now include a
metadataobject which will be included as metadata to Rasa. The metadata can be supplied on a user configurable key with themetadata_keysetting in thesocketiosection of thecredentials.yml.
Improvements
- Add capability to send compressed body in HTTP request to action server. Use COMPRESS_ACTION_SERVER_REQUEST=True to turn the feature on.
Bugfixes
- Decision to publish docs should not consider next major and minor alpha release versions.
[3.2.11] - 2022-12-05
Improvements
- Caching
MessageandFeaturesfingerprints unless they are altered, saving up to 2/3 of fingerprinting time in our tests.
Bugfixes
- Implements a new CLI option
--jwt-private-keyrequired to have complete support for asymmetric algorithms as specified originally in the docs.
[3.2.10] - 2022-09-29
Bugfixes
- Fixes scenarios in which a slot with
from_trigger_intentmapping that specifies anactive_loopcondition was being filled despite thatactive_loopnot being activated. In addition, fixes scenario in which a slot withfrom_trigger_intentmapping without a specifiedactive_loopmapping condition is only filled if the form gets activated. Removes unnecessary validation warning that a slot withfrom_trigger_intentand a mapping condition should be included in the form's required_slots. - Fixed a bug where
DIETClassiercrashed during training when both masked language modelling and evaluation during training were used.
Improved Documentation
- Rasa SDK documentation lives now in Rasa Open Source documentation under the Rasa SDK category.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.2.9] - 2022-09-09
Yanked.
[3.2.8] - 2022-09-08
Bugfixes
- Fix bug where
KeywordIntentClassifieroverrides preceding intent classifiers' predictions although theKeyWordIntentClassifierwas not matching any keywords.
[3.2.7] - 2022-08-31
Improvements
- Improve
rasa data validatecommand so that it uses custom importers when they are defined in config file.
Bugfixes
- Re-instates the REST channel metadata feature. Metadata can be provided on the
metadatakey.
[3.2.6] - 2022-08-12
Bugfixes
- This fix makes sure that when a Domain object is loaded from multiple files where one file specifies a custom session config and the rest do not, the default session configuration does not override the custom session config.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.2.5] - 2022-08-05
Bugfixes
- Fix
KeyErrorwhich resulted whenaction_two_stage_fallbackgot executed in a project whose domain contained slot mappings. - Fixes regression in which slot mappings were prioritized according to reverse order as they were listed in the domain, instead of in order from first to last, as was implicitly expected in
2.x. Clarifies this implicit priority order in the docs. - Enables the dispatching of bot messages returned as events by slot validation actions.
[3.2.4] - 2022-07-21
Bugfixes
- Added session_config key as valid domain key during domain loading from directory containing a separate domain file with session configuration.
- Run default action
action_extract_slotsafter a custom action returns aUserUtteredevent to fill any applicable slots. - Handle the case when an
EndpointConfigobject is given as parameter to theAwaitableTrackerStore.create()method.
[3.2.3] - 2022-07-18
Bugfixes
-
- Fixed error in creating response when slack sends retry messages. Assigning
Nonetoresponse.textcausedTypeError: Bad body type. Expected str, got NoneType. - Fixed Slack triggering timeout after 3 seconds if the action execution is too slow. Running
on_new_messageas an asyncio background task instead of a blocking await fixes this by immediately returning a response with code 200.
- Fixed error in creating response when slack sends retry messages. Assigning
-
Revert change in #10295 that removed running the form validation action on activation of the form before the loop is active.
-
SlotSetevents will be emitted when the value set by the current user turn is the same as the existing value.Previously,
ActionExtractSlotswould not emit anySlotSetevents if the new value was the same as the existing one. This caused the augmented memoization policy to lose these slot values when truncating the tracker.
[3.2.2] - 2022-07-05
Improved Documentation
- Update documentation for customizable classes such as tracker stores, event brokers and lock stores.
Miscellaneous internal changes
Miscellaneous internal changes.
[3.2.1] - 2022-06-17
Bugfixes
- Fix failed check in
rasa data validatethat verifies forms in rules or stories are consistent with the domain when the rule or story contains a default action asactive_loopstep.
[3.2.0] - 2022-06-14
Deprecations and Removals
- NLU training data in JSON format is deprecated and will be
removed in Rasa Open Source 4.0.
Please use
rasa data convert nlu -f yaml --data <path to NLU data>to convert your NLU JSON data to YAML format before support for NLU JSON data is removed.
Improvements
- Make
TrackerStoreinterface methods asynchronous and supply anAwaitableTrackerstorewrapper for custom tracker stores which do not implement the methods as asynchronous. - Added flag
use_gputoTEDPolicyandUnexpecTEDIntentPolicythat can be used to enable training on CPU even when a GPU is available. - Add
--endpointscommand line parameter torasa trainparser.
Bugfixes
-
The azure botframework channel now validates the incoming JSON Web Tokens (including signature).
Previously, JWTs were not validated at all.
-
rasa shellnow outputs custom json unicode characters instead of\uxxxxcodes
Improved Documentation
-
Clarify aspects of the API spec GET /status endpoint: Correct response schema for model_id - a string, not an object.
GET /conversations/{conversation_id}/tracker: Describe each of the enum options for include_events query parameter
POST & PUT /conversations/{conversation_id}/tracker/eventss: Events schema added for each event type
GET /conversations/{conversation_id}/story: Clarified the all_sessions query parameter and default behaviour.
POST /model/test/intents : Remove JSON payload option since it is not supported
POST /model/parse: Explain what emulation_mode is and how it affects response results
Miscellaneous internal changes
Miscellaneous internal changes.
[3.1.7] - 2022-08-30
Miscellaneous internal changes
Miscellaneous internal changes.
[3.1.6] - 2022-07-20
Bugfixes
- Run default action
action_extract_slotsafter a custom action returns aUserUtteredevent to fill any applicable slots.
[3.1.5] - 2022-07-15
Bugfixes
-
SlotSetevents will be emitted when the value set by the current user turn is the same as the existing value.Previously,
ActionExtractSlotswould not emit anySlotSetevents if the new value was the same as the existing one. This caused the augmented memoization policy to lose these slot values when truncating the tracker.
[3.1.4] - 2022-06-21 No significant changes.
Upgrade dependent libraries with security vulnerabilities (Pillow, TensorFlow, ujson).
[3.1.3] - 2022-06-17
Bugfixes
-
The azure botframework channel now validates the incoming JSON Web Tokens (including signature).
Previously, JWTs were not validated at all.
-
Backports fix for failed check in
rasa data validatethat verifies forms in rules or stories are consistent with the domain when the rule or story contains a default action asactive_loopstep.