<?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: Sudipto Bhadra</title>
    <description>The latest articles on DEV Community by Sudipto Bhadra (@sudipto_bhadra).</description>
    <link>https://dev.to/sudipto_bhadra</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%2F4078448%2Fa46a35da-64cf-46c4-b932-71e4aeff10b3.png</url>
      <title>DEV Community: Sudipto Bhadra</title>
      <link>https://dev.to/sudipto_bhadra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sudipto_bhadra"/>
    <language>en</language>
    <item>
      <title>Building Vyapar AI: My 10-Day Journey Building an Indian Voice Agent with Murf Falcon</title>
      <dc:creator>Sudipto Bhadra</dc:creator>
      <pubDate>Sat, 15 Aug 2026 05:08:12 +0000</pubDate>
      <link>https://dev.to/sudipto_bhadra/building-vyapar-ai-my-10-day-journey-building-an-indian-voice-agent-with-murf-falcon-1fef</link>
      <guid>https://dev.to/sudipto_bhadra/building-vyapar-ai-my-10-day-journey-building-an-indian-voice-agent-with-murf-falcon-1fef</guid>
      <description>&lt;p&gt;*&lt;em&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
What if a small business owner could simply speak to an AI assistant in Hindi or a mix of Indian languages and get useful business information instantly?&lt;/p&gt;

&lt;p&gt;That question led me to build Vyapar AI, an AI-powered voice assistant designed around the needs of Indian businesses.&lt;/p&gt;

&lt;p&gt;Over the last 10 days, I went from building a basic conversational voice agent to creating a system that can remember users, use tools, make outbound calls, understand when human help is needed, track conversations, and hand off conversations to specialist agents.&lt;/p&gt;

&lt;p&gt;This wasn't a smooth journey. I faced API rate limits, networking problems, unclear voice output, telephony configuration issues, and several integration challenges.&lt;/p&gt;

&lt;p&gt;But those problems became some of the most valuable parts of the project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 What is Vyapar AI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Vyapar AI is an Indian-focused AI voice assistant designed to help business users interact with information and services through natural voice conversations.&lt;/p&gt;

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

&lt;p&gt;Make business assistance as easy as talking to another person.&lt;/p&gt;

&lt;p&gt;Instead of opening dashboards, searching through menus, or typing complicated queries, a user can simply speak.&lt;/p&gt;

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

&lt;p&gt;User:&lt;br&gt;
"आज गेहूं के आटे का भाव क्या है?"&lt;/p&gt;

&lt;p&gt;Vyapar AI:&lt;br&gt;
"आज के अपडेट के अनुसार गेहूं का आटा 45 रुपये प्रति किलो है।"&lt;/p&gt;

&lt;p&gt;The idea is especially useful for users who are more comfortable speaking than typing, particularly in Indian-language and code-mixed conversations&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Why Voice?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Traditional applications expect users to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open an application.&lt;/li&gt;
&lt;li&gt;Find the correct section&lt;/li&gt;
&lt;li&gt;Search for information&lt;/li&gt;
&lt;li&gt;Read the result&lt;/li&gt;
&lt;li&gt;Take action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Voice can reduce that friction.&lt;br&gt;
With a voice interface, the interaction becomes:&lt;/p&gt;

&lt;p&gt;Speak → Understand → Process → Respond&lt;/p&gt;

&lt;p&gt;For business users working on the move, managing shops, handling customers, or working with operational information, this can be much more natural.&lt;/p&gt;

&lt;p&gt;And for India, voice has another important advantage:&lt;/p&gt;

&lt;p&gt;Language.&lt;/p&gt;

&lt;p&gt;People don't always communicate in formal English.&lt;/p&gt;

&lt;p&gt;They may use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hindi&lt;/li&gt;
&lt;li&gt;English&lt;/li&gt;
&lt;li&gt;Hinglish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's why I wanted Vyapar AI to feel like a practical Indian business assistant rather than simply another English-speaking chatbot.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;🏗️ What I Built During the 10 Days&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
The project evolved step by step.&lt;/p&gt;

&lt;p&gt;Day 1–2: The Foundation&lt;/p&gt;

