Skip to content
RasaGet a free licence

tutorial

Chapter 1 of 10

How to set up a Rasa voice agent with Deepgram

by Rod Rivera Published

Create a Skills project with Deepgram ASR and TTS, set your keys, and speak to Atlas for the first time.

Goal

Leave this chapter with a running voice shell: Inspector open, mic enabled, Atlas able to greet you.

Prerequisites

  1. Install uv
  2. 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
  1. Open .env and fill in three values:
VariablePurpose
RASA_LICENSEDeveloper Edition licence
OPENAI_API_KEYLLM for routing and conversation (gpt-5.2 in this companion)
DEEPGRAM_API_KEYSpeech-to-text and text-to-speech

make install pins rasa-pro==3.21.0.dev5.

  1. 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.

Next

Chapter 2 — First skill (FAQ)