Skip to content
RasaGet a free licence
Menu

tutorial

Chapter 1 of 6

Set up a Rasa Mantle bank agent with three skills

by Rod Rivera Published

Install the companion project, train the agent, and run the conversation you will spend the rest of the tutorial taking apart.

You will run Sterling, a fictional banking assistant with separate tasks for signing in, checking a balance and preparing a transfer. Once the customer signs in, the other tasks use the same stored customer ID.

This chapter sets up the pinned project so you can inspect that handover in a conversation. Clone the companion and open the banking example:

git clone https://github.com/RasaHQ/rasa-community-resources.git
git -C rasa-community-resources checkout 90e980cf6b97beaf16f5c0bebda6f8be67169632
cd rasa-community-resources/tutorials/rasa-tools-and-memory-tutorial

Credentials

make env

That copies .env.example to .env. Fill in two values:

VariableWhere it comes from
RASA_LICENSEDeveloper Edition licence key request
OPENAI_API_KEYYour OpenAI account

Install and train

make install
make train

The supplied make install target runs uv sync --prerelease=allow. Use the supplied lockfile and the current compatibility report; the stable release and the Mantle prerelease are separate release channels. Do not replace the locked install with an unpinned install.

make train validates the project before it packages anything. That validation is stricter than you might expect, and it is on your side — you will meet it again in Chapter 5.

Run it

make chat

Try the messages below. The bot replies are illustrative: wording can vary because the model writes them. The account and customer details come from the fictional fixture.

you  hello
bot  Hello. What can I assist you with today?

you  my passphrase is bluebird
bot  Welcome back, Dana Okafor. You are now signed in.

you  what is the balance on 10029384
bot  The balance on account 10029384 is 2418.55 GBP.

you  send 25 pounds to Sam Rivera
bot  To confirm, you want to send 25 pounds to Sam Rivera. Is that correct?

you  yes, confirm
bot  25 pounds have been sent to Sam Rivera.

After successful sign-in, the balance and transfer skills can read the stored customer ID. Check whether your run asks for the passphrase again; if it does, inspect the stored memory before proceeding.

See the architecture in one command

make scopes

The output lists the tools and memory declarations. This condensed summary shows the arrangement you will explore:

GLOBAL tools (project root; named in a skill import_tools)
  get_customer_info
LOCAL tools (skill folder; auto-discovered)
  authenticate/verify_passphrase
  check_balance/fetch_balance
  transfer_money/make_transfer
PROJECT memory (every skill reads and writes)
  authenticated, customer_id, preferred_language
SKILL memory (public = other skills may read; private = never)
  authenticate:    public verification_method   private passphrase_attempts
  transfer_money:  public amount, payee_name    private transfer_reason

Four tools, three memory scopes. The rest of the tutorial is about why each one sits where it does.

The demo data

One customer, so the walkthrough is predictable:

FieldValue
NameDana Okafor
Customer idMB-4417
Passphrasebluebird
Accounts10029384 (current), 10029385 (savings)
PayeeSam Rivera