&lt;p&gt;I started with the basic voice-agent architecture and defined:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personality&lt;/li&gt;
&lt;li&gt;Objectives&lt;/li&gt;
&lt;li&gt;Conversation behavior&lt;/li&gt;
&lt;li&gt;Safety guardrails&lt;/li&gt;
&lt;li&gt;Response style&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to make Vyapar AI helpful but also predictable.&lt;/p&gt;

&lt;p&gt;🇮🇳 Indian Voice with Murf Falcon&lt;/p&gt;

&lt;p&gt;One of the most important parts of the project was the voice itself.&lt;/p&gt;

&lt;p&gt;I used Murf Falcon, a fast TTS API, to give Vyapar AI a natural Indian voice.&lt;/p&gt;

&lt;p&gt;The voice is not just an output layer.&lt;/p&gt;

&lt;p&gt;For a voice agent, the voice is part of the user experience.&lt;/p&gt;

&lt;p&gt;A robotic or unnatural voice can make even a technically powerful agent difficult to use.&lt;/p&gt;

&lt;p&gt;Murf Falcon helped me create a more natural conversational experience for Indian users.&lt;/p&gt;

&lt;p&gt;🧠 Speech-to-Text + LLM + Text-to-Speech&lt;/p&gt;

&lt;p&gt;The core voice pipeline looks like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          USER
            │
            ▼
    🎤 Microphone Input
            │
            ▼
    Speech-to-Text
      (Deepgram)
            │
            ▼
         LLM
    (Reasoning Layer)
            │
    ┌───────┴────────┐
    │                │
    ▼                ▼
 Tools           Memory
    │                │
    └───────┬────────┘
            ▼
    Response Generation
            │
            ▼
    Text-to-Speech
    (Murf Falcon)
            │
            ▼
         🔊 Voice
            │
            ▼
          USER
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Real-time communication is handled through LiveKit.&lt;/p&gt;

&lt;p&gt;So the major components are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speech-to-Text: Deepgram&lt;/li&gt;
&lt;li&gt;LLM: reasoning and conversation&lt;/li&gt;
&lt;li&gt;Text-to-Speech: Murf Falcon&lt;/li&gt;
&lt;li&gt;Real-time transport: LiveKit&lt;/li&gt;
&lt;li&gt;Tools: business data and actions&lt;/li&gt;
&lt;li&gt;Memory: returning-user context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🧩 Giving the Agent a Personality&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the first lessons I learned was that a voice agent needs more than an API connection.&lt;/p&gt;

&lt;p&gt;It needs a clear role.&lt;/p&gt;

&lt;p&gt;I defined Vyapar AI's:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personality&lt;/li&gt;
&lt;li&gt;Objectives&lt;/li&gt;
&lt;li&gt;Conversation style&lt;/li&gt;
&lt;li&gt;Language behavior&lt;/li&gt;
&lt;li&gt;Safety boundaries&lt;/li&gt;
&lt;li&gt;Tool usage rules&lt;/li&gt;
&lt;li&gt;Escalation rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also configured it to respond naturally in Hindi when appropriate instead of defaulting to English.&lt;/p&gt;

&lt;p&gt;This made a huge difference to the overall experience.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;💾 Giving Vyapar AI Memory&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
A useful assistant should not behave as if every conversation is the first conversation.&lt;/p&gt;

&lt;p&gt;I added memory so the agent can retain useful information about returning users.&lt;/p&gt;

&lt;p&gt;The basic concept is:&lt;/p&gt;

&lt;p&gt;User&lt;br&gt;
  │&lt;br&gt;
  ▼&lt;br&gt;
Conversation&lt;br&gt;
  │&lt;br&gt;
  ▼&lt;br&gt;
Important information&lt;br&gt;
  │&lt;br&gt;
  ▼&lt;br&gt;
Memory Storage&lt;br&gt;
  │&lt;br&gt;
  ▼&lt;br&gt;
Future Conversation&lt;br&gt;
  │&lt;br&gt;
  ▼&lt;br&gt;
Personalized Response&lt;/p&gt;

&lt;p&gt;This transforms the agent from a simple chatbot into something closer to an assistant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Giving the Agent Tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An LLM alone doesn't automatically know the latest business information.&lt;/p&gt;

&lt;p&gt;So instead of asking the model to invent an answer, I connected it to tools.&lt;/p&gt;

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

&lt;p&gt;User asks for business information&lt;br&gt;
            ↓&lt;br&gt;
Agent understands intent&lt;br&gt;
            ↓&lt;br&gt;
