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:
| Variable | Where it comes from |
|---|---|
RASA_LICENSE | Developer Edition licence key request |
OPENAI_API_KEY | Your 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:
| Field | Value |
|---|---|
| Name | Dana Okafor |
| Customer id | MB-4417 |
| Passphrase | bluebird |
| Accounts | 10029384 (current), 10029385 (savings) |
| Payee | Sam Rivera |