๐๏ธ Building FinSafe AI: My 10-Day Voice Agent Journey ๐
10 Days. One Voice Agent. Countless lessons.
Over the last 10 days, I took my FinSafe AI Voice Assistant from a basic voice conversation to a much more capable AI system that can talk, remember, use tools, make calls, involve humans, and hand conversations to specialist agents. ๐ค๐๏ธ
This journey was part of the Murf AI 10 Days of Voice Agents โ VoiceForBharat Edition.
And honestly, I learned that building a voice agent is not just about making an AI talk.
It's about making it useful, reliable, safe, and natural. ๐ก
๐ฐ WHAT IS FInSAFE AI?
FinSafe AI is a voice-first assistant designed for the Financial Services track.
๐ฏ Goal: Make financial information easier to access through natural voice conversations.
Instead of typing questions, users can simply speak with the assistant and receive a voice response.
The idea is simple:
๐ฃ๏ธ Speak naturally โ AI understands โ AI takes action โ AI responds
๐๏ธ HOW DOES FInSAFE AI WORK?
The basic architecture looks like this:
๐ค User
โ
๐ค Speech-to-Text
โ
๐ง LLM
โ
๐ ๏ธ Tools / ๐ง Memory / ๐ค Specialist Agents
โ
๐ Text-to-Speech
โ
๐ค User
The real-time communication layer connects the different parts of the voice experience.
I used LiveKit for the real-time voice-agent infrastructure and Murf Falcon for text-to-speech. ๐๏ธโก
๐ WHAT I BUILT DURING THESE 10 DAYS
๐๏ธ 1. A VOICE AGENT WITH A CLEAR ROLE
I started by creating the FinSafe AI Voice Assistant with a clearly defined financial-services role.
Instead of making it a general-purpose chatbot, I gave it:
๐ง A clear personality
๐ฏ Defined objectives
๐ก๏ธ Safety guardrails
๐ Specific responsibilities
This helped make conversations more focused and predictable.
๐ 2. MULTILINGUAL VOICE CONVERSATIONS
One of the features I worked on was multilingual communication.
FinSafe can communicate in languages such as:
๐ฌ๐ง English
๐ฎ๐ณ Hindi
เชเซเชเชฐเชพเชคเซ Gujarati
๐ Other supported languages
I also worked on making the agent respond according to the language the user is speaking.
This was an important lesson:
๐ A multilingual voice agent shouldn't just understand another language โ it should also respond naturally in that language.
๐ป 3. A PERSONALIZED FRONTEND
I improved the frontend experience so users can understand what the voice agent is doing.
The interface clearly shows different agent states:
๐ข Ready
๐ Connecting
๐ค Listening
๐ Speaking
๐ด Call Ended
This makes the voice experience easier to understand because users can see whether the agent is listening, responding, connecting, or finished.
๐ง 4. PERSISTENT MEMORY
One of my biggest improvements was giving FinSafe long-term memory.
Before this, the agent could forget everything when a conversation ended.
I added SQLite-based persistent memory so approved caller information can be stored and retrieved in future conversations. ๐๏ธ
The memory can include:
๐ค User ID
๐ Name
๐ Language preference
๐ฐ Relevant financial facts
๐ Last interaction
For example:
๐ First Conversation
User โ My name is Ramesh.
Agent โ Can I remember your name for future conversations?
User โ Yes.
โ
๐ Second Conversation
Agent โ Welcome back, Ramesh! ๐
๐ Privacy was also important.
The agent asks for consent before saving information.
For financial services, sensitive information such as account numbers or government ID numbers should not be stored.
๐ 5. GIVING MY AGENT REAL-WORLD TOOLS
A voice agent becomes much more useful when it can use tools instead of relying only on the model's existing knowledge.
For FinSafe, I implemented a financial scheme eligibility lookup. ๐ฐ
The flow looks like:
๐ฃ๏ธ User asks a question
โ
๐ง Agent decides a tool is needed
โ
๐ Eligibility tool
โ
๐ Data is processed
โ
๐ Agent explains the result
I also added handling for situations where the data source is unavailable.
๐ซ The agent should never invent an answer just because a tool failed.
Instead, it should clearly explain that the information couldn't be retrieved.
๐ 6. OUTBOUND VOICE CALLS
I also moved beyond a browser-only experience and worked with outbound voice calls. ๐ฑ๐๏ธ
This showed me how voice agents can proactively communicate with users instead of always waiting for someone to start a conversation.
๐ค 7. HUMAN ESCALATION
AI shouldn't try to solve every problem.
Sometimes the right answer is:
๐ค "Let me connect you with a human."
I added a human escalation path for situations where human assistance may be more appropriate.
This is especially important in financial services, where some situations require additional support.
๐ 8. CALL TRACKING & ANALYTICS
I also worked on tracking information about voice interactions and call outcomes. ๐
Analytics can help answer questions like:
๐ How many conversations happened?
๐ฏ What was the outcome?
๐ค Which interactions required additional help?
๐ How is the agent being used?
This turns the project from a simple voice demo into something that can be monitored and improved.
๐ค 9. SPECIALIST AGENT HANDOFF
One of my final improvements was adding a specialist agent.
For FinSafe, I created a:
๐๏ธ Government Scheme Specialist
Its job is focused specifically on government-scheme-related questions.
The architecture looks like:
๐ค FinSafe Main Agent
โ
Is specialist help needed?
/ \
No Yes
โ โ
โผ โผ
๐ฌ Main Answer ๐ Handoff
โ
โผ
๐๏ธ Scheme Specialist
โ
โผ
๐ค User
Before transferring the conversation, the main agent clearly explains what's happening:
๐ฃ๏ธ "I'll connect you with our government scheme specialist who can help you with this."
The specialist then continues the conversation using the user's existing context.
๐ก Biggest lesson:
A good AI agent doesn't need to be an expert at everything. It needs to know when to involve the right specialist.
๐งฉ THE CHALLENGES I FACED
The project definitely didn't work perfectly on the first attempt. ๐
And honestly, that's where some of the best learning happened.
๐ Multilingual Response Issues
Initially, the agent could understand multiple languages, but sometimes the response language wasn't what I expected.
I had to improve the language instructions so the agent follows the user's current language more consistently.
๐ LiveKit Connection Issues
During testing, I also encountered LiveKit connectivity problems such as:
WinError 1231
ConnectionReset 10054
These issues taught me that voice applications depend not only on application code, but also on stable real-time network connections.
๐ง Memory Challenges
Another challenge was making sure the agent could actually recognize a returning caller instead of simply remembering a name from the conversation.
The system uses a user/caller identity to retrieve saved information from the database.
๐ ๏ธ WANT TO BUILD YOUR OWN VOICE AGENT?
Here is the basic architecture you need:
๐ค Speech-to-Text
โ
๐ง Large Language Model
โ
๐ ๏ธ Tools / Database / Agents
โ
๐ Text-to-Speech
โ
โก Real-Time Voice Transport
You need:
๐ค Speech-to-Text โ understand the user
๐ง LLM โ process the conversation
๐ Text-to-Speech โ generate the response
โก Real-time transport โ handle the live conversation
๐ ๏ธ Tools โ fetch external information
๐๏ธ Database โ store approved memory
โ๏ธ SETTING UP THE PROJECT
Clone the repository:
git clone --> https://github.com/Dodiyayash/murf-livekit-starter?utm_source=chatgpt.com
cd murf-livekit-starter
Create your Python environment and install the dependencies according to the repository instructions.
Then configure your environment variables:
LIVEKIT_URL=your_livekit_url
LIVEKIT_API_KEY=your_livekit_api_key
LIVEKIT_API_SECRET=your_livekit_api_secret
MURF_API_KEY=your_murf_api_key
โ ๏ธ Never publish your real API keys.
Use environment variables and keep secret files out of your public repository.
๐ KEEP YOUR DATA SAFE
Never publish:
โ API keys
โ API secrets
โ Phone numbers
โ Caller information
โ Passwords
โ OTPs
โ Bank account numbers
โ Government ID numbers
โ Private database information
Security should be part of the design from the beginning. ๐
๐ป EXPLORE THE CODE
The project is available on GitHub:
https://github.com/Dodiyayash/murf-livekit-starter
You can explore the project and the different branches created during the challenge. ๐
๐ก WHAT I LEARNED
The biggest lesson from these 10 days:
A useful voice agent is much more than an LLM connected to a microphone.
A strong voice agent needs:
๐ฃ๏ธ Conversation
๐ง Context
๐ ๏ธ Tools
๐พ Memory
๐ก๏ธ Safety
๐ Reliability
๐ค Specialization
Memory makes conversations personal.
Tools allow the agent to access useful information.
Guardrails keep the agent within its intended role.
Human escalation provides a safety net.
Specialist handoffs allow the system to handle more complex requests.
And a good frontend helps users understand what's happening.
๐ MY 10-DAY JOURNEY
๐๏ธ Voice Agent
โ
๐ก๏ธ Role & Guardrails
โ
๐ Multilingual Support
โ
๐ป Personalized Frontend
โ
๐ง Persistent Memory
โ
๐ Financial Tools
โ
๐ Outbound Calls
โ
๐ค Human Escalation
โ
๐ Call Analytics
โ
๐ค Specialist Handoff
What started as a simple voice assistant became a much more complete conversational AI system. ๐
โค๏ธ FINAL THOUGHTS
This 10 Days of Voice Agents challenge has been an incredible hands-on learning experience.
I learned that building voice AI isn't just about making something that speaks.
It's about creating something that can:
Listen โ Understand โ Remember โ Act โ Escalate โ Respond ๐๏ธ๐ง โก
I'm excited to continue improving FinSafe AI and explore what I can build next.
A huge thanks to Murf AI for organizing the 10 Days of Voice Agents โ VoiceForBharat Edition and giving me the opportunity to build with Murf Falcon. ๐ง๐ฎ๐ณ
๐ One journey. 10 days. One voice agent. And a lot of learning.
Keep building. Keep experimenting. Keep learning. ๐ป๐ฅ




Top comments (0)