<?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: Lalit Mohan Oli</title>
    <description>The latest articles on DEV Community by Lalit Mohan Oli (@lalit_mohanoli_0e3de2c99).</description>
    <link>https://dev.to/lalit_mohanoli_0e3de2c99</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%2F3780774%2Fa9f87f43-0f50-4fbc-935c-9c44bd825f22.png</url>
      <title>DEV Community: Lalit Mohan Oli</title>
      <link>https://dev.to/lalit_mohanoli_0e3de2c99</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lalit_mohanoli_0e3de2c99"/>
    <language>en</language>
    <item>
      <title>Building Jan Dhan Seva: A Multi-Agent Voice AI Assistant for Financial Literacy in India 🇮🇳</title>
      <dc:creator>Lalit Mohan Oli</dc:creator>
      <pubDate>Sat, 15 Aug 2026 04:35:08 +0000</pubDate>
      <link>https://dev.to/lalit_mohanoli_0e3de2c99/building-jan-dhan-seva-a-multi-agent-voice-ai-assistant-for-financial-literacy-in-india-3omm</link>
      <guid>https://dev.to/lalit_mohanoli_0e3de2c99/building-jan-dhan-seva-a-multi-agent-voice-ai-assistant-for-financial-literacy-in-india-3omm</guid>
      <description>&lt;h1&gt;
  
  
  Building Jan Dhan Seva: A Multi-Agent Voice AI Assistant for Financial Literacy in India 🇮🇳
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;#10DaysOfAIVoiceAgents Challenge — VoiceForBharat Edition by Murf AI&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Powered by Murf Falcon TTS, LiveKit Agents SDK, Deepgram STT, Google Gemini LLM, Next.js 15, and SQLite.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&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%2Fqnkygbo3t82eyqieoqr0.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%2Fqnkygbo3t82eyqieoqr0.png" alt="Jan Dhan Seva Voice Assistant Banner" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 1. The Problem &amp;amp; The Audience
&lt;/h2&gt;

&lt;p&gt;In India, hundreds of millions of citizens are entering the formal banking system through national financial inclusion initiatives like the &lt;strong&gt;Pradhan Mantri Jan Dhan Yojana (PMJDY)&lt;/strong&gt;. However, a major barrier remains: &lt;strong&gt;financial literacy and language accessibility&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Navigating complex banking terminology, understanding government scheme eligibility, calculating fixed deposit (FD) returns, or avoiding cyber fraud can be daunting—especially for first-time banking users who prefer communicating in their native language over text or voice.&lt;/p&gt;

&lt;p&gt;To solve this, I built &lt;strong&gt;Jan Dhan Seva (Aarav Voice Agent)&lt;/strong&gt;—an interactive, register-aware, multilingual AI voice assistant designed to deliver accessible financial guidance in &lt;strong&gt;Hindi (Devanagari)&lt;/strong&gt; and &lt;strong&gt;English&lt;/strong&gt;.&lt;br&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%2F5wocxgr9sx2r6n57ebad.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%2F5wocxgr9sx2r6n57ebad.png" alt="Jan Dhan Seva Homepage &amp;amp; Agent UI" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🏗️ 2. How the System Works
&lt;/h2&gt;

