<?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: Kumar-nm</title>
    <description>The latest articles on DEV Community by Kumar-nm (@kumarnm).</description>
    <link>https://dev.to/kumarnm</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%2F4078995%2F5ebe15ec-d82e-42cf-aa6b-2b4ccd6cae63.png</url>
      <title>DEV Community: Kumar-nm</title>
      <link>https://dev.to/kumarnm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kumarnm"/>
    <language>en</language>
    <item>
      <title>Building Arogya: A Voice-First Healthcare Agent with Murf Falcon #10DaysofAIVoiceAgents, #MurfFalcon and #VoiceForBharat</title>
      <dc:creator>Kumar-nm</dc:creator>
      <pubDate>Sat, 15 Aug 2026 13:41:23 +0000</pubDate>
      <link>https://dev.to/kumarnm/building-arogya-a-voice-first-healthcare-agent-with-murf-falcon-10daysofaivoiceagents-419h</link>
      <guid>https://dev.to/kumarnm/building-arogya-a-voice-first-healthcare-agent-with-murf-falcon-10daysofaivoiceagents-419h</guid>
      <description>&lt;h1&gt;
  
  
  Building Arogya: A Voice-First Healthcare Agent with Murf Falcon 🩺🎙️
&lt;/h1&gt;

&lt;p&gt;Over the last 10 days, I built &lt;strong&gt;Arogya Health Access&lt;/strong&gt; as part of the &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/strong&gt; by Murf AI.&lt;/p&gt;

&lt;p&gt;What started as a basic voice assistant gradually evolved into a healthcare-focused voice agent with multilingual conversations, memory, real-time healthcare tools, outbound calls, human escalation, analytics, and specialist agent handoffs.&lt;/p&gt;

&lt;p&gt;The biggest lesson for me was that building a useful voice agent is not just about making it talk.&lt;/p&gt;

&lt;p&gt;It is about giving the agent the right &lt;strong&gt;context, tools, boundaries, memory, failure handling, and escalation paths&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Problem
&lt;/h2&gt;

&lt;p&gt;Healthcare information is often difficult to access when users have to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Type everything into an application&lt;/li&gt;
&lt;li&gt;Navigate multiple healthcare services&lt;/li&gt;
&lt;li&gt;Search for facilities manually&lt;/li&gt;
&lt;li&gt;Communicate in a language they are less comfortable typing&lt;/li&gt;
&lt;li&gt;Know whether a request should be handled by an AI system or a human&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted to explore whether a &lt;strong&gt;voice-first healthcare assistant&lt;/strong&gt; could make some of these interactions simpler.&lt;/p&gt;

&lt;p&gt;That led to &lt;strong&gt;Arogya Health Access&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Arogya is not designed to replace doctors or provide medical diagnosis.&lt;/p&gt;

&lt;p&gt;Instead, it focuses on healthcare access and assistance — helping users find healthcare facilities, interact naturally through voice, receive reminders, and reach human support when necessary.&lt;/p&gt;

&lt;p&gt;Voice is especially useful for users who are more comfortable speaking than typing and for conversations involving Indian languages and code-mixed communication.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Meet Arogya
&lt;/h2&gt;

&lt;p&gt;Arogya is a real-time voice agent that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎙️ Have natural voice conversations&lt;/li&gt;
&lt;li&gt;🌐 Understand multilingual and code-mixed conversations&lt;/li&gt;
&lt;li&gt;🧠 Remember information for returning users with consent&lt;/li&gt;
&lt;li&gt;🔧 Retrieve live healthcare facility information&lt;/li&gt;
&lt;li&gt;📍 Use location information for nearby facility searches&lt;/li&gt;
&lt;li&gt;📞 Make outbound healthcare reminder calls&lt;/li&gt;
&lt;li&gt;🤝 Escalate sensitive requests to human support&lt;/li&gt;
&lt;li&gt;📊 Track support requests through a dashboard&lt;/li&gt;
&lt;li&gt;🏥 Hand facility and appointment queries to a specialist agent&lt;/li&gt;
&lt;li&gt;🔄 Transfer conversations between agents while preserving context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project was built incrementally over the 10-day challenge.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. How the Voice Agent Works
&lt;/h2&gt;

&lt;p&gt;At the core of Arogya is a real-time voice pipeline.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User speaks
    ↓
