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
git -C rasa-community-resources checkout 4aa0c4419dc193fef7a969c12d59edcf720f2606
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.21.0.dev5.
- Gate the session:
make verify
Continue once the checks pass. An expected warning such as “no trained model yet” does not block this step.
What rasa init --engine mantle creates
On a Mantle-capable Rasa build you can scaffold a fresh project with:
pip install rasa-pro==3.21.0.dev5
rasa init --engine mantle
The wizard asks where to create the project and saves your keys in the environment file. It installs skills for Cursor or Claude Code, then validates and trains the agent. It can also 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
The tutorial project already includes Deepgram speech recognition and speech synthesis. The wizard focuses on the language model. For this tutorial, copy the prepared files into the project root:
Source: tutorial/snippets/step-00-scaffold/
Copy these files:
agent.yml
integrations.yml # Deepgram and gpt-5.2
endpoints.yml
memory.yml
responses.yml
skills/intro/skill.md
The integrations file configures the language model and the Inspector’s speech services. The endpoints file configures optional services such as response rephrasing and conversation storage. Mantle projects can train without that optional file.
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 detects when the caller finishes speaking. Aura turns the agent’s reply into speech.
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 that business teams and developers can edit together. Mantle runs those skills in production.