🤖AI Agents Guide
TutorialsComparisonsReviewsExamplesIntegrationsUse CasesTemplatesGlossary
Get Started
🤖AI Agents Guide

Your comprehensive resource for understanding, building, and implementing AI Agents.

Learn

  • Tutorials
  • Glossary
  • Use Cases
  • Examples

Compare

  • Tool Comparisons
  • Reviews
  • Integrations
  • Templates

Company

  • About
  • Contact
  • Privacy Policy

© 2026 AI Agents Guide. All rights reserved.

Home/Reviews/Rasa Review 2026: Rated 3.8/5 — Open-Source Conversational AI Worth Building On?
11 min read

Rasa Review 2026: Rated 3.8/5 — Open-Source Conversational AI Worth Building On?

Building custom NLU and dialogue systems? Rasa scores 3.8/5 for open-source conversational AI. We cover the CALM architecture, Rasa Pro trade-offs, and when it beats managed alternatives.

Open source code development representing Rasa conversational AI framework
Photo by Sai Kiran Anagani on Unsplash
By AI Agents Guide Team•February 28, 2026

Some links on this page are affiliate links. We may earn a commission at no extra cost to you. Learn more.

Visit Rasa Review 2026: Rated 3.8/5 — Open-Source Conversational AI Worth Building On? →

Review Summary

3.8/5

Table of Contents

  1. What Rasa Actually Is
  2. Setting Up a Basic Rasa Project
  3. The CALM Architecture
  4. Rasa Open Source vs Rasa Pro
  5. Testing and Reliability
  6. Deployment Options
  7. Pricing Breakdown
  8. Pros
  9. Cons
  10. Who Should Use Rasa
  11. Verdict
  12. Related Resources
  13. Frequently Asked Questions
  14. What is Rasa and how does it differ from other chatbot platforms?
  15. What is Rasa CALM?
  16. Is Rasa Open Source still actively maintained?
  17. How does Rasa handle on-premises deployment?
  18. When should I choose Rasa over a visual chatbot platform?
Chat interface representing Rasa conversational AI dialogue management
Photo by LinkedIn Sales Solutions on Unsplash

Rasa is the open-source conversational AI framework that provides maximum control over NLU pipelines and dialogue management. Built for developers who need to go beyond the constraints of visual chatbot builders, Rasa has been the go-to framework for enterprises building domain-specific conversational systems in healthcare, banking, telecommunications, and e-commerce.

Where platforms like Botpress and Voiceflow provide visual interfaces for non-technical users, Rasa provides a Python framework and YAML configuration system for teams that need to train custom NLU models, define precise conversation flows, and deploy entirely on-premises. The tradeoff is investment — Rasa demands developer expertise and framework knowledge that visual platforms don't.

What Rasa Actually Is#

Rasa is a Python-based framework with two core architectural components that work together:

Rasa NLU (Natural Language Understanding): The pipeline that interprets user messages. Takes raw text input and produces structured output — intent classification (what does the user want?), entity extraction (what specific values are mentioned?), and response selection. Teams configure NLU pipelines in YAML, selecting components from spaCy, transformers, and custom processors. The pipeline is trained on domain-specific labeled data.

Rasa Core (Dialogue Management): The system that decides what the agent does next based on conversation history and business rules. Traditionally implemented through "stories" (example conversations in YAML) and "rules" (deterministic conditions). The newer CALM architecture replaces stories with LLM-guided "flows" for more flexible dialogue handling.

CALM (Conversational AI with Language Models): Rasa's architectural evolution since 2023. CALM introduces LLMs into dialogue management while maintaining business logic control through structured flows. The LLM handles ambiguous situations and natural language variations; the flows handle deterministic business logic paths.

Setting Up a Basic Rasa Project#

Rasa project structure reflects its pipeline-based architecture:

# domain.yml — defines what the agent knows
version: "3.1"