LiveKit
    ↓
Deepgram Speech-to-Text
    ↓
Arogya Agent + Gemini
    ↓
Tools / Memory / Escalation / Specialist Handoff
    ↓
Murf Falcon Text-to-Speech
    ↓
LiveKit
    ↓
User hears the response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The main components are:&lt;/p&gt;

&lt;h3&gt;
  
  
  Speech-to-Text
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Deepgram&lt;/strong&gt; converts the user's speech into text so the agent can understand the conversation.&lt;/p&gt;

&lt;h3&gt;
  
  
  LLM
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Google Gemini&lt;/strong&gt; acts as the reasoning layer for the agent.&lt;/p&gt;

&lt;p&gt;It decides how to respond and, when appropriate, whether it should use a tool, escalate the request, or hand the conversation to a specialist.&lt;/p&gt;

&lt;h3&gt;
  
  
  Text-to-Speech
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Murf Falcon&lt;/strong&gt; converts the agent's response back into natural speech.&lt;/p&gt;

&lt;p&gt;This was particularly important because the experience depends heavily on how quickly the user receives audio after speaking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real-Time Transport
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;LiveKit&lt;/strong&gt; handles the real-time audio communication between the user and the voice agent.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. What I Built
&lt;/h2&gt;

&lt;p&gt;Rather than keeping Arogya as a simple question-answering voice bot, I gradually added capabilities that made it behave more like a complete voice-agent system.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.1 Multilingual &amp;amp; Code-Mixed Conversations 🌐
&lt;/h3&gt;

&lt;p&gt;Arogya can detect the user's language and respond in the same language.&lt;/p&gt;

&lt;p&gt;I also added instructions to prevent unnecessary language switching or translation when the user is already communicating naturally.&lt;/p&gt;

&lt;p&gt;This also allows conversations involving mixed-language speech.&lt;/p&gt;

&lt;p&gt;For a voice-first healthcare assistant, this was an important part of making the system more accessible.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.2 A Custom Voice Interface 🎨
&lt;/h3&gt;

&lt;p&gt;The frontend was designed specifically around the healthcare use case instead of using a generic voice-agent interface.&lt;/p&gt;

&lt;p&gt;The interface includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Healthcare-focused landing page&lt;/li&gt;
&lt;li&gt;Voice conversation interface&lt;/li&gt;
&lt;li&gt;Real-time transcripts&lt;/li&gt;
&lt;li&gt;Connection states&lt;/li&gt;
&lt;li&gt;Active conversation states&lt;/li&gt;
&lt;li&gt;Multi-language interface&lt;/li&gt;
&lt;li&gt;Visual display of structured tool results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The frontend was also designed to remain extensible so individual UI elements can be enhanced with additional interactions later.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.3 Memory &amp;amp; Personalisation 🧠
&lt;/h3&gt;

&lt;p&gt;Arogya can remember useful information for returning users.&lt;/p&gt;

&lt;p&gt;I implemented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User identification&lt;/li&gt;
&lt;li&gt;Persistent memory&lt;/li&gt;
&lt;li&gt;Conversation history&lt;/li&gt;
&lt;li&gt;Temporary session memory&lt;/li&gt;
&lt;li&gt;Returning-user personalisation&lt;/li&gt;
&lt;li&gt;Post-call memory consent&lt;/li&gt;
&lt;li&gt;Save / Discard memory controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An important part of this feature was &lt;strong&gt;consent&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The system does not simply persist everything from a conversation. The user needs to explicitly allow the information to be saved.&lt;/p&gt;

&lt;p&gt;This made the memory feature more appropriate for a healthcare-oriented application.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.4 Healthcare Tools 🔧
&lt;/h3&gt;

&lt;p&gt;One of the biggest changes was teaching Arogya to use tools instead of relying entirely on the LLM.&lt;/p&gt;

&lt;p&gt;I built an &lt;strong&gt;MCP healthcare server&lt;/strong&gt; that connects Arogya to live healthcare facility data.&lt;/p&gt;

