This is unreleased documentation for Rasa Action Server Documentation Main/Unreleased version.
For the latest released documentation, see the latest version (3.x).
Introduction to Rasa Action Servers
A Rasa action server runs custom actions for a Rasa Open Source conversational assistant.
How it works
When your assistant predicts a custom action, the Rasa server sends
POST request to the action server with a json payload including
the name of the predicted action,
the conversation ID, the contents of the tracker and the contents of the domain.
When the action server finishes running a custom action, it returns a json payload of responses and events. See the API spec for details about the request and response payloads.
The Rasa server then returns the responses to the user and adds the events to the conversation tracker.
SDKs for Custom Actions
You can use an action server written in any language to run your custom actions, as long as it implements the required APIs.
Rasa SDK (Python)
Rasa SDK is a Python SDK for running custom actions. Besides implementing the required APIs, it offers methods for interacting with the conversation tracker and composing events and responses. If you don't yet have an action server and don't need it to be in a language other than Python, using the Rasa SDK will be the easiest way to get started.
Other Action Servers
If you have legacy code or existing business logic in another language,
you may not want to use the Rasa SDK. In this case you can write
your own action server in any language you want. The only requirement
for the action server is that it provide a
/webhook endpoint which accepts HTTP
from the Rasa server and returns a payload of events and responses.
See the API spec for details about the required