At Rasa, we constantly innovate to challenge the status quo of conversational AI. With that goal, weâre proud to introduce a new, LLM-native paradigm for building reliable conversational AI: CALM (Conversational AI with Language Models).
CALM delivers a massive leap in two dimensions: it makes assistants far more intelligent, and it makes conversational AI much easier to build. It leverages the power, fluency, and time-to-value of LLMs while retaining the controls and guarantees of NLU-based systems.
You can build a sophisticated, LLM-native assistant with CALM while guaranteeing zero hallucination and that your business logic is faithfully executed. CALM is how enterprises can put next-generation assistants in production today.
Adding to our suite of offerings, weâre thrilled to launch the new Rasa Platform, an LLM-native solution providing pro-code and no-code development of CALM assistants.
This post is a high-level overview of CALM and the reasons weâre so excited about it. And for those with questions, donât miss the FAQ section at the end.
Towards Level 5 Assistants
Rasaâs vision is to transform how people interact with organizations through AI. That means that individuals can express themselves in their own words, while AI assistants figure out how the organization can help them. We describe this in our 5 levels of conversational AI. With each level, the task of translating personal requests into the organizationâs language becomes less burdensome. CALM is a leap in that direction.
CALM has three key components: business logic, dialogue understanding, and conversation repair. I will introduce each of them and show how they work together.

Business Logic
Rasa is used to building assistants that achieve things for users, and CALM allows us to natively combine LLMs and your business logic. In CALM, we describe business logic using flows. A flow contains steps to collect information from the user, call APIs, and follow any branching logic.
For example, consider this flow for transferring money. It says we need to:
- Ask the user for the recipient and the amount to transfer
- Call an API to check if the user has enough funds to complete the transaction
- Either complete the transaction or inform the user this isnât possible

The most important thing to notice about this business logic is that it doesnât include any description of the userâs side of the conversation. Thereâs no box labeled âintentâ, or lines describing âif the user says this and then says thisâ.
When I talk to enterprise teams about their business logic, they usually show me a flow chart detailing every possible conversation a user might have on a subject. I find these awfully hard to read, because they are trying to cram too much information into one diagram. Theyâre representing both the business logic and all the ways the user can navigate it. This usually looks like a plate of spaghetti.
In CALM, your flows describe your actual business logic. The userâs side of the conversation is handled through Dialogue Understanding and Automatic Conversation Repair.
A new way to understand
A big shift in CALM is we no longer rely on âNLUâ models. Within conversational AI, NLU (Natural Language Understanding) describes the processing of user messages and predicting intents and entities to represent what those messages mean.
CALM uses a new approach called Dialogue Understanding (DU), which translates what users are saying into what that means for your business logic. It differs from a traditional NLU approach in key ways:
- While NLU interprets one message in isolation, DU considers the greater context: the whole back-and-forth of the conversation as well as the assistantâs business logic.
- NLU systems output intents and entities representing the information in a message, but DU outputs a sequence of commands representing how the user wants to progress the conversation.
- NLU systems match an isolated input to a fixed list of intents. DU instead is generative, and produces a sequence of commands according to an internal grammar. This gives us a far richer language to represent what users want.

By far the biggest benefit of Dialogue Understanding is that it frees us from intents. Until now, weâve used NLU models to translate things users are saying into things our assistant can do, and intents have served as the âlanguageâ we used to do that translation.
Intents reduce the problem of understanding human language to categorizing messages into predefined buckets. Thatâs a powerful simplification, but also a bottleneck to scaling. If youâve built an AI assistant, you probably felt your intents becoming a house of cards. A team member wants to introduce a new intent, but itâs too similar to an existing one. Or users run into an edge case you want to handle. So you try to figure out the puzzle of where you can introduce a new intent that doesnât break everything else.

For years, weâve advocated moving away from intents; with CALM, thatâs now a reality. CALM translates complex utterances into simple grammar driving your business logic.

