Goal
Leave this chapter with a running voice shell: Inspector open, mic enabled, Atlas able to greet you.
Prerequisites
- Install uv
- Clone the companion repo:
git clone https://github.com/RasaHQ/rasa-community-resources.git
cd rasa-community-resources/tutorials/rasa-voice-agent-tutorial
make install
make env
- Open
.envand fill in three values:
| Variable | Purpose |
|---|---|
RASA_LICENSE |
Developer Edition licence |
OPENAI_API_KEY |
LLM for routing and conversation (gpt-5.2 in this companion) |
DEEPGRAM_API_KEY |
Speech-to-text and text-to-speech |
make install pins rasa-pro==3.20.0.dev1.
- Gate the session:
make verify
Do not continue until checks pass (or only show expected warnings such as “no trained model yet”).
What rasa init --engine mantle creates
On a Mantle-capable Rasa build you can scaffold a fresh project with:
pip install rasa-pro==3.20.0.dev1
rasa init --engine mantle
The wizard asks where to create the project, collects your keys into a .env, installs Cursor / Claude Code compatible skills, validates and trains, and can open the Inspector. The resulting shape matches this companion:
my-agent/
├── agent.yml # identity, persona, voice flags
├── integrations.yml # LLM + channels
├── AGENTS.md # context for your coding agent
├── .env # secrets (written by the wizard)
└── skills/ # what the agent can do
This tutorial’s companion already includes Deepgram ASR/TTS under integrations.yml (the wizard itself is LLM-focused). For the voice path here, paste the finished scaffold from the companion instead of starting from an empty wizard project:
Paste set: tutorial/snippets/step-00-scaffold/
Copy into the project root:
agent.ymlintegrations.yml(includes Deepgram +gpt-5.2)endpoints.ymlmemory.ymlresponses.ymlskills/intro/skill.md
The two config files are easy to mix up. integrations.yml is where the LLM and the Deepgram ASR/TTS for the Inspector live, which is what you will touch most. endpoints.yml covers optional platform services such as the response rephraser and a tracker store; it is optional for Mantle projects and can be omitted without rasa train errors.
Deepgram in integrations.yml
channels:
inspector:
enabled: true
asr:
name: deepgram
language_map:
en:
model: flux-general-en
eot_threshold: 0.7
eot_timeout_ms: 5000
tts:
name: deepgram
language_map:
en:
model: aura-2-andromeda-en
And in agent.yml:
voice:
enabled: true
asr: deepgram
tts: deepgram
One API key covers both directions. Flux handles end-of-turn detection for ASR; Aura synthesises speech for TTS.
Train and talk
make train
make inspect
Verify: Inspector opens. Enable the microphone (or type) and say hello. Atlas should greet you and offer travel help.
Talking point
Skills projects are files in git — not a separate Studio-only artefact. Business teams and developers edit the same skill folders; Mantle serves them in production.