&lt;p&gt;The system can retrieve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nearby hospitals&lt;/li&gt;
&lt;li&gt;Clinics&lt;/li&gt;
&lt;li&gt;PHCs&lt;/li&gt;
&lt;li&gt;Other healthcare facilities&lt;/li&gt;
&lt;li&gt;Distances&lt;/li&gt;
&lt;li&gt;Addresses when available&lt;/li&gt;
&lt;li&gt;Public/government facility information when available&lt;/li&gt;
&lt;li&gt;Google Maps links&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The flow is roughly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User asks for nearby healthcare facilities
                ↓
Arogya determines that a tool is required
                ↓
Location information is used
                ↓
MCP healthcare server
                ↓
OpenStreetMap / Overpass
                ↓
Facility results
                ↓
Results returned to Arogya
                ↓
Voice response + frontend display
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I also added fallback handling because external data sources can fail.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;A tool-using agent needs failure paths just as much as successful paths.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  4.5 Outbound Healthcare Calls 📞
&lt;/h3&gt;

&lt;p&gt;Arogya is not limited to incoming conversations.&lt;/p&gt;

&lt;p&gt;I added outbound calling using &lt;strong&gt;LiveKit Telephony&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The system supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scheduled healthcare reminders&lt;/li&gt;
&lt;li&gt;Dynamic reminder purposes&lt;/li&gt;
&lt;li&gt;Two-way conversations&lt;/li&gt;
&lt;li&gt;User-controlled call termination&lt;/li&gt;
&lt;li&gt;Call opt-out handling&lt;/li&gt;
&lt;li&gt;Multilingual speech&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The calling flow uses:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Arogya
   ↓
LiveKit Telephony
   ↓
SIP
   ↓
Linphone
   ↓
User Phone
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This changed the interaction model from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The user calls the assistant."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The assistant can proactively reach the user."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  4.6 Human Escalation 🤝
&lt;/h3&gt;

&lt;p&gt;One of the most important design decisions was teaching Arogya when &lt;strong&gt;not to answer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A healthcare agent should not attempt to diagnose every request.&lt;/p&gt;

&lt;p&gt;I therefore added human escalation for situations such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Red-flag symptoms&lt;/li&gt;
&lt;li&gt;Diagnosis requests&lt;/li&gt;
&lt;li&gt;Requests that require human assistance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The escalation flow also asks the user for permission before sharing relevant information.&lt;/p&gt;

&lt;p&gt;The system generates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A unique escalation reference ID&lt;/li&gt;
&lt;li&gt;A concise human-readable summary&lt;/li&gt;
&lt;li&gt;A support request&lt;/li&gt;
&lt;li&gt;A dashboard entry&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sensitive information such as OTPs, PINs, passwords and account numbers is not included in the information shared with human support.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.7 Human Support Dashboard 📊
&lt;/h3&gt;

&lt;p&gt;The escalation system also needed somewhere for support requests to go.&lt;/p&gt;

&lt;p&gt;So I added a &lt;strong&gt;Human Support Dashboard&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It allows support requests to move through states such as:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;This made the escalation feature more than just an API call.&lt;/p&gt;

&lt;p&gt;There is now a workflow around the human handoff.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.8 Specialist Agent Handoff 🏥
&lt;/h3&gt;

&lt;p&gt;As Arogya gained more capabilities, putting everything inside one agent became less practical.&lt;/p&gt;

&lt;p&gt;So I introduced a dedicated &lt;strong&gt;Clinic &amp;amp; Appointment Specialist Agent&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The specialist focuses on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hospitals&lt;/li&gt;
&lt;li&gt;Clinics&lt;/li&gt;
&lt;li&gt;Doctors&lt;/li&gt;
&lt;li&gt;Healthcare facilities&lt;/li&gt;
&lt;li&gt;Appointments&lt;/li&gt;
&lt;li&gt;Facility comparisons&lt;/li&gt;
&lt;li&gt;Healthcare specialties&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The main Arogya agent can decide when a request should be handled by the specialist.&lt;/p&gt;

&lt;p&gt;The important part is that the user does not need to repeat the entire conversation.&lt;/p&gt;

&lt;p&gt;Context can be passed during the handoff.&lt;/p&gt;

&lt;p&gt;The specialist can also hand the conversation back to Arogya when the topic changes back to general healthcare.&lt;/p&gt;

&lt;p&gt;This gave me a first look at how a &lt;strong&gt;multi-agent voice system&lt;/strong&gt; can be structured.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Overall Architecture
&lt;/h2&gt;