Agent calls appropriate tool&lt;br&gt;
            ↓&lt;br&gt;
Tool retrieves/produces data&lt;br&gt;
            ↓&lt;br&gt;
Agent explains result&lt;br&gt;
            ↓&lt;br&gt;
Murf converts response to speech&lt;/p&gt;

&lt;p&gt;One example from my testing was a product-price lookup.&lt;/p&gt;

&lt;p&gt;The agent could call a tool such as:&lt;/p&gt;

&lt;p&gt;lookup_product_inventory()&lt;/p&gt;

&lt;p&gt;and then communicate the result naturally.&lt;/p&gt;

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

&lt;p&gt;A good AI agent isn't just an LLM. It's an LLM connected to the right tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📞 Outbound Calls&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I also explored outbound calling.&lt;/p&gt;

&lt;p&gt;The idea was to allow Vyapar AI to initiate a call rather than only waiting for a user to connect.&lt;/p&gt;

&lt;p&gt;This introduced a completely different set of challenges.&lt;/p&gt;

&lt;p&gt;The architecture becomes:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        Vyapar AI
           │
           ▼
       Telephony
           │
           ▼
  Phone/SIP connection
          │
          ▼
         User
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I experimented with telephony integrations and faced configuration issues involving SIP, phone numbers, trunks, and connection settings.&lt;/p&gt;

&lt;p&gt;This was one of the most technically challenging parts of the project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧑‍💼 Knowing When to Ask for Human Help&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An AI agent shouldn't try to solve everything.&lt;/p&gt;

&lt;p&gt;Sometimes the correct 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 mechanism so the agent can recognize situations where human assistance is appropriate.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;            User request
                 ↓
        Can AI safely handle it?
                 │
               ┌─┴─┐
              YES  NO
               │    │
               ▼    ▼
           Respond Request Human Help
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This is important for real-world AI systems because reliability isn't only about answering questions.&lt;/p&gt;

&lt;p&gt;Sometimes reliability means knowing when not to answer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📊 Call Analytics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another important part of the project was understanding what happened during conversations.&lt;/p&gt;

&lt;p&gt;A voice system becomes much more useful when we can analyze:&lt;/p&gt;

&lt;p&gt;Number of calls&lt;br&gt;
Conversation outcomes&lt;br&gt;
User requests&lt;br&gt;
Escalations&lt;br&gt;
Agent performance&lt;br&gt;
Call duration&lt;br&gt;
Successful interactions&lt;/p&gt;

&lt;p&gt;This led me toward a call analytics dashboard where conversation outcomes can be visualized.&lt;/p&gt;

&lt;p&gt;For a production system, analytics would be essential for improving the agent over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 Specialist Agent Handoff&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of my final major features was specialist-agent handoff.&lt;/p&gt;

&lt;p&gt;A single agent shouldn't have to be an expert in everything.&lt;/p&gt;

&lt;p&gt;Instead:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                Main Agent
                    │
          Understands User Intent
                    │
      ┌─────────────┼─────────────┐
      │             │             │
      ▼             ▼             ▼
   General       Sales         Support
    Agent        Agent          Agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The main agent can handle normal conversations and transfer the conversation when a specialist is more appropriate.&lt;/p&gt;

&lt;p&gt;This creates a more scalable architecture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;😅 The Difficult Parts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The most valuable lessons came from things that didn't work.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LLM Rate Limits&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;During development, I encountered rate-limit problems while using an LLM API.&lt;/p&gt;

&lt;p&gt;At one point, the available token limit was nearly exhausted.&lt;/p&gt;

&lt;p&gt;The result was frustrating:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      User speaks
        ↓
      STT works
        ↓
     LLM request
        ↓
    ❌ Rate Limit
        ↓
     No response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This taught me that building an AI application isn't just about writing prompts.&lt;/p&gt;

&lt;p&gt;You also have to think about:&lt;/p&gt;

&lt;p&gt;Token consumption&lt;br&gt;
Rate limits&lt;br&gt;
Fallback models&lt;br&gt;
Error handling&lt;br&gt;
Request frequency&lt;br&gt;
Production quotas&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Telephony and SIP Problems&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Outbound calling was another difficult area.&lt;/p&gt;

&lt;p&gt;I encountered issues involving:&lt;/p&gt;