&lt;p&gt;The system operates on an ultra-low latency (&amp;lt;480ms voice turn) streaming loop using WebRTC transport.&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%2Fivm3rhanku3zoe3ipxj3.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%2Fivm3rhanku3zoe3ipxj3.png" alt="Jan Dhan Seva Architecture Diagram" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sequenceDiagram
    autonumber
    actor Caller as 👤 Caller (Browser/SIP)
    participant LK as ⚡ LiveKit WebRTC
    participant STT as 🎙️ Deepgram STT
    participant LLM as 🧠 Gemini 3.5 LLM
    participant TTS as 🔊 Murf Falcon TTS
    participant DB as 💾 SQLite &amp;amp; UI Cards

    Caller-&amp;gt;&amp;gt;LK: Speaks Audio Chunk
    LK-&amp;gt;&amp;gt;STT: Audio Stream
    STT--&amp;gt;&amp;gt;LLM: Real-Time Text Transcript
    LLM-&amp;gt;&amp;gt;DB: Execute Tool (e.g. FD Calc / Handoff)
    DB--&amp;gt;&amp;gt;LK: Push Floating UI Card
    LLM-&amp;gt;&amp;gt;TTS: Streamed Response Text
    TTS--&amp;gt;&amp;gt;LK: High-Quality Audio Stream (Samar/Pooja/Nikhil/Palak)
    LK--&amp;gt;&amp;gt;Caller: Plays Audio Response (&amp;lt;480ms Latency)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Core Architecture Components:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Streaming Speech-to-Text (STT)&lt;/strong&gt;: Deepgram &lt;code&gt;nova-3&lt;/code&gt; for real-time multilingual speech recognition (Hindi + English).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Brain / Reasoning Engine (LLM)&lt;/strong&gt;: Google &lt;code&gt;gemini-3.5-flash-lite&lt;/code&gt; for intent classification, strict language mirroring, and tool calling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text-to-Speech (TTS)&lt;/strong&gt;: &lt;strong&gt;Murf Falcon&lt;/strong&gt; — ultra-fast streaming Indian voice models with dynamic voice profile switching (&lt;code&gt;Samar&lt;/code&gt;, &lt;code&gt;Pooja&lt;/code&gt;, &lt;code&gt;Nikhil&lt;/code&gt;, &lt;code&gt;Palak&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-Time Transport &amp;amp; State&lt;/strong&gt;: &lt;strong&gt;LiveKit Agents SDK&lt;/strong&gt; with WebRTC audio streaming, Voice Activity Detection (Silero VAD), and data channels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistence &amp;amp; Telephony&lt;/strong&gt;: &lt;strong&gt;SQLite&lt;/strong&gt; (&lt;code&gt;data.db&lt;/code&gt;) for profile memory, outbound call logs, escalation tickets, and session analytics.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🌟 3. Most Important Features Built
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Multi-Agent Mesh Architecture &amp;amp; Dynamic Murf Falcon Voice Handoffs 🔄
&lt;/h3&gt;

&lt;p&gt;Instead of relying on a single monolith agent, Jan Dhan Seva implements a 4-agent specialist mesh featuring:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Aarav&lt;/strong&gt; (&lt;em&gt;Main Guide&lt;/em&gt;) — Murf Voice: &lt;strong&gt;Samar&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kavya&lt;/strong&gt; (&lt;em&gt;Schemes Specialist&lt;/em&gt;) — Murf Voice: &lt;strong&gt;Pooja&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vikram&lt;/strong&gt; (&lt;em&gt;Fraud Specialist&lt;/em&gt;) — Murf Voice: &lt;strong&gt;Nikhil&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kirti&lt;/strong&gt; (&lt;em&gt;FD Calculator Specialist&lt;/em&gt;) — Murf Voice: &lt;strong&gt;Palak&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&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%2Fski39tdssv72eywe8w0z.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%2Fski39tdssv72eywe8w0z.png" alt="Multi-Agent Specialist Mesh Network" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When a user switches topics, the active agent executes a handoff tool that atomically updates the session's underlying Murf TTS voice profile in real-time without dropping the WebRTC audio connection:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Code Snippet: Sub-second atomic voice engine transition inside AgentSession
&lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_switch_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;specialist&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BaseAgent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;active_agent_title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# 1. Update TTS engine to specialist's assigned Murf voice model
&lt;/span&gt;    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_tts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;specialist&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tts&lt;/span&gt;
    &lt;span class="c1"&gt;# 2. Switch agent persona and instructions
&lt;/span&gt;    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;specialist&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# 3. Trigger immediate proactive speech generation
&lt;/span&gt;    &lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create_task&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_reply&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Transferred call to &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;active_agent_title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Strict Language Mirroring &amp;amp; Financial Guardrails 🛡️
&lt;/h3&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%2Fktstz44jp2jhowy7iecn.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%2Fktstz44jp2jhowy7iecn.png" alt="Screenshot 1: Language Mirroring &amp;amp; Safety Warning" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Script Consistency&lt;/strong&gt;: Hindi input triggers pure Devanagari Hindi output. English input triggers pure English output.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credential Protection&lt;/strong&gt;: Intercepts requests for PINs, passwords, OTPs, or 16-digit card numbers with immediate security alerts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Persistent Caller Profile Memory &amp;amp; Consent 💾
&lt;/h3&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%2Fo5p4btqxvz8cz1ap2hfl.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%2Fo5p4btqxvz8cz1ap2hfl.png" alt="Screenshot 2: Returning User Recognition" width="799" height="424"&gt;&lt;/a&gt;&lt;br&gt;
Integrates SQLite caller lookup (&lt;code&gt;lookup_caller&lt;/code&gt;). Greets returning citizens by name, references their previous interaction date, and enforces explicit user consent before storing personal information.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Real-Time Tools &amp;amp; Floating UI Data Cards 📊
&lt;/h3&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%2Fhpk2lycnvh8kjgu74ak6.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%2Fhpk2lycnvh8kjgu74ak6.png" alt="Screenshot 3: Floating UI Data Cards (Gold/FD/Schemes)" width="799" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bullion Rate Tool (&lt;code&gt;get_gold_silver_price&lt;/code&gt;)&lt;/strong&gt;: Live 24K/22K Gold &amp;amp; Silver market rates via GoldAPI.io.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Government Schemes Database (&lt;code&gt;lookup_govt_scheme&lt;/code&gt;)&lt;/strong&gt;: Curated eligibility criteria, document checklists, and benefits for major schemes (&lt;em&gt;PMJDY, APY, PMSBY, PMJJBY, Sukanya Samriddhi, PM Kisan, PM Mudra&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FD Returns Calculator (&lt;code&gt;calculate_fd_returns&lt;/code&gt;)&lt;/strong&gt;: Computes exact quarterly compounding returns based on current SBI rates (7.1% p.a.).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. AI Guardrails &amp;amp; Non-Decision Boundaries 🚧
&lt;/h3&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%2Frtxfgj09bsylu5j93nt5.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%2Frtxfgj09bsylu5j93nt5.png" alt="Screenshot 4: AI Guardrail Boundaries" width="800" height="360"&gt;&lt;/a&gt;&lt;br&gt;
Implemented strict conversational boundaries preventing the agent from taking binding financial decisions. Scenarios like unauthorized transactions, account freezes, or KYC rejections trigger immediate red lines—redacting PII and generating emergency human escalation tickets.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Human Escalation Protocol &amp;amp; Support Portal 🚨
&lt;/h3&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%2F4hbn76k7gae6xcz3g5jz.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%2F4hbn76k7gae6xcz3g5jz.png" alt="Screenshot 5: Human Escalation &amp;amp; Discord Alerts" width="800" height="359"&gt;&lt;/a&gt;&lt;br&gt;
Generates unique reference IDs (e.g. &lt;code&gt;ESC-72973&lt;/code&gt;) for cyber fraud disputes, redacts PII, saves tickets to SQLite, provides status lookups, and posts rich alerts to Discord support webhooks.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Glassmorphic Call Analytics Dashboard 📈
&lt;/h3&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%2Fanp6yykqrf835nvhlopm.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%2Fanp6yykqrf835nvhlopm.png" alt="Call Analytics Dashboard UI" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Features 5 live telemetry cards (Total Calls, Success Rate %, Avg Duration, Voice Turn Latency ~480ms), an SVG Donut Chart, failure category breakdowns, and 5-second polling via Next.js 15 REST endpoints (&lt;code&gt;/api/analytics&lt;/code&gt;).&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 4. Challenges &amp;amp; How I Overcame Them
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Difficulty 1: Handoff Speech Transition Delay
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Problem&lt;/strong&gt;: When Aarav transferred a call to Kirti or Vikram, the system initially waited for the user to speak again before the specialist introduced themselves.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: Implemented an asynchronous trigger &lt;code&gt;asyncio.create_task(ctx.session.generate_reply())&lt;/code&gt; inside &lt;code&gt;_switch_agent&lt;/code&gt;. Now, the moment the TTS engine switches to Murf &lt;code&gt;Palak&lt;/code&gt; or &lt;code&gt;Nikhil&lt;/code&gt;, the specialist agent proactively greets the caller with zero delay.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Difficulty 2: Function Parameter Binding Mismatches
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Problem&lt;/strong&gt;: Tool execution for &lt;code&gt;calculate_fd_returns&lt;/code&gt; failed under Gemini because &lt;code&gt;RunContext&lt;/code&gt; injection caused signature mismatch errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solution&lt;/strong&gt;: Refactored tool signatures to isolate dynamic arguments and added &lt;code&gt;safe_float&lt;/code&gt; type-coercion helpers to handle both string and numeric inputs cleanly.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠️ 5. How Readers Can Build and Run It
&lt;/h2&gt;

&lt;p&gt;Follow these steps to get Jan Dhan Seva running locally:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.10+ and &lt;a href="https://docs.astral.sh/uv/" rel="noopener noreferrer"&gt;&lt;code&gt;uv&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Node.js 18+ and &lt;code&gt;pnpm&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;API Keys: &lt;a href="https://murf.ai/api" rel="noopener noreferrer"&gt;Murf AI&lt;/a&gt;, &lt;a href="https://livekit.io/" rel="noopener noreferrer"&gt;LiveKit Cloud&lt;/a&gt;, &lt;a href="https://deepgram.com/" rel="noopener noreferrer"&gt;Deepgram&lt;/a&gt;, and &lt;a href="https://aistudio.google.com/" rel="noopener noreferrer"&gt;Google Gemini AI Studio&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Backend Setup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/lalit-oli-mohan-479/murf-livekit-starter-my.git
&lt;span class="nb"&gt;cd &lt;/span&gt;murf-livekit-starter-my/backend

&lt;span class="c"&gt;# Create .env.local in backend directory (Never commit API keys!)&lt;/span&gt;
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env.local

&lt;span class="c"&gt;# Install dependencies &amp;amp; run backend dev agent&lt;/span&gt;
uv &lt;span class="nb"&gt;sync
&lt;/span&gt;uv run python src/agent.py dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Frontend Setup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ../frontend
pnpm &lt;span class="nb"&gt;install
&lt;/span&gt;pnpm dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;code&gt;http://localhost:3000&lt;/code&gt; in your browser, click &lt;strong&gt;"START TALKING"&lt;/strong&gt;, and converse with Aarav and his specialist team!&lt;/p&gt;




&lt;h2&gt;
  
  
  🔮 6. What I Would Improve Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Regional Voice Support&lt;/strong&gt;: Expanding Murf Falcon voice models to support Tamil, Telugu, Bengali, and Marathi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline WhatsApp Receipts&lt;/strong&gt;: Pushing scheme eligibility checklists and escalation reference IDs via WhatsApp Business API upon call disconnect.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔗 Code &amp;amp; Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/lalit-oli-mohan-479/murf-livekit-starter-my" rel="noopener noreferrer"&gt;https://github.com/lalit-oli-mohan-479/murf-livekit-starter-my&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Murf Falcon TTS API&lt;/strong&gt;: &lt;a href="https://murf.ai/api/docs" rel="noopener noreferrer"&gt;Murf AI Documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LiveKit Agents Framework&lt;/strong&gt;: &lt;a href="https://docs.livekit.io/agents" rel="noopener noreferrer"&gt;LiveKit Docs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Built with ❤️ for #VoiceForBharat and the #10DaysOfAIVoiceAgents Challenge.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>voiceai</category>
      <category>voiceforbharat</category>
      <category>10daysofaivoiceagents</category>
      <category>python</category>
    </item>
  </channel>
</rss>