&lt;p&gt;The final architecture connects the real-time voice pipeline with memory, external tools, human escalation, telephony, and specialist agents.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                         ┌─────────────────────┐
                         │       User 🎙️       │
                         └──────────┬──────────┘
                                    │
                                    ▼
                         ┌─────────────────────┐
                         │      LiveKit        │
                         │  Real-Time Audio    │
                         └──────────┬──────────┘
                                    │
                                    ▼
                         ┌─────────────────────┐
                         │     Deepgram STT    │
                         └──────────┬──────────┘
                                    │
                                    ▼
                  ┌─────────────────────────────────┐
                  │       Arogya Main Agent         │
                  │          + Gemini LLM            │
                  └───────┬─────────┬─────────┬─────┘
                          │         │         │
              ┌───────────┘         │         └─────────────┐
              ▼                     ▼                       ▼
       ┌────────────┐       ┌──────────────┐      ┌─────────────────┐
       │   Memory   │       │ Healthcare   │      │   Specialist    │
       │   SQLite   │       │    Tools     │      │     Agent       │
       └────────────┘       └──────┬───────┘      └─────────────────┘
                                   │
                                   ▼
                         ┌─────────────────────┐
                         │ MCP Healthcare      │
                         │ Server              │
                         └──────┬───────┬──────┘
                                │       │
                                ▼       ▼
                         OpenStreetMap  Foursquare

                  ┌─────────────────────────────┐
                  │     Human Escalation        │
                  │   Support Dashboard         │
                  └─────────────────────────────┘

                  ┌─────────────────────────────┐
                  │     LiveKit Telephony       │
                  │        SIP / Linphone       │
                  └─────────────────────────────┘

                                    │
                                    ▼
                         ┌─────────────────────┐
                         │     Murf Falcon     │
                         │        TTS          │
                         └──────────┬──────────┘
                                    │
                                    ▼
                         ┌─────────────────────┐
                         │       LiveKit       │
                         └──────────┬──────────┘
                                    │
                                    ▼
                         ┌─────────────────────┐
                         │       User 🎙️       │
                         └─────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The interesting part is that the voice pipeline is only the foundation.&lt;/p&gt;

&lt;p&gt;The agent then connects to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;External tools&lt;/li&gt;
&lt;li&gt;Human escalation&lt;/li&gt;
&lt;li&gt;Specialist agents&lt;/li&gt;
&lt;li&gt;Telephony&lt;/li&gt;
&lt;li&gt;Frontend components&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is what turned the project from a basic voice chatbot into a more complete voice-agent system.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. The Technology Stack
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;LiveKit Agents&lt;/li&gt;
&lt;li&gt;LiveKit Telephony&lt;/li&gt;
&lt;li&gt;Google Gemini&lt;/li&gt;
&lt;li&gt;Deepgram&lt;/li&gt;
&lt;li&gt;Murf Falcon&lt;/li&gt;
&lt;li&gt;MCP&lt;/li&gt;
&lt;li&gt;SQLite&lt;/li&gt;
&lt;li&gt;Silero&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;LiveKit Components&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Healthcare Data
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;OpenStreetMap&lt;/li&gt;
&lt;li&gt;Overpass API&lt;/li&gt;
&lt;li&gt;Nominatim&lt;/li&gt;
&lt;li&gt;Foursquare&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Communication
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;LiveKit&lt;/li&gt;
&lt;li&gt;SIP&lt;/li&gt;
&lt;li&gt;Linphone&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  7. The Hard Parts
&lt;/h2&gt;

&lt;p&gt;The project definitely did not work perfectly on the first attempt.&lt;/p&gt;

&lt;p&gt;Here are some of the problems that taught me the most.&lt;/p&gt;

&lt;h3&gt;
  
  
  Language Consistency
&lt;/h3&gt;

&lt;p&gt;When multilingual support was added, simply telling the model to "support multiple languages" wasn't enough.&lt;/p&gt;

&lt;p&gt;The agent could switch languages unnecessarily or translate when it wasn't needed.&lt;/p&gt;

&lt;p&gt;I solved this by explicitly detecting the user's language and updating the agent's instructions to maintain that language throughout the conversation.&lt;/p&gt;

&lt;h3&gt;
  
  
  External Tool Reliability
