rasa-sdk
Open source machine learning framework to automate text- and voice-based conversations: NLU, dialogue management, connect to Slack, Facebook, and more - Create chatbots and voice assistants
What it is and what it does
Rasa SDK is a Python library that lets you write custom actions—discrete business logic units—that Rasa conversational AI systems can call during dialogue. When a chatbot or voice assistant needs to query a database, call an API, validate user input, or perform any custom computation, you implement an Action subclass and deploy it as a server that Rasa communicates with over HTTP or gRPC. The SDK handles the protocol layer, letting you focus on the action logic itself.
The package is built on Sanic (a web framework), gRPC, and OpenTelemetry, and is designed to run as a separate microservice alongside your Rasa deployment. It's actively maintained, supports modern Python versions, and integrates with the broader Rasa ecosystem for NLU, dialogue management, and channel connectors (Slack, Facebook, etc.). The framework is production-stable and used in commercial deployments.
Use it for:
- Build a customer support chatbot that queries a ticket database or CRM when users ask about their account status.
- Implement a booking assistant that validates dates, checks availability, and integrates with a reservation system.
- Create a voice assistant that fetches real-time data (weather, stock prices, news) from external APIs during conversation.
- Deploy a multi-turn dialogue system that performs form validation, payment processing, or authentication before confirming user requests.
- Extend a conversational AI with custom NLP preprocessing or post-processing logic specific to your domain.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Rasa SDK provides a Python framework for developing custom actions that extend Rasa conversational AI systems, enabling integration of business logic and external services into chatbots and voice assistants.
Yes. Rasa SDK is worth installing if you are building a Rasa-based chatbot or voice assistant and need custom business logic beyond Rasa's built-in capabilities. It has low install friction, active maintenance, no known vulnerabilities, permissive licensing, and is production-stable. Install it only if you plan to deploy custom actions; if you're using Rasa's pre-built connectors and dialogue flows alone, you don't need it.
Install
rasa-sdk on PyPI
pip
pip install rasa-sdkuv
uv add rasa-sdkpoetry
poetry add rasa-sdkInstalling rasa-sdk
Before you install
Low install friction with a pure-Python wheel distribution. Active maintenance with a release 25 days ago and commits through August 2026. Supports current Python versions (3.10–3.13) and has 15 runtime dependencies including Sanic, gRPC, and OpenTelemetry, all standard ecosystem packages.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial use, modification, and distribution with minimal restrictions. Suitable for proprietary projects when you include the license notice.
Quickstart
pip install rasa-sdk
from rasa_sdk import Action, ActionExecutor
from rasa_sdk.interfaces import ActionValueError
class CustomAction(Action):
def name(self) -> str:
return "action_custom"
def run(self, dispatcher, tracker, domain):
dispatcher.utter_message(text="Hello")
return []
Requires Python 3.10 or later (3.14+ not supported). Custom actions are typically deployed as a separate action server process communicating with Rasa via HTTP/gRPC.
Verify before relying
- Specific version compatibility matrix between rasa-sdk 3.18.0 and Rasa core versions beyond the general 1.0.x guidance in the description.
- Performance characteristics or throughput limits when running action servers with many concurrent requests.
- Whether all 15 runtime dependencies are required for basic usage or if some are optional for specific features.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<3.14,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 15 — Sanic-Cors, coloredlogs, grpcio, grpcio-health-checking, grpcio-tools, opentelemetry-api, opentelemetry-exporter-otlp, opentelemetry-sdk, pluggy, protobuf, pydantic, ruamel.yaml, sanic, typing-extensions, websockets |
| Maintenance | actively maintained — 25 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 292,324/month — #7,966 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: rasa_sdk-3.18.0-py3-none-any.whl
Keywords: nlp, machine-learning, machine-learning-library, bot, bots, botkit, rasa conversational-agents, conversational-ai, chatbot, chatbot-framework, bot-framework
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
rasaRasa is an open-source machine learning…
permissive · top 15,000 on PyPI
google-cloud-dialogflow-cxPython client library for Google Cloud…
permissive · top 5,000 on PyPI
pywaPyWa is a fully-typed Python framework for…
permissive · top 15,000 on PyPI
alita-sdkAlita SDK provides a Python framework for…
permissive · top 15,000 on PyPI
jiraA Python library that wraps the Jira REST API,…
permissive · top 1,000 on PyPI
chainlitChainlit provides a web UI framework for…
permissive · top 15,000 on PyPI
shinychatshinychat provides a chat UI component for…
permissive · top 15,000 on PyPI
ai-parrotAI-Parrot is an async-first Python framework…
permissive · top 15,000 on PyPI
actions-toolkitProvides a Python SDK for building GitHub…
permissive · top 15,000 on PyPI
demisto-sdkA command-line SDK and Python library for…
permissive · top 15,000 on PyPI