<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Yash Dodiya</title>
    <description>The latest articles on DEV Community by Yash Dodiya (@yash_dodiya_480).</description>
    <link>https://dev.to/yash_dodiya_480</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4078679%2F1a79eecb-145d-44c9-a4d0-55ba5312214f.png</url>
      <title>DEV Community: Yash Dodiya</title>
      <link>https://dev.to/yash_dodiya_480</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yash_dodiya_480"/>
    <language>en</language>
    <item>
      <title>Building FinSafe AI: My 10-Day Voice Agent Journey 🚀</title>
      <dc:creator>Yash Dodiya</dc:creator>
      <pubDate>Sat, 15 Aug 2026 09:07:00 +0000</pubDate>
      <link>https://dev.to/yash_dodiya_480/building-finsafe-ai-my-10-day-voice-agent-journey-311o</link>
      <guid>https://dev.to/yash_dodiya_480/building-finsafe-ai-my-10-day-voice-agent-journey-311o</guid>
      <description>&lt;p&gt;🎙️ Building FinSafe AI: My 10-Day Voice Agent Journey 🚀&lt;/p&gt;

&lt;p&gt;10 Days. One Voice Agent. Countless lessons.&lt;/p&gt;

&lt;p&gt;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. 🤖🎙️&lt;/p&gt;

&lt;p&gt;This journey was part of the Murf AI 10 Days of Voice Agents — VoiceForBharat Edition.&lt;/p&gt;

&lt;p&gt;And honestly, I learned that building a voice agent is not just about making an AI talk.&lt;/p&gt;

&lt;p&gt;It's about making it useful, reliable, safe, and natural. 💡&lt;/p&gt;

&lt;p&gt;💰 WHAT IS FInSAFE AI?&lt;/p&gt;

&lt;p&gt;FinSafe AI is a voice-first assistant designed for the Financial Services track.&lt;/p&gt;

&lt;p&gt;🎯 Goal: Make financial information easier to access through natural voice conversations.&lt;/p&gt;

&lt;p&gt;Instead of typing questions, users can simply speak with the assistant and receive a voice response.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;🗣️ Speak naturally → AI understands → AI takes action → AI responds&lt;/p&gt;

&lt;p&gt;🏗️ HOW DOES FInSAFE AI WORK?&lt;/p&gt;

&lt;p&gt;The basic architecture looks like this:&lt;/p&gt;

&lt;p&gt;👤 User&lt;br&gt;
   ↓&lt;br&gt;
🎤 Speech-to-Text&lt;br&gt;
   ↓&lt;br&gt;
🧠 LLM&lt;br&gt;
   ↓&lt;br&gt;
🛠️ Tools / 🧠 Memory / 🤖 Specialist Agents&lt;br&gt;
   ↓&lt;br&gt;
🔊 Text-to-Speech&lt;br&gt;
   ↓&lt;br&gt;
👤 User&lt;/p&gt;

&lt;p&gt;The real-time communication layer connects the different parts of the voice experience.&lt;/p&gt;

&lt;p&gt;I used LiveKit for the real-time voice-agent infrastructure and Murf Falcon for text-to-speech. 🎙️⚡&lt;/p&gt;

&lt;p&gt;🚀 WHAT I BUILT DURING THESE 10 DAYS&lt;/p&gt;

&lt;p&gt;🎙️ 1. A VOICE AGENT WITH A CLEAR ROLE&lt;/p&gt;

&lt;p&gt;I started by creating the FinSafe AI Voice Assistant with a clearly defined financial-services role.&lt;/p&gt;

&lt;p&gt;Instead of making it a general-purpose chatbot, I gave it:&lt;/p&gt;

&lt;p&gt;🧠 A clear personality&lt;br&gt;
🎯 Defined objectives&lt;br&gt;
🛡️ Safety guardrails&lt;br&gt;
📋 Specific responsibilities&lt;/p&gt;