&lt;/h3&gt;

&lt;p&gt;Healthcare data should not be hallucinated by an LLM.&lt;/p&gt;

&lt;p&gt;That meant connecting the agent to external data sources.&lt;/p&gt;

&lt;p&gt;But external APIs can fail.&lt;/p&gt;

&lt;p&gt;So I added fallback handling and a secondary Overpass endpoint.&lt;/p&gt;

&lt;p&gt;This taught me that agent tools need to be designed with failure scenarios in mind.&lt;/p&gt;

&lt;h3&gt;
  
  
  Knowing When to Escalate
&lt;/h3&gt;

&lt;p&gt;A general-purpose LLM may try to answer almost anything.&lt;/p&gt;

&lt;p&gt;That is not appropriate for healthcare.&lt;/p&gt;

&lt;p&gt;I had to introduce explicit boundaries around situations such as diagnosis requests and red-flag symptoms.&lt;/p&gt;

&lt;p&gt;Instead of trying to make the AI more confident, the better solution was to make it &lt;strong&gt;know when to stop and ask for human help&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Growing Agent Complexity
&lt;/h3&gt;

&lt;p&gt;Initially, it was easy to keep everything inside one agent.&lt;/p&gt;

&lt;p&gt;As more tools and capabilities were added, the agent became harder to reason about.&lt;/p&gt;

&lt;p&gt;Introducing a specialist agent gave different responsibilities a clearer boundary.&lt;/p&gt;

&lt;p&gt;This was one of the biggest architectural lessons from the challenge.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. How to Run Arogya
&lt;/h2&gt;

&lt;p&gt;The complete source code is available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Kumar-nm/murf-livekit-starter" rel="noopener noreferrer"&gt;🔗 Arogya Health Access – GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

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

&lt;ul&gt;
&lt;li&gt;Python 3.10+&lt;/li&gt;
&lt;li&gt;Node.js 18+&lt;/li&gt;
&lt;li&gt;uv&lt;/li&gt;
&lt;li&gt;pnpm&lt;/li&gt;
&lt;li&gt;A LiveKit project&lt;/li&gt;
&lt;li&gt;Murf API key&lt;/li&gt;
&lt;li&gt;Deepgram API key&lt;/li&gt;
&lt;li&gt;Google Gemini API key&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Clone the Repository
&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/Kumar-nm/murf-livekit-starter.git
&lt;span class="nb"&gt;cd &lt;/span&gt;murf-livekit-starter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Install Backend Dependencies
&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;backend
uv &lt;span class="nb"&gt;sync
&lt;/span&gt;uv run python src/agent.py download-files
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Install Frontend Dependencies
&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;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  9. Environment Variables
&lt;/h2&gt;

&lt;p&gt;Never commit API keys to GitHub.&lt;/p&gt;

&lt;p&gt;Create your environment files from the provided &lt;code&gt;.env.example&lt;/code&gt; files.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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
DEEPGRAM_API_KEY=your_deepgram_api_key
GOOGLE_API_KEY=your_google_api_key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace the placeholder values with your own credentials.&lt;/p&gt;

&lt;p&gt;Do not publish:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API keys&lt;/li&gt;
&lt;li&gt;API secrets&lt;/li&gt;
&lt;li&gt;SIP credentials&lt;/li&gt;
&lt;li&gt;Phone numbers&lt;/li&gt;
&lt;li&gt;Caller data&lt;/li&gt;
&lt;li&gt;Private healthcare information&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  10. Run the Agent
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Terminal 1 — LiveKit
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;livekit-server &lt;span class="nt"&gt;--dev&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Terminal 2 — Backend
&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;backend
uv run python src/agent.py dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Terminal 3 — Frontend
&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 dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Allow microphone access and start a conversation.&lt;/p&gt;

&lt;p&gt;A simple first test is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hello Arogya, I need help finding a healthcare facility near me."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You should be able to speak with the agent and see the conversation reflected in the frontend.&lt;/p&gt;




&lt;h2&gt;
  
  
  11. What I Learned
&lt;/h2&gt;

&lt;p&gt;The biggest lesson from these 10 days is that a voice agent is much more than:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Speech → LLM → Speech
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A useful production-oriented agent needs much more:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Speech
  ↓
Understanding
  ↓
Reasoning
  ↓
