These docs are for version 1.x of Rasa Open Source.

- [Docs for the new version 2.0 can be found here.](/content/docs/rasa/index.html)

## User Guide

- [Installation](https://legacy-docs-v1.rasa.com/1.7.2/user-guide/installation/)
- [Tutorial: Rasa Basics](https://legacy-docs-v1.rasa.com/1.7.2/user-guide/rasa-tutorial/)
- [Tutorial: Building Assistants](https://legacy-docs-v1.rasa.com/1.7.2/user-guide/building-assistants/)
- [Command Line Interface](https://legacy-docs-v1.rasa.com/1.7.2/user-guide/command-line-interface/)
- [Architecture](https://legacy-docs-v1.rasa.com/1.7.2/user-guide/architecture/#)
- [Messaging and Voice Channels](https://legacy-docs-v1.rasa.com/1.7.2/user-guide/messaging-and-voice-channels/)
- [Evaluating Models](https://legacy-docs-v1.rasa.com/1.7.2/user-guide/evaluating-models/)
- [Validate Data](https://legacy-docs-v1.rasa.com/1.7.2/user-guide/validate-files/)
- [Configuring the HTTP API](https://legacy-docs-v1.rasa.com/1.7.2/user-guide/configuring-http-api/)
- [Deploying your Rasa Assistant](https://legacy-docs-v1.rasa.com/1.7.2/user-guide/how-to-deploy/)
- [Cloud Storage](https://legacy-docs-v1.rasa.com/1.7.2/user-guide/cloud-storage/)

## NLU

- [About](https://legacy-docs-v1.rasa.com/1.7.2/nlu/about/)
- [Using NLU Only](https://legacy-docs-v1.rasa.com/1.7.2/nlu/using-nlu-only/)
- [Training Data Format](https://legacy-docs-v1.rasa.com/1.7.2/nlu/training-data-format/)
- [Choosing a Pipeline](https://legacy-docs-v1.rasa.com/1.7.2/nlu/choosing-a-pipeline/)
- [Language Support](https://legacy-docs-v1.rasa.com/1.7.2/nlu/language-support/)
- [Entity Extraction](https://legacy-docs-v1.rasa.com/1.7.2/nlu/entity-extraction/)
- [Components](https://legacy-docs-v1.rasa.com/1.7.2/nlu/components/)

## Core

- [About](https://legacy-docs-v1.rasa.com/1.7.2/core/about/)
- [Stories](https://legacy-docs-v1.rasa.com/1.7.2/core/stories/)
- [Domains](https://legacy-docs-v1.rasa.com/1.7.2/core/domains/)
- [Responses](https://legacy-docs-v1.rasa.com/1.7.2/core/responses/)
- [Actions](https://legacy-docs-v1.rasa.com/1.7.2/core/actions/)
- [Policies](https://legacy-docs-v1.rasa.com/1.7.2/core/policies/)
- [Slots](https://legacy-docs-v1.rasa.com/1.7.2/core/slots/)
- [Forms](https://legacy-docs-v1.rasa.com/1.7.2/core/forms/)
- [Retrieval Actions](https://legacy-docs-v1.rasa.com/1.7.2/core/retrieval-actions/)
- [Interactive Learning](https://legacy-docs-v1.rasa.com/1.7.2/core/interactive-learning/)
- [Fallback Actions](https://legacy-docs-v1.rasa.com/1.7.2/core/fallback-actions/)
- [Knowledge Base Actions](https://legacy-docs-v1.rasa.com/1.7.2/core/knowledge-bases/)

## Conversation Design

- [Dialogue Elements](https://legacy-docs-v1.rasa.com/1.7.2/dialogue-elements/dialogue-elements/)
- [Small Talk](https://legacy-docs-v1.rasa.com/1.7.2/dialogue-elements/small-talk/)
- [Completing Tasks](https://legacy-docs-v1.rasa.com/1.7.2/dialogue-elements/completing-tasks/)
- [Guiding Users](https://legacy-docs-v1.rasa.com/1.7.2/dialogue-elements/guiding-users/)

## API Reference

- [Action Server](https://legacy-docs-v1.rasa.com/1.7.2/api/action-server/)
- [HTTP API](https://legacy-docs-v1.rasa.com/1.7.2/api/http-api/)
- [Jupyter Notebooks](https://legacy-docs-v1.rasa.com/1.7.2/api/jupyter-notebooks/)
- [Agent](https://legacy-docs-v1.rasa.com/1.7.2/api/agent/)
- [Custom NLU Components](https://legacy-docs-v1.rasa.com/1.7.2/api/custom-nlu-components/)
- [Rasa SDK](https://legacy-docs-v1.rasa.com/1.7.2/api/rasa-sdk/)
- [Events](https://legacy-docs-v1.rasa.com/1.7.2/api/events/)
- [Tracker](https://legacy-docs-v1.rasa.com/1.7.2/api/tracker/)
- [Tracker Stores](https://legacy-docs-v1.rasa.com/1.7.2/api/tracker-stores/)
- [Event Brokers](https://legacy-docs-v1.rasa.com/1.7.2/api/event-brokers/)
- [Lock Stores](https://legacy-docs-v1.rasa.com/1.7.2/api/lock-stores/)
- [Training Data Importers](https://legacy-docs-v1.rasa.com/1.7.2/api/training-data-importers/)
- [Featurization of Conversations](https://legacy-docs-v1.rasa.com/1.7.2/api/core-featurization/)
- [Migration Guide](https://legacy-docs-v1.rasa.com/1.7.2/migration-guide/)
- [Rasa OSS Change Log](https://legacy-docs-v1.rasa.com/1.7.2/changelog/)

## Migrate from (beta)

- [Dialogflow](https://legacy-docs-v1.rasa.com/1.7.2/migrate-from/google-dialogflow-to-rasa/)
- [Wit.ai](https://legacy-docs-v1.rasa.com/1.7.2/migrate-from/facebook-wit-ai-to-rasa/)
- [LUIS](https://legacy-docs-v1.rasa.com/1.7.2/migrate-from/microsoft-luis-to-rasa/)
- [IBM Watson](https://legacy-docs-v1.rasa.com/1.7.2/migrate-from/ibm-watson-to-rasa/)

## Reference

- [Glossary](https://legacy-docs-v1.rasa.com/1.7.2/glossary/)

## Versions

viewing: 1.7.2

[**Warning:** This document is for an old version of Rasa. The latest version is 1.10.26.](https://legacy-docs-v1.rasa.com/1.10.26/user-guide/architecture/)

# Architecture

## Message Handling 
This diagram shows the basic steps of how an assistant built with Rasa responds to a message:

The steps are:

1. The message is received and passed to an `Interpreter`, which converts it into a dictionary including the original text, the intent, and any entities that were found. This part is handled by NLU.
2. The `Tracker` is the object which keeps track of conversation state. It receives the info that a new message has come in.
3. The policy receives the current state of the tracker.
4. The policy chooses which action to take next.
5. The chosen action is logged by the tracker.
6. A response is sent to the user.

Note

Messages can be text typed by a human, or structured input like a button press.

👋 I can help you get started with Rasa and answer your technical questions.