&lt;p&gt;This helped make conversations more focused and predictable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvaswuvvhp0257d82t458.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvaswuvvhp0257d82t458.png" alt=" " width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌐 2. MULTILINGUAL VOICE CONVERSATIONS&lt;/p&gt;

&lt;p&gt;One of the features I worked on was multilingual communication.&lt;/p&gt;

&lt;p&gt;FinSafe can communicate in languages such as:&lt;/p&gt;

&lt;p&gt;🇬🇧 English&lt;br&gt;
🇮🇳 Hindi&lt;br&gt;
ગુજરાતી Gujarati&lt;br&gt;
🌎 Other supported languages&lt;/p&gt;

&lt;p&gt;I also worked on making the agent respond according to the language the user is speaking.&lt;/p&gt;

&lt;p&gt;This was an important lesson:&lt;/p&gt;

&lt;p&gt;🌐 A multilingual voice agent shouldn't just understand another language — it should also respond naturally in that language.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flpsddr4is27wpcg7peyn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flpsddr4is27wpcg7peyn.png" alt=" " width="799" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💻 3. A PERSONALIZED FRONTEND&lt;/p&gt;

&lt;p&gt;I improved the frontend experience so users can understand what the voice agent is doing.&lt;/p&gt;

&lt;p&gt;The interface clearly shows different agent states:&lt;/p&gt;

&lt;p&gt;🟢 Ready&lt;br&gt;
🔄 Connecting&lt;br&gt;
🎤 Listening&lt;br&gt;
🔊 Speaking&lt;br&gt;
🔴 Call Ended&lt;/p&gt;

&lt;p&gt;This makes the voice experience easier to understand because users can see whether the agent is listening, responding, connecting, or finished.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ldjpba9t59xcy2za1mm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3ldjpba9t59xcy2za1mm.png" alt=" " width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧠 4. PERSISTENT MEMORY&lt;/p&gt;

&lt;p&gt;One of my biggest improvements was giving FinSafe long-term memory.&lt;/p&gt;

&lt;p&gt;Before this, the agent could forget everything when a conversation ended.&lt;/p&gt;

&lt;p&gt;I added SQLite-based persistent memory so approved caller information can be stored and retrieved in future conversations. 🗄️&lt;/p&gt;

&lt;p&gt;The memory can include:&lt;/p&gt;

&lt;p&gt;👤 User ID&lt;br&gt;
📝 Name&lt;br&gt;
🌐 Language preference&lt;br&gt;
💰 Relevant financial facts&lt;br&gt;
🕐 Last interaction&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;📞 First Conversation&lt;/p&gt;

&lt;p&gt;User → My name is Ramesh.&lt;/p&gt;

&lt;p&gt;Agent → Can I remember your name for future conversations?&lt;/p&gt;

&lt;p&gt;User → Yes.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    ↓
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;📞 Second Conversation&lt;/p&gt;

&lt;p&gt;Agent → Welcome back, Ramesh! 👋&lt;/p&gt;

&lt;p&gt;🔐 Privacy was also important.&lt;/p&gt;

&lt;p&gt;The agent asks for consent before saving information.&lt;/p&gt;

&lt;p&gt;For financial services, sensitive information such as account numbers or government ID numbers should not be stored.&lt;/p&gt;

&lt;p&gt;🔎 5. GIVING MY AGENT REAL-WORLD TOOLS&lt;/p&gt;

&lt;p&gt;A voice agent becomes much more useful when it can use tools instead of relying only on the model's existing knowledge.&lt;/p&gt;

&lt;p&gt;For FinSafe, I implemented a financial scheme eligibility lookup. 💰&lt;/p&gt;

&lt;p&gt;The flow looks like:&lt;/p&gt;

&lt;p&gt;🗣️ User asks a question&lt;br&gt;
        ↓&lt;br&gt;
🧠 Agent decides a tool is needed&lt;br&gt;
        ↓&lt;br&gt;
🔎 Eligibility tool&lt;br&gt;
        ↓&lt;br&gt;