Memory
  ↓
Tools
  ↓
Guardrails
  ↓
Escalation
  ↓
Specialist Handoff
  ↓
Voice Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I also learned that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Latency matters a lot more in voice than in text&lt;/li&gt;
&lt;li&gt;Tool failures need graceful handling&lt;/li&gt;
&lt;li&gt;Memory should be intentional and consent-aware&lt;/li&gt;
&lt;li&gt;Healthcare agents need strong boundaries&lt;/li&gt;
&lt;li&gt;Voice and visual interfaces should complement each other&lt;/li&gt;
&lt;li&gt;Multi-agent systems can help keep responsibilities manageable&lt;/li&gt;
&lt;li&gt;The best agent is not necessarily the one that answers everything&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;There is still a lot I would like to improve.&lt;/p&gt;

&lt;p&gt;Some of the next steps would be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Expand healthcare data coverage across more regions&lt;/li&gt;
&lt;li&gt;Add more Indian languages&lt;/li&gt;
&lt;li&gt;Improve real-world latency measurement&lt;/li&gt;
&lt;li&gt;Add stronger automated voice-agent evaluation&lt;/li&gt;
&lt;li&gt;Improve specialist routing&lt;/li&gt;
&lt;li&gt;Add more healthcare facility and appointment integrations&lt;/li&gt;
&lt;li&gt;Improve call-quality analytics&lt;/li&gt;
&lt;li&gt;Add stronger authentication and authorization&lt;/li&gt;
&lt;li&gt;Perform broader safety testing&lt;/li&gt;
&lt;li&gt;Improve production observability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The challenge gave me a strong foundation, but there is still a lot of room to turn the prototype into a more production-ready system.&lt;/p&gt;




&lt;h2&gt;
  
  
  13. The 10-Day Journey
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Day 1
Voice Agent Foundation
        ↓
Day 2
Multilingual Voice
        ↓
Day 3
Custom Healthcare UI
        ↓
Day 4
Memory &amp;amp; Personalisation
        ↓
Day 5
Healthcare Tools + MCP
        ↓
Day 6
Outbound Calls
        ↓
Day 7
Human Escalation
        ↓
Day 8
Multilingual + Low Latency
        ↓
Day 9
Specialist Agent + Handoff
        ↓
Day 10
Share the Journey
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each day added another layer to the same system instead of creating a completely separate project.&lt;/p&gt;




&lt;h2&gt;
  
  
  14. Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building Arogya over these 10 days changed the way I think about voice agents.&lt;/p&gt;

&lt;p&gt;At the beginning, the goal was simply to make a healthcare assistant that could talk.&lt;/p&gt;

&lt;p&gt;By the end, the goal had become much bigger:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can the agent understand the user, remember useful context, use real tools, know its limitations, involve humans when necessary, and delegate work to another agent?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is where voice agents become much more interesting.&lt;/p&gt;

&lt;p&gt;The challenge also gave me the opportunity to work with &lt;strong&gt;Murf Falcon&lt;/strong&gt;, which was an important part of keeping the voice experience responsive.&lt;/p&gt;

&lt;p&gt;A huge thanks to the team behind the &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/strong&gt; for the challenge.&lt;/p&gt;




&lt;h2&gt;
  
  
  Project Links
&lt;/h2&gt;