&lt;p&gt;SIP configuration&lt;br&gt;
Trunk configuration&lt;br&gt;
Caller identity&lt;br&gt;
Connection errors&lt;br&gt;
Network/DNS issues&lt;/p&gt;

&lt;p&gt;Some errors were caused by configuration rather than the agent code itself.&lt;/p&gt;

&lt;p&gt;This taught me to separate problems into layers:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;     Application
         ↓
     AI / LLM
         ↓
       Voice
         ↓
   Real-time transport
         ↓
     Telephony
         ↓
      Network
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;When something fails, identifying the correct layer makes debugging much easier.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Voice Quality&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;At one point, the voice sounded slightly unclear or disturbing.&lt;/p&gt;

&lt;p&gt;Initially, it was tempting to assume that the TTS system itself was the problem.&lt;/p&gt;

&lt;p&gt;But voice quality can depend on multiple factors:&lt;/p&gt;

&lt;p&gt;Network latency&lt;br&gt;
Audio streaming&lt;br&gt;
STT latency&lt;br&gt;
TTS generation&lt;br&gt;
Browser/device audio&lt;br&gt;
Packet loss&lt;br&gt;
Real-time transport&lt;/p&gt;

&lt;p&gt;This taught me that a voice agent needs to be tested under real conversational conditions, not just with a single successful response.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Getting the Language Right&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Another challenge was making the agent consistently respond in the desired Indian language.&lt;/p&gt;

&lt;p&gt;A voice agent may have:&lt;/p&gt;

&lt;p&gt;Indian TTS&lt;br&gt;
+&lt;br&gt;
Indian user&lt;/p&gt;

&lt;p&gt;but still produce an English response if the system instructions aren't clear.&lt;/p&gt;

&lt;p&gt;I therefore had to carefully define language behavior and conversation rules.&lt;/p&gt;

&lt;p&gt;The result was a much more natural experience for Hindi and code-mixed interactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔐 Security Lesson&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One rule I learned during the challenge is extremely important:&lt;/p&gt;

&lt;p&gt;Never publish API keys or private user information in a public repository.&lt;/p&gt;

&lt;p&gt;API keys should be stored in environment variables.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
MURF_API_KEY=your_key_here&lt;br&gt;
DEEPGRAM_API_KEY=your_key_here&lt;br&gt;
LLM_API_KEY=your_key_here&lt;/p&gt;

&lt;p&gt;The actual .env file should never be committed.&lt;/p&gt;

&lt;p&gt;Instead, provide something like:&lt;/p&gt;

&lt;p&gt;.env.example&lt;/p&gt;

&lt;p&gt;containing placeholders.&lt;/p&gt;

&lt;p&gt;Also never publish:&lt;/p&gt;

&lt;p&gt;API keys&lt;br&gt;
Phone numbers&lt;br&gt;
Caller information&lt;br&gt;
Personal user data&lt;br&gt;
Private logs&lt;br&gt;
Authentication tokens&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 How to Build Your Own Voice Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to build a similar project, start with four core components.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Speech-to-Text&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Converts the user's speech into text.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;🎤 "आज की बिक्री कितनी है?"&lt;br&gt;
             ↓&lt;br&gt;
"आज की बिक्री कितनी है?"&lt;/p&gt;

&lt;p&gt;I used Deepgram for speech recognition.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LLM&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The LLM understands the user's intent and decides what to do.&lt;/p&gt;

&lt;p&gt;It can:&lt;/p&gt;

&lt;p&gt;Answer questions&lt;br&gt;
Call tools&lt;br&gt;
Use memory&lt;br&gt;
Ask follow-up questions&lt;br&gt;
Escalate to humans&lt;br&gt;
Hand off to specialists&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Text-to-Speech&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The response from the LLM needs to become audio.&lt;/p&gt;

&lt;p&gt;I used Murf Falcon for this layer.&lt;/p&gt;

&lt;p&gt;LLM Response&lt;br&gt;
     ↓&lt;br&gt;
Murf Falcon&lt;br&gt;
     ↓&lt;br&gt;
🔊 Natural Voice&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Real-Time Transport&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The system needs to move audio between the user and the agent in real time.&lt;/p&gt;

&lt;p&gt;I used LiveKit for the real-time communication layer.&lt;/p&gt;

&lt;p&gt;⚙️ Basic Project Setup&lt;/p&gt;