📊 Data is processed&lt;br&gt;
        ↓&lt;br&gt;
🔊 Agent explains the result&lt;/p&gt;

&lt;p&gt;I also added handling for situations where the data source is unavailable.&lt;/p&gt;

&lt;p&gt;🚫 The agent should never invent an answer just because a tool failed.&lt;/p&gt;

&lt;p&gt;Instead, it should clearly explain that the information couldn't be retrieved.&lt;/p&gt;

&lt;p&gt;📞 6. OUTBOUND VOICE CALLS&lt;/p&gt;

&lt;p&gt;I also moved beyond a browser-only experience and worked with outbound voice calls. 📱🎙️&lt;/p&gt;

&lt;p&gt;This showed me how voice agents can proactively communicate with users instead of always waiting for someone to start a conversation.&lt;/p&gt;

&lt;p&gt;👤 7. HUMAN ESCALATION&lt;/p&gt;

&lt;p&gt;AI shouldn't try to solve every problem.&lt;/p&gt;

&lt;p&gt;Sometimes the right answer is:&lt;/p&gt;

&lt;p&gt;🤝 "Let me connect you with a human."&lt;/p&gt;

&lt;p&gt;I added a human escalation path for situations where human assistance may be more appropriate.&lt;/p&gt;

&lt;p&gt;This is especially important in financial services, where some situations require additional support.&lt;/p&gt;

&lt;p&gt;📊 8. CALL TRACKING &amp;amp; ANALYTICS&lt;/p&gt;

&lt;p&gt;I also worked on tracking information about voice interactions and call outcomes. 📈&lt;/p&gt;

&lt;p&gt;Analytics can help answer questions like:&lt;/p&gt;

&lt;p&gt;📞 How many conversations happened?&lt;br&gt;
🎯 What was the outcome?&lt;br&gt;
👤 Which interactions required additional help?&lt;br&gt;
📈 How is the agent being used?&lt;/p&gt;

&lt;p&gt;This turns the project from a simple voice demo into something that can be monitored and improved.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgbuuuyd4z2tq6h85ekow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgbuuuyd4z2tq6h85ekow.png" alt=" " width="799" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🤖 9. SPECIALIST AGENT HANDOFF&lt;/p&gt;

&lt;p&gt;One of my final improvements was adding a specialist agent.&lt;/p&gt;

&lt;p&gt;For FinSafe, I created a:&lt;/p&gt;

&lt;p&gt;🏛️ Government Scheme Specialist&lt;/p&gt;

&lt;p&gt;Its job is focused specifically on government-scheme-related questions.&lt;/p&gt;

&lt;p&gt;The architecture looks like:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;         🤖 FinSafe Main Agent
                 │
      Is specialist help needed?
            /          \
          No            Yes
          │              │
          ▼              ▼
    💬 Main Answer    🔄 Handoff
                          │
                          ▼
                🏛️ Scheme Specialist
                          │
                          ▼
                     👤 User
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Before transferring the conversation, the main agent clearly explains what's happening:&lt;/p&gt;

&lt;p&gt;🗣️ "I'll connect you with our government scheme specialist who can help you with this."&lt;/p&gt;

&lt;p&gt;The specialist then continues the conversation using the user's existing context.&lt;/p&gt;

&lt;p&gt;💡 Biggest lesson:&lt;/p&gt;

&lt;p&gt;A good AI agent doesn't need to be an expert at everything. It needs to know when to involve the right specialist.&lt;/p&gt;

&lt;p&gt;🧩 THE CHALLENGES I FACED&lt;/p&gt;

&lt;p&gt;The project definitely didn't work perfectly on the first attempt. 😅&lt;/p&gt;

&lt;p&gt;And honestly, that's where some of the best learning happened.&lt;/p&gt;

&lt;p&gt;🌐 Multilingual Response Issues&lt;/p&gt;

&lt;p&gt;Initially, the agent could understand multiple languages, but sometimes the response language wasn't what I expected.&lt;/p&gt;