Conversation Repair
Dialogue Understanding translates what users say into what that means for your business logic. But real user behavior is more complex than just following the happy path. When your assistant asks a user for some information, conversation repair kicks in if the user does something other than providing the information you requested. CALM handles these out-of-the-box using fully customizable patterns.
You can build a simple flow like the money transfer example above, and your assistant will automatically handle conversations where users change their mind, interject mid flow, switch context, or ask clarifying questions.

Putting it all together
CALM is greater than the sum of its parts. The dialogue understanding and conversation repair components in CALM keep your business logic pure.
As a result, building assistants with CALM is very fast. We no longer have to start by mapping out dozens of possible user journeys and bootstrapping training data for intents and entities. You build the essence of your business logic, and conversations just work.
CALM is the biggest leap forward since we first started Rasa, and the feedback from our Beta is unlike anything Iâve seen before. Itâs a new paradigm giving us the best of both worlds: LLMs and NLU.
Interested in what CALM can do? Ready to try the next big thing in conversational AI? Contact Rasa today and letâs get started!
Frequently Asked Questions
How can you guarantee zero hallucination?
By default, assistants built with CALM only send predefined, human-authored responses to users. There is no scope for hallucination because we donât send generated text to end users. You can allow some generation by choosing to use contextual response rephrasing or by integrating RAG / enterprise search into your assistant, but itâs not required.
How is this actually different from predicting intents?
If I have a flow for transferring money, canât I just train an intent to trigger that flow? Why is CALM better?
Intents work perfectly well for straightforward cases like this. Thatâs also why the whole industry has used them for so long. CALM is especially helpful for cases that are very hard to model with an NLU system. Take this conversation as an example:

If I wanted this to work with NLU, I would first think about what the NLU would output for these one-word messages, and then I would tell my dialogue manager how that sequence of intent-entity pairs would lead to starting this flow.
How does this compare with LLM Agents?
The âLLM Agentsâ idea has recently gained popularity in hacker circles. If youâre building an open-ended, âdo anythingâ style personal assistant, then LLM Agents are a cool idea. LLM Agents give the end user full autonomy over the experience, generating and executing dynamic logic by calling APIs on-the-fly.
But enterprise AI assistants arenât like that at all - weâre not giving end users free reign to interact with internal APIs. We want to reliably help users do a known list of things, like upgrading their account, changing billing information, ordering a new card, buying an extra bundle, etc. We need to faithfully and consistently follow the business logic of those processes.
CALM uses LLMs to understand what users want and translates thatin the context of your business logic.
In CALM, even complex business logic is explicit, easily editable, andalways followed faithfully. Thatâs faster, more robust, and more secure than LLM Agents, which recursively call an LLM to guess what should happen next.
CALM is also easy to debug because you can see exactly what commands were generated and if these deviate from what you expected. You can pinpoint exactly where something went wrong, unlike a chain of LLM calls. And because your assistant follows discrete steps, analytics and understanding user journeys are straightforward.
If you donât have intents, how do you know whatâs going on in your assistant / how do you do analytics?
Many teams use intents to keep track of their assistantâs most-used and best-performing features. In CALM, we do the same by tracking which flows are being triggered and how users progress along the flow steps.
Because CALM takes discrete steps, there is no need to use intents to approximate and track the topics customers have asked about. In fact, Rasa Proâs analytics pipeline already supports flows and provides the ability to analyze user behavior.
How does CALM integrate with RAG?
Retrieval-Augmented Generation (RAG) is maturing as an enterprise search solution, allowing assistants to answer questions from documents without first translating them into Q&A pairs. CALM integrates natively with RAG-based enterprise search. When a user asks a question best answered by a supporting document, the dialogue understanding component outputs a command indicating this question should be answered using enterprise search. This works anywhere in a conversation, including in the middle of a flow. The userâs question is answered using the enterprise search component, and the assistant returns to the interrupted flow.
How do I migrate to CALM?
We introduced CALM in a minor release of Rasa, meaning that it has backwards compatibility. If you have an existing assistant built with Rasa, you can implement a single flow in CALM while maintaining your existing NLU model, stories, rules, forms, etc.






