What this means in practice: a user is half-way through an upgrade flow. They open the chat bubble and ask βhow do I finish this?β Without context, your bot has to ask which page theyβre on. With Autoplay wired in, your bot already knows β and replies with the specific next click, not a walkthrough of the whole UI. This tutorial shows you exactly how to wire it together using Rasa 3.6 (open-source, self-hosted) and the Autoplay SDK. Everything stays on your infrastructure β your activity data, prompts, and LLM keys never leave it. Who this is for:Documentation Index
Fetch the complete documentation index at: https://developers.autoplay.ai/llms.txt
Use this file to discover all available pages before exploring further.
- You already have (or are building) a Rasa-based chatbot for your product.
- You want it to give answers that adapt to where the user is in the UI, instead of canned responses.
- Youβre comfortable with Python, Docker, and a small FastAPI service.
AsyncConnectorClient, AsyncContextStore, AsyncSessionSummarizer, AsyncAgentContextWriter, agent_state_v2.SessionState, and ChatContextAssembly. Each one is a single import; the SDK handles the heavy lifting (reconnects, backpressure, summarisation, prompt assembly).
β¨ Final result
- Without real-time context
- With real-time context
π Prerequisites
Before you start, you need:- A web app you can edit β anything that can load
posthog-js. The examples use Next.js but it works with any frontend. - A free PostHog account β for click capture. Youβll need your Project API Key (starts with
phc_, notphx_β the personal one is rejected byposthog.init()). - An Autoplay product ID. If you already use PostHog, you can re-use your PostHog project id (the number after
/project/in the URL) as yourproduct_id. The tutorial covers runningonboard_productto mint the rest of the credentials. - Docker Desktop β Rasa runs in a container; this also sidesteps TensorFlow ABI issues on Apple Silicon.
- Python 3.10+ on the host β for the small FastAPI bridge service.
- An OpenAI API key (or any LLM provider with an async Python client) β the SDKβs
AsyncSessionSummarizerjust takes an async(str) -> strcallable, so swap in Anthropic, Gemini, Mistral, or a local model if you prefer.
Why a separate βbridgeβ service? Rasa runs in Docker and canβt import Python objects from your host. The bridge is a small FastAPI service that owns the Autoplay SDK pipeline and exposes a tiny HTTP surface (
/reply/{user_id}) that Rasaβs action server calls when a user chats. This same pattern works for any cross-process chatbot β Botpress on-prem, LangChain services, Twilio webhooks β not just Rasa.Architecture
The tutorial
- Connect real-time events β Stream live user actions into a Rasa-aware bridge using the Autoplay SDK, expose them to Rasa over HTTP, and wire the chat widget to read them. This is what youβll do today.
agent_state_v2 and Autoplayβs proactive trigger registry β is in progress and will land separately.