&lt;p&gt;I had to improve the language instructions so the agent follows the user's current language more consistently.&lt;/p&gt;

&lt;p&gt;🔌 LiveKit Connection Issues&lt;/p&gt;

&lt;p&gt;During testing, I also encountered LiveKit connectivity problems such as:&lt;/p&gt;

&lt;p&gt;WinError 1231&lt;br&gt;
ConnectionReset 10054&lt;/p&gt;

&lt;p&gt;These issues taught me that voice applications depend not only on application code, but also on stable real-time network connections.&lt;/p&gt;

&lt;p&gt;🧠 Memory Challenges&lt;/p&gt;

&lt;p&gt;Another challenge was making sure the agent could actually recognize a returning caller instead of simply remembering a name from the conversation.&lt;/p&gt;

&lt;p&gt;The system uses a user/caller identity to retrieve saved information from the database.&lt;/p&gt;

&lt;p&gt;🛠️ WANT TO BUILD YOUR OWN VOICE AGENT?&lt;/p&gt;

&lt;p&gt;Here is the basic architecture you need:&lt;/p&gt;

&lt;p&gt;🎤 Speech-to-Text&lt;br&gt;
        ↓&lt;br&gt;
🧠 Large Language Model&lt;br&gt;
        ↓&lt;br&gt;
🛠️ Tools / Database / Agents&lt;br&gt;
        ↓&lt;br&gt;
🔊 Text-to-Speech&lt;br&gt;
        ↓&lt;br&gt;
⚡ Real-Time Voice Transport&lt;/p&gt;

&lt;p&gt;You need:&lt;/p&gt;

&lt;p&gt;🎤 Speech-to-Text — understand the user&lt;br&gt;
🧠 LLM — process the conversation&lt;br&gt;
🔊 Text-to-Speech — generate the response&lt;br&gt;
⚡ Real-time transport — handle the live conversation&lt;br&gt;
🛠️ Tools — fetch external information&lt;br&gt;
🗄️ Database — store approved memory&lt;/p&gt;

&lt;p&gt;⚙️ SETTING UP THE PROJECT&lt;/p&gt;

&lt;p&gt;Clone the repository:&lt;/p&gt;

&lt;p&gt;git clone --&amp;gt; &lt;a href="https://github.com/Dodiyayash/murf-livekit-starter?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;https://github.com/Dodiyayash/murf-livekit-starter?utm_source=chatgpt.com&lt;/a&gt;&lt;br&gt;
cd murf-livekit-starter&lt;/p&gt;

&lt;p&gt;Create your Python environment and install the dependencies according to the repository instructions.&lt;/p&gt;

&lt;p&gt;Then configure your environment variables:&lt;/p&gt;

&lt;p&gt;LIVEKIT_URL=your_livekit_url&lt;br&gt;
LIVEKIT_API_KEY=your_livekit_api_key&lt;br&gt;
LIVEKIT_API_SECRET=your_livekit_api_secret&lt;br&gt;
MURF_API_KEY=your_murf_api_key&lt;/p&gt;

&lt;p&gt;⚠️ Never publish your real API keys.&lt;/p&gt;

&lt;p&gt;Use environment variables and keep secret files out of your public repository.&lt;/p&gt;

&lt;p&gt;🔐 KEEP YOUR DATA SAFE&lt;/p&gt;

&lt;p&gt;Never publish:&lt;/p&gt;

&lt;p&gt;❌ API keys&lt;br&gt;
❌ API secrets&lt;br&gt;
❌ Phone numbers&lt;br&gt;
❌ Caller information&lt;br&gt;
❌ Passwords&lt;br&gt;
❌ OTPs&lt;br&gt;
❌ Bank account numbers&lt;br&gt;
❌ Government ID numbers&lt;br&gt;
❌ Private database information&lt;/p&gt;

&lt;p&gt;Security should be part of the design from the beginning. 🔐&lt;/p&gt;