&lt;h3&gt;
  
  
  GitHub
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/Kumar-nm/murf-livekit-starter" rel="noopener noreferrer"&gt;🔗 Arogya Health Access Repository&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Screenshots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Home Page
&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%2Fawz3rtnjozb8smj5occ8.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%2Fawz3rtnjozb8smj5occ8.png" alt="Home Page" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  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%2Fx1n2kvxfug1twfc8wlw6.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%2Fx1n2kvxfug1twfc8wlw6.png" alt="Dashboard" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Analytics
&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%2Fklwmu9p1wxetxsotgciz.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%2Fklwmu9p1wxetxsotgciz.png" alt="Analytics" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Recent Calls
&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%2Fowmz6tgpwfwa8pd34tct.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%2Fowmz6tgpwfwa8pd34tct.png" alt="Recent Calls" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Escalations
&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%2Fxq2s0upyvdcznebvtcke.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%2Fxq2s0upyvdcznebvtcke.png" alt="Escalations" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Escalation Record
&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%2Fd8ozwzrgi79vlrgbyj19.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%2Fd8ozwzrgi79vlrgbyj19.png" alt="Escalation Record" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Call Restart
&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%2Fv5mn7m2ikcwbs43pt0vg.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%2Fv5mn7m2ikcwbs43pt0vg.png" alt="Call Restart" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conversation &amp;amp; Display Panel
&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%2F686nhlkbwu0ppobz9yf7.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%2F686nhlkbwu0ppobz9yf7.png" alt="Conversation and Display Panel" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Memory 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%2F7e0837kig31czuzymc8o.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%2F7e0837kig31czuzymc8o.png" alt="Memory Consent" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Day 1–9 Journey
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/kumarnm2004_voiceforbharat-voiceforbharat-murfai-activity-7491142016182116353-d3e1?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAENEqDQBB14-rq4TXaUCRRz77dlvWmXOEek" rel="noopener noreferrer"&gt;Day 1 – Foundation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/kumarnm2004_voiceforbharat-voiceforbharat-murfai-activity-7491518479939018752-uEpI?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAENEqDQBB14-rq4TXaUCRRz77dlvWmXOEek" rel="noopener noreferrer"&gt;Day 2 – Voice &amp;amp; Multilingual Experience&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/kumarnm2004_10daysofvoiceagents-voiceforbharat-murffalcon-activity-7491889318957879296-wdtQ?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAENEqDQBB14-rq4TXaUCRRz77dlvWmXOEek" rel="noopener noreferrer"&gt;Day 3 – Personalised Healthcare UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/kumarnm2004_10daysofvoiceagents-voiceforbharat-murffalcon-activity-7492214936828346368-aQ4P?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAENEqDQBB14-rq4TXaUCRRz77dlvWmXOEek" rel="noopener noreferrer"&gt;Day 4 – Agent Memory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/kumarnm2004_10daysofvoiceagents-voiceforbharat-murffalcon-activity-7492594436972142592-rKmm?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAENEqDQBB14-rq4TXaUCRRz77dlvWmXOEek" rel="noopener noreferrer"&gt;Day 5 – Healthcare Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/kumarnm2004_10daysofvoiceagents-voiceforbharat-murffalcon-activity-7492981533398573057-gWMO?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAENEqDQBB14-rq4TXaUCRRz77dlvWmXOEek" rel="noopener noreferrer"&gt;Day 6 – Outbound Calls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/kumarnm2004_10daysofvoiceagents-voiceforbharat-murffalcon-activity-7493341200746369025-UuJd?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAENEqDQBB14-rq4TXaUCRRz77dlvWmXOEek" rel="noopener noreferrer"&gt;Day 7 – Human Escalation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/kumarnm2004_10daysofaivoiceagents-10daysofvoiceagents-activity-7493669151685804033-l2UB?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAENEqDQBB14-rq4TXaUCRRz77dlvWmXOEek" rel="noopener noreferrer"&gt;Day 8 – Multilingual &amp;amp; Low-Latency Experience&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/kumarnm2004_10daysofaivoiceagents-10daysofvoiceagents-activity-7494024763665920000-mgvX?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAENEqDQBB14-rq4TXaUCRRz77dlvWmXOEek" rel="noopener noreferrer"&gt;Day 9 – Specialist Agent &amp;amp; Smart Handoff&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Built With
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://murf.ai/api/docs/text-to-speech-models/falcon-2" rel="noopener noreferrer"&gt;Murf Falcon&lt;/a&gt; · &lt;a href="https://livekit.io/" rel="noopener noreferrer"&gt;LiveKit&lt;/a&gt; · &lt;a href="https://deepgram.com/" rel="noopener noreferrer"&gt;Deepgram&lt;/a&gt; · Google Gemini · MCP · Next.js · React · Python&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition 🎙️🇮🇳&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  VoiceForBharat #10DaysofAIVoiceAgents #MurfFalcon #VoiceAI #AIAgents
&lt;/h1&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%2Fky1mjgiefnql78o2q31m.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%2Fky1mjgiefnql78o2q31m.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>10daysofaivoiceagents</category>
      <category>murffalcon</category>
      <category>voiceforbharat</category>
      <category>10daysofvoiceagents</category>
    </item>
  </channel>
</rss>