intents:
  - greet
  - check_account_balance
  - transfer_funds
  - cancel_transaction

entities:
  - account_type
  - amount
  - currency

slots:
  account_type:
    type: categorical
    values:
      - checking
      - savings
    mappings:
      - type: from_entity
        entity: account_type
  transfer_amount:
    type: float
    mappings:
      - type: from_entity
        entity: amount

responses:
  utter_greet:
    - text: "Hello! I'm your banking assistant. How can I help you today?"
  utter_ask_account_type:
    - text: "Which account would you like to check — checking or savings?"
  utter_insufficient_funds:
    - text: "Your {account_type} account doesn't have sufficient funds for this transfer."

actions:
  - action_check_balance
  - action_process_transfer
  - validate_transfer_form
# nlu.yml — training data for intent classification
version: "3.1"

nlu:
  - intent: check_account_balance
    examples: |
      - What's my balance?
      - How much money do I have?
      - Check my [checking](account_type) account
      - Show me my [savings](account_type) balance
      - What's in my account?
      - current balance please
      - how much is in my [checking](account_type)?

  - intent: transfer_funds
    examples: |
      - transfer [500](amount) [dollars](currency) to savings
      - move [100](amount) from checking to savings
      - I want to transfer [fifty](amount) [dollars](currency)
      - send [200](amount) to my savings account
# actions/actions.py — custom Python logic for the agent
from typing import Any, Text, Dict, List
from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher
from rasa_sdk.events import SlotSet

