Skip to content
RasaGet a free licence
Menu

tutorial

Chapter 1 of 4

Ask a travel voice agent about weather and money

by Rod Rivera Published

Get a forecast and a dated exchange rate, then find both tool calls in Mantle Inspector.

First call · You are the traveler. For the opening weather and currency warm-up, say: “I land at Heathrow. What should I pack, and how much is $200 in pounds?” Heathrow is a warm-up. You’ll use Oslo–Bergen when you connect the flight boards to the forecast.

1. Meet the tools before the model

In a new workshop terminal, run:

bash desk data weather LHR
bash desk data fx USD GBP 200

Read the airport, forecast hour, temperature in Celsius and rain probability. Read the base and quote currencies, rate, converted amount and reference date. A forecast for the current hour helps with “what’s it like now?” To answer “when I land,” the tool needs the arrival time. A daily reference rate is useful for budgeting; the card issuer may charge a different rate.

Try a flight before minute 30. Ask for the remaining OSL → BGO schedule now:

bash desk data flights OSL BGO

Choose a flight number from the returned board and use bash desk data status FLIGHT_NUMBER with that actual number. Compare the flight’s estimated and scheduled arrival. If the provider returns no matches, keep the coverage note in your answer. The board needs no key.

One example run on 3 November 2026

The FX tool returned base: USD, quote: GBP, amount: 200, rate: 0.74576 and reference_date: 2026-11-03. Multiply 200 by 0.74576 and round to two decimals: £149.15. Your numbers will differ. When you run it, use the date and rate in your own response.

The weather tool returned 7.4 °C for 06:00 UTC at LHR. That supports a statement about that forecast hour. It does not answer a question about a flight arriving tomorrow morning.

Make one small change

Run bash desk data fx USD GBP 100 and predict the converted amount using the rate you just retrieved for $200. Compare your calculation with the tool’s answer, allowing for rounding. Which field would make you reconsider your prediction if the two calls crossed a rate update?

Check your reasoning

For the same rate and reference date, half the dollars should buy about half the pounds. Read the rate and date on both receipts before attributing a difference to rounding. After you complete the first-call setup below, ask the same question by voice and compare the spoken amount with the tool result.

2. Build a working starting point

After the creation log says Travel factory dependencies ready, run:

bash desk doctor
bash desk starter
bash desk inspect builds/starter

The first command reports presence without printing values. The second creates a Mantle project from the supplied two-tool starter. The third trains it and starts Inspector. Leave this terminal running. If the starter already exists, skip its creation and inspect that folder again.

3. Ask a real question

Keep the server running in Terminal 1. Choose Terminal → New Terminal and run bash desk url. Open the printed HTTPS link in its own tab. This opens the private Rasa Inspector. If GitHub shows Continue, continue with the same signed-in GitHub account.

  1. Connect your headset or turn on your microphone and speakers. In Inspector find the waveform button labeled Start voice conversation. Click it.
  2. When your browser asks to use the microphone, choose Allow for this Inspector site. Speak into your own device: “What is the weather at London Heathrow right now?” Pause and listen for a spoken answer.
  3. Stay in the same call. Ask: “And how much is two hundred US dollars in British pounds?” Listen for the amount and rate date. This second turn checks that the agent is still listening after its first reply.
  4. Open Inspect and compare the recognized questions and the destination_weather and convert_currency tool results with what you heard. End the call with Stop voice conversation before closing the tab.
Voice symptomWhat to check
No mic permission prompt or transcriptOpen the HTTPS Inspector tab directly. In the browser’s site permissions, allow its microphone, select the right input device, reload and start a new call.
Transcript but no spoken replyCheck the tab is unmuted and the correct output device is selected. Check the server terminal for speech synthesis or Deepgram account errors.
First turn succeeds and the second stallsSave the turn number, transcript and server error category without credentials. Mark the two-turn voice test incomplete. Typed chat can isolate a tool problem.
If you seeDo this
A missing secretFix its repository access in personal Codespaces settings, stop and reopen this same Codespace, then rerun bash desk doctor.
Missing environment or Codex executable after creation failedIn the workshop terminal run bash ../../.devcontainer/travel-factory/install.sh.
Empty browser pageWait for the server-ready message. Run bash desk url in the second terminal. Keep port 5010 private.
API or model denialKeep the error category, check project billing and model access. Run the provider exercise directly and mark the chat pending.

Minute 30 checkpoint. Explain which tool supplied each number. Show one tool result alongside what the traveler saw. If only the command-line tools ran, record that separately. The next chapter adds the flight information missing from this first agent.