&lt;p&gt;💻 EXPLORE THE CODE&lt;/p&gt;

&lt;p&gt;The project is available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Dodiyayash/murf-livekit-starter" rel="noopener noreferrer"&gt;https://github.com/Dodiyayash/murf-livekit-starter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can explore the project and the different branches created during the challenge. 🚀&lt;/p&gt;

&lt;p&gt;💡 WHAT I LEARNED&lt;/p&gt;

&lt;p&gt;The biggest lesson from these 10 days:&lt;/p&gt;

&lt;p&gt;A useful voice agent is much more than an LLM connected to a microphone.&lt;/p&gt;

&lt;p&gt;A strong voice agent needs:&lt;/p&gt;

&lt;p&gt;🗣️ Conversation&lt;br&gt;
🧠 Context&lt;br&gt;
🛠️ Tools&lt;br&gt;
💾 Memory&lt;br&gt;
🛡️ Safety&lt;br&gt;
📊 Reliability&lt;br&gt;
🤖 Specialization&lt;/p&gt;

&lt;p&gt;Memory makes conversations personal.&lt;/p&gt;

&lt;p&gt;Tools allow the agent to access useful information.&lt;/p&gt;

&lt;p&gt;Guardrails keep the agent within its intended role.&lt;/p&gt;

&lt;p&gt;Human escalation provides a safety net.&lt;/p&gt;

&lt;p&gt;Specialist handoffs allow the system to handle more complex requests.&lt;/p&gt;

&lt;p&gt;And a good frontend helps users understand what's happening.&lt;/p&gt;

&lt;p&gt;🚀 MY 10-DAY JOURNEY&lt;/p&gt;

&lt;p&gt;🎙️ Voice Agent&lt;br&gt;
      ↓&lt;br&gt;
🛡️ Role &amp;amp; Guardrails&lt;br&gt;
      ↓&lt;br&gt;
🌐 Multilingual Support&lt;br&gt;
      ↓&lt;br&gt;
💻 Personalized Frontend&lt;br&gt;
      ↓&lt;br&gt;
🧠 Persistent Memory&lt;br&gt;
      ↓&lt;br&gt;
🔎 Financial Tools&lt;br&gt;
      ↓&lt;br&gt;
📞 Outbound Calls&lt;br&gt;
      ↓&lt;br&gt;
👤 Human Escalation&lt;br&gt;
      ↓&lt;br&gt;
📊 Call Analytics&lt;br&gt;
      ↓&lt;br&gt;
🤖 Specialist Handoff&lt;/p&gt;

&lt;p&gt;What started as a simple voice assistant became a much more complete conversational AI system. 🚀&lt;/p&gt;

&lt;p&gt;❤️ FINAL THOUGHTS&lt;/p&gt;

&lt;p&gt;This 10 Days of Voice Agents challenge has been an incredible hands-on learning experience.&lt;/p&gt;

&lt;p&gt;I learned that building voice AI isn't just about making something that speaks.&lt;/p&gt;

&lt;p&gt;It's about creating something that can:&lt;/p&gt;

&lt;p&gt;Listen → Understand → Remember → Act → Escalate → Respond 🎙️🧠⚡&lt;/p&gt;

&lt;p&gt;I'm excited to continue improving FinSafe AI and explore what I can build next.&lt;/p&gt;

&lt;p&gt;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. 🎧🇮🇳&lt;/p&gt;

&lt;p&gt;🚀 One journey. 10 days. One voice agent. And a lot of learning.&lt;/p&gt;

&lt;p&gt;Keep building. Keep experimenting. Keep learning. 💻🔥&lt;/p&gt;

&lt;h1&gt;
  
  
  10DaysOfVoiceAgents #VoiceForBharat #MurfAI #MurfFalcon #VoiceAI #AIVoiceAgent #GenerativeAI #ConversationalAI #FinTech #BuildInPublic #AI #VoiceTechnology
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>murfai</category>
      <category>python</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