class ActionCheckBalance(Action):
    def name(self) -> Text:
        return "action_check_balance"

    def run(self, dispatcher: CollectingDispatcher,
            tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:

        account_type = tracker.get_slot("account_type")
        user_id = tracker.sender_id

        # Call your banking API
        balance = get_account_balance(user_id, account_type)

        dispatcher.utter_message(
            text=f"Your {account_type} account balance is ${balance:,.2f}."
        )

        return [SlotSet("last_checked_account", account_type)]

The CALM Architecture#

CALM represents Rasa's evolution from purely rule-based dialogue management toward hybrid NLU-LLM systems. The key change: instead of writing exhaustive story examples, developers define "flows" — structured business logic that the LLM can interpret flexibly.

# flows.yml — CALM flow definition
flows:
  transfer_money:
    description: "Complete a money transfer between accounts"
    steps:
      - id: ask_account_type
        collect: account_type
        ask_before_filling: true
        utter: utter_ask_account_type
        next:
          - if: "slots.account_type == 'checking'"
            then: verify_checking_balance
          - else: verify_savings_balance

      - id: verify_checking_balance
        action: action_check_checking_balance
        next:
          - if: "slots.balance < slots.transfer_amount"
            then: insufficient_funds
          - else: confirm_transfer

      - id: confirm_transfer
        collect: confirm_action
        utter: utter_confirm_transfer
        next:
          - if: "slots.confirm_action == 'yes'"
            then: process_transfer
          - else: cancel_transfer

      - id: process_transfer
        action: action_process_transfer
        next: END

      - id: insufficient_funds
        utter: utter_insufficient_funds
        next: END

CALM passes unhandled scenarios to the LLM for natural language interpretation, then routes back to flows when the LLM identifies a matching intent. This addresses one of the major limitations of story-based Rasa: the brittleness when users express intents in unexpected ways.

Rasa Open Source vs Rasa Pro#

FeatureRasa Open SourceRasa Pro
NLU PipelineFullFull
Story-based dialogueFullFull
CALM flowsLimitedFull
Rasa Studio (visual)NoYes
Analytics dashboardNoYes
Enterprise SSONoYes
Priority supportNoYes
Self-hostedYesYes
LicenseApache 2.0Commercial

The practical difference: Rasa Open Source is sufficient for teams comfortable building entirely in code. Rasa Pro adds the visual Rasa Studio interface, analytics, and enterprise features. CALM's most powerful features require Rasa Pro.

Testing and Reliability#

Rasa's testing framework is one of its genuine strengths. Conversation-level end-to-end tests validate the full pipeline — NLU + dialogue management together:

# tests/test_stories.yml — end-to-end conversation tests
stories:
  - story: Happy path balance check
    steps:
      - user: "What's my checking balance?"
        user_defined_followup:
          - intent: check_account_balance
            entities:
              - account_type: checking
      - action: action_check_balance
      - bot: "Your checking account balance is $1,250.00."

  - story: Transfer with insufficient funds
    steps:
      - user: "transfer 5000 dollars from checking to savings"
      - action: action_check_checking_balance
      - bot: "Your checking account doesn't have sufficient funds for this transfer."
# Run conversation tests
rasa test

# Output: test coverage, intent accuracy, entity F1, story success rate
# Tests are tracked across versions for regression detection

This testing discipline — running comprehensive conversation tests in CI/CD before deployment — is difficult to replicate with visual platform tools that don't have equivalent test infrastructure.

Deployment Options#

Rasa's deployment flexibility is a core advantage:

Self-hosted on-premises: Rasa server as Docker container, custom action server as separate service, NLU models trained on your hardware. No external API calls. Full data sovereignty.

Self-hosted on cloud: Docker Compose or Kubernetes deployment on AWS, Azure, GCP, or private cloud. Common pattern for teams wanting cloud infrastructure with data residency controls.

Rasa Cloud: Managed deployment through Rasa (requires Rasa Pro). Reduces operational overhead at the cost of on-premises control.

For regulated industries, the on-premises path is often the primary reason Rasa is selected over managed cloud services.

Pricing Breakdown#

TierCost
Rasa Open SourceFree (Apache 2.0)
Rasa ProEnterprise pricing (contact sales)
Rasa Cloud (hosted)Included with Rasa Pro
Infrastructure costsAWS/GCP/Azure standard pricing for self-hosted

Rasa's licensing model means no per-message or per-user API costs. For high-volume deployments (millions of conversations per month), the total cost of ownership is typically lower than consumption-based platforms — with the caveat that developer time to build and maintain the system is a real cost.

Pros#

Full NLU control: Training custom intent classifiers and entity extractors on domain-specific data produces NLU performance that generic LLM prompting cannot match for specialized domains (medical terminology, legal language, industry-specific product names).

On-premises deployment: For organizations with data residency requirements, Rasa's fully self-hosted architecture is often the enabling technology that makes conversational AI deployment possible at all.

Cost predictability: No per-message pricing. Infrastructure costs are stable and predictable regardless of conversation volume.

Testing framework: Conversation-level end-to-end tests with regression tracking enable confident iteration on complex dialogue systems.

Cons#

Development investment: Rasa requires Python expertise, framework-specific knowledge, and training data curation. Time-to-first-agent is significantly longer than visual platforms.

CALM maturity: CALM is Rasa's future architecture but is still maturing. Some teams on Rasa 2.x story-based systems face a migration decision without a clear, stable target.

Community decline: Peak community activity was 2020-2021. Forum activity and third-party tutorials have declined as Rasa's focus shifted to enterprise. Finding help for edge cases is harder than in earlier years.

CALM LLM dependency: CALM's most compelling features require LLM API calls, partially undermining Rasa's on-premises control advantage unless you configure locally hosted LLMs.

Who Should Use Rasa#

Strong fit:

  • Engineering teams building specialized NLU-heavy conversational AI systems for specific domains
  • Organizations with data residency requirements (healthcare, government, financial services) that need on-premises deployment
  • High-volume deployments where per-message pricing would make managed platforms expensive
  • Teams with existing Rasa 2.x deployments that need to maintain and evolve their systems

Poor fit:

  • Non-technical teams or business users who need to build and maintain agents without developer involvement
  • Teams that need rapid deployment with minimal framework investment
  • Use cases where LLM-native reasoning (not structured NLU) is the primary requirement
  • Organizations wanting the latest CALM capabilities without Rasa Pro investment

Verdict#

Rasa earns a 3.8/5 rating. For its core strength — developer-controlled conversational AI with on-premises deployment — Rasa remains the most capable open-source option available. Teams in regulated industries that need custom NLU and data sovereignty have few serious alternatives.

The challenges are real: development investment is high, community activity has declined, and the CALM architectural transition creates uncertainty for teams deciding whether to adopt new patterns. The emergence of LLM-native agent frameworks (LangChain, LangGraph, LlamaIndex) has also changed the calculus — for many conversational use cases, LLM-native agents now offer faster development with competitive performance.

Rasa's core value proposition — precise NLU control, on-premises deployment, and conversation-level testing — remains compelling for teams where those properties are genuinely required.

Related Resources#

  • Botpress Review — Visual chatbot platform alternative
  • LangGraph Review — LLM-native agent framework
  • Flowise Review — Open-source visual LangChain builder
  • Rasa in the AI Agent Directory
  • NLU Glossary Term — NLU concepts Rasa implements
  • Context Management Glossary Term — Dialogue state in Rasa tracker

Frequently Asked Questions#

What is Rasa and how does it differ from other chatbot platforms?#

Rasa is an open-source Python framework for custom conversational AI. Unlike visual chatbot builders, Rasa gives developers direct control over NLU pipelines, dialogue management, and deployment. Teams train custom intent classifiers on domain-specific data and define precise conversation flows through YAML configuration and Python custom actions. The tradeoff is development complexity — Rasa requires framework expertise that visual platforms don't.

What is Rasa CALM?#

CALM (Conversational AI with Language Models) is Rasa's architectural evolution since 2023. It integrates LLMs into dialogue management while maintaining business logic through structured flows. CALM handles natural language variation with LLM flexibility while preserving deterministic control over critical business paths. Full CALM features require Rasa Pro.

Is Rasa Open Source still actively maintained?#

Rasa Open Source receives updates under Apache 2.0, but development focus has shifted to Rasa Pro and CALM. Community activity has declined from 2020-2022 peak levels. Rasa 2.x story-based architecture remains stable for teams using it. Teams needing the latest CALM features should evaluate Rasa Pro.

How does Rasa handle on-premises deployment?#

Rasa runs entirely self-hosted as Docker containers — NLU models trained locally, custom actions on your servers, conversation history in your database. No external API calls required for the traditional NLU pipeline. CALM features that use LLMs introduce external API dependency unless you configure locally hosted LLMs (Ollama, vLLM) with Rasa's model adapters.

When should I choose Rasa over a visual chatbot platform?#

Choose Rasa when you have Python developers available, need on-premises deployment for data residency, require custom NLU trained on domain-specific data, or have complex dialogue flows that visual tools can't represent. Choose visual platforms when you need faster deployment, non-technical stakeholders building flows, or standard conversational patterns that don't need deep NLU customization.

Related Reviews

Activepieces Review 2026: Rated 3.9/5 — Open-Source No-Code Automation vs n8n & Zapier?

Comparing no-code automation tools? Activepieces scores 3.9/5 with 200+ integrations and AI agent capabilities. We tested self-hosting, LLM integration, and pricing vs n8n and Make.

Amazon Bedrock Agents Review 2026: Rated 4.1/5 — Enterprise AI on AWS Worth It?

Running AI agents on AWS? Bedrock Agents scores 4.1/5 for managed runtime, Knowledge Bases RAG, and multi-model flexibility. We cover pricing, Action Groups, and real enterprise trade-offs.

AutoGen Review 2026: Rated 4.3/5 — Microsoft's Multi-Agent Framework Tested

Considering Microsoft AutoGen for multi-agent workflows? We tested AssistantAgent, code execution, and the AG2 fork. Rated 4.3/5 — here's what that means in production.

← Back to All Reviews