&lt;p&gt;My development environment used Python and a LiveKit-based voice-agent structure.&lt;/p&gt;

&lt;p&gt;A simplified workflow looks like:&lt;/p&gt;

&lt;p&gt;git clone &lt;/p&gt;

&lt;p&gt;cd vyapar-ai&lt;/p&gt;

&lt;p&gt;uv sync&lt;/p&gt;

&lt;p&gt;Create your environment file:&lt;/p&gt;

&lt;p&gt;cp .env.example .env&lt;/p&gt;

&lt;p&gt;Then add your API keys:&lt;/p&gt;

&lt;p&gt;MURF_API_KEY=...&lt;br&gt;
DEEPGRAM_API_KEY=...&lt;br&gt;
LLM_API_KEY=...&lt;/p&gt;

&lt;p&gt;Never commit .env.&lt;/p&gt;

&lt;p&gt;Then start the agent using the project's development command, for example:&lt;/p&gt;

&lt;p&gt;uv run python src/agent.py dev&lt;/p&gt;

&lt;p&gt;The exact command may vary depending on your project configuration.&lt;/p&gt;

&lt;p&gt;🧪 Testing the Agent&lt;/p&gt;

&lt;p&gt;Don't test only with:&lt;/p&gt;

&lt;p&gt;"Hello"&lt;/p&gt;

&lt;p&gt;Use realistic scenarios.&lt;/p&gt;

&lt;p&gt;Test 1 — Normal Query&lt;/p&gt;

&lt;p&gt;User:&lt;br&gt;
"आज गेहूं के आटे का भाव क्या है?"&lt;/p&gt;

&lt;p&gt;Expected:&lt;/p&gt;

&lt;p&gt;The agent calls the appropriate business-data tool and provides the result.&lt;/p&gt;

&lt;p&gt;Test 2 — Memory&lt;/p&gt;

&lt;p&gt;User:&lt;br&gt;
"My name is Rahul."&lt;/p&gt;

&lt;p&gt;Later:&lt;/p&gt;

&lt;p&gt;User:&lt;br&gt;
"What is my name?"&lt;/p&gt;

&lt;p&gt;Expected:&lt;/p&gt;

&lt;p&gt;The agent retrieves the remembered information.&lt;/p&gt;

&lt;p&gt;Test 3 — Human Escalation&lt;/p&gt;

&lt;p&gt;User:&lt;br&gt;
"I need help with something that requires a human."&lt;/p&gt;

&lt;p&gt;Expected:&lt;/p&gt;

&lt;p&gt;The agent recognizes that human intervention is appropriate.&lt;/p&gt;

&lt;p&gt;Test 4 — Specialist Handoff&lt;/p&gt;

&lt;p&gt;User:&lt;br&gt;
"I need detailed help regarding a specialized business issue."&lt;/p&gt;

&lt;p&gt;Expected:&lt;/p&gt;

&lt;p&gt;The main agent transfers the conversation to the appropriate specialist.&lt;/p&gt;

&lt;p&gt;Testing these scenarios helped me identify problems that wouldn't appear during basic testing.&lt;/p&gt;

&lt;p&gt;🏛️ Final Architecture&lt;/p&gt;

&lt;p&gt;The overall architecture of Vyapar AI can be represented like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                     ┌──────────────┐
                     │     USER     │
                     └──────┬───────┘
                            │
                     Voice / Audio
                            │
                            ▼
                   ┌─────────────────┐
                   │     LiveKit     │
                   │ Real-Time Layer │
                   └────────┬────────┘
                            │
                            ▼
                   ┌─────────────────┐
                   │   Deepgram STT  │
                   └────────┬────────┘
                            │
                            ▼
                   ┌─────────────────┐
                   │   Main Agent    │
                   │      LLM        │
                   └───┬────┬────┬───┘
                       │    │    │
          ┌────────────┘    │    └────────────┐
          ▼                 ▼                 ▼
      ┌────────┐       ┌────────┐       ┌───────────┐
      │ Memory │       │ Tools  │       │ Specialist│
      └────────┘       └────────┘       │  Agent    │
                                         └───────────┘
                       │
                       ▼
                ┌──────────────┐
                │ Murf Falcon  │
                │     TTS      │
                └──────┬───────┘
                       │
                       ▼
                     🔊 USER
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Around this core system, I also built capabilities for:&lt;/p&gt;

&lt;p&gt;Outbound calls&lt;br&gt;
Human escalation&lt;br&gt;
Call outcomes&lt;br&gt;
Analytics&lt;br&gt;
Personalization&lt;br&gt;
Indian-language conversations&lt;br&gt;
📈 What I Learned&lt;/p&gt;

&lt;p&gt;The biggest lesson from these 10 days is that building a voice agent is much more than connecting an LLM to a microphone.&lt;/p&gt;

&lt;p&gt;A production-quality voice agent needs:&lt;/p&gt;

&lt;p&gt;Voice + Intelligence + Tools + Memory + Guardrails + Real-Time Infrastructure + Observability&lt;/p&gt;

&lt;p&gt;I also learned that failures are part of the development process.&lt;/p&gt;

&lt;p&gt;Rate limits taught me about scalability.&lt;/p&gt;

&lt;p&gt;SIP problems taught me about infrastructure.&lt;/p&gt;

&lt;p&gt;Voice-quality problems taught me about real-time systems.&lt;/p&gt;

&lt;p&gt;Language issues taught me about prompt design.&lt;/p&gt;

&lt;p&gt;Specialist handoffs taught me about agent architecture.&lt;/p&gt;

&lt;p&gt;And human escalation taught me that a good AI system should know its limits.&lt;/p&gt;

&lt;p&gt;🇮🇳 Why I Built It for Bharat&lt;/p&gt;

&lt;p&gt;India has an enormous opportunity for voice-first AI.&lt;/p&gt;

&lt;p&gt;People shouldn't need to become experts at using software to benefit from AI.&lt;/p&gt;

&lt;p&gt;They should be able to simply speak.&lt;/p&gt;

&lt;p&gt;That is the vision behind Vyapar AI:&lt;/p&gt;

&lt;p&gt;Making AI-powered business assistance more natural, accessible, and voice-first for Indian users.&lt;/p&gt;

&lt;p&gt;There is still a lot more I want to build—better regional-language support, stronger business integrations, improved analytics, more reliable telephony, and production-grade scaling.&lt;/p&gt;

&lt;p&gt;But this 10-day challenge gave me the foundation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔗 Project &amp;amp; Demo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repository:&lt;a href="https://github.com/SUDIPTO-2005/Murf-AI" rel="noopener noreferrer"&gt;https://github.com/SUDIPTO-2005/Murf-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LinkedIn:&lt;a href="http://www.linkedin.com/in/sudipto-bhadra" rel="noopener noreferrer"&gt;www.linkedin.com/in/sudipto-bhadra&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before publishing the repository, make sure all API keys, phone numbers, caller data, tokens, and private credentials have been removed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🙌 Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ten days ago, I started with the goal of building a voice agent.&lt;/p&gt;

&lt;p&gt;Today, Vyapar AI can do much more than simply talk.&lt;/p&gt;

&lt;p&gt;It can:&lt;/p&gt;

&lt;p&gt;🎙️ Understand spoken conversations&lt;br&gt;
🇮🇳 Support Indian-language interactions&lt;br&gt;
🧠 Remember users&lt;br&gt;
🛠️ Use tools&lt;br&gt;
📞 Make outbound calls&lt;br&gt;
🧑‍💼 Escalate to humans&lt;br&gt;
📊 Track call outcomes&lt;br&gt;
🤖 Hand conversations to specialist agents&lt;br&gt;
🔊 Respond using Murf Falcon&lt;/p&gt;

&lt;p&gt;The most important thing I gained from this challenge wasn't just a working project.&lt;/p&gt;

&lt;p&gt;It was an understanding of how voice AI systems are actually built, debugged, tested, and improved.&lt;/p&gt;

&lt;p&gt;Thank you to Murf AI for creating the 10 Days of Voice Agents — VoiceForBharat Edition challenge.&lt;/p&gt;

&lt;p&gt;This is only the beginning of &lt;strong&gt;Vyapar AI&lt;/strong&gt;. 🚀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built with:&lt;br&gt;
Murf Falcon • LiveKit • Deepgram • LLMs • Python&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  VoiceForBharat #MurfAI #VoiceAI #GenerativeAI #AI #ArtificialIntelligence #IndianAI #VoiceAgents #Python #LiveKit
&lt;/h1&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
