<?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: ADVAITA SINGH</title>
    <description>The latest articles on DEV Community by ADVAITA SINGH (@advaitashub).</description>
    <link>https://dev.to/advaitashub</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%2F4078570%2F13106f86-dbc2-48b1-8b07-5941544e000c.png</url>
      <title>DEV Community: ADVAITA SINGH</title>
      <link>https://dev.to/advaitashub</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/advaitashub"/>
    <language>en</language>
    <item>
      <title>hi</title>
      <dc:creator>ADVAITA SINGH</dc:creator>
      <pubDate>Sat, 15 Aug 2026 10:47:25 +0000</pubDate>
      <link>https://dev.to/advaitashub/hi-21jj</link>
      <guid>https://dev.to/advaitashub/hi-21jj</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/advaitashub/from-im-not-ready-to-building-a-voice-agent-my-10-day-ai-journey-35de" class="crayons-story__hidden-navigation-link"&gt;From “I’m Not Ready” to Building a Voice Agent: My 10-Day AI Journey&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/advaitashub" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F4078570%2F13106f86-dbc2-48b1-8b07-5941544e000c.png" alt="advaitashub profile" class="crayons-avatar__image" width="420" height="420"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/advaitashub" class="crayons-story__secondary fw-medium m:hidden"&gt;
              ADVAITA SINGH
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                ADVAITA SINGH
                
                
              
              &lt;div id="story-author-preview-content-4401997" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/advaitashub" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F4078570%2F13106f86-dbc2-48b1-8b07-5941544e000c.png" class="crayons-avatar__image" alt="" width="420" height="420"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;ADVAITA SINGH&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/advaitashub/from-im-not-ready-to-building-a-voice-agent-my-10-day-ai-journey-35de" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 15&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/advaitashub/from-im-not-ready-to-building-a-voice-agent-my-10-day-ai-journey-35de" id="article-link-4401997"&gt;
          From “I’m Not Ready” to Building a Voice Agent: My 10-Day AI Journey
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/learning"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;learning&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/advaitashub/from-im-not-ready-to-building-a-voice-agent-my-10-day-ai-journey-35de#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            12 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>From “I’m Not Ready” to Building a Voice Agent: My 10-Day AI Journey</title>
      <dc:creator>ADVAITA SINGH</dc:creator>
      <pubDate>Sat, 15 Aug 2026 10:44:23 +0000</pubDate>
      <link>https://dev.to/advaitashub/from-im-not-ready-to-building-a-voice-agent-my-10-day-ai-journey-35de</link>
      <guid>https://dev.to/advaitashub/from-im-not-ready-to-building-a-voice-agent-my-10-day-ai-journey-35de</guid>
      <description>&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%2Fadxqgpjc4vjd8aay77yw.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%2Fadxqgpjc4vjd8aay77yw.png" alt=" " width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I used to be the person who would see an AI challenge and think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“This looks interesting... but what if I don't know enough to do it?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I would learn something first, wait until I felt “ready”, and then maybe build something later.&lt;/p&gt;

&lt;p&gt;Spoiler: &lt;strong&gt;later rarely came.😭&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That changed when I joined the &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/strong&gt; challenge by Murf AI.&lt;/p&gt;

&lt;p&gt;For 10 days, I worked on a voice agent called &lt;strong&gt;CashCompass&lt;/strong&gt;, a voice-based financial mentor built for the Financial Services track.&lt;/p&gt;

&lt;p&gt;And honestly, the biggest thing I built wasn't just the agent.&lt;/p&gt;

&lt;p&gt;It was the &lt;strong&gt;confidence&lt;/strong&gt; to actually build.&lt;/p&gt;

&lt;p&gt;Before this challenge, I had never seriously participated in a challenge like this. I was always a little afraid of getting stuck, breaking something, or realizing halfway through that I didn't understand what I was doing.&lt;/p&gt;

&lt;p&gt;And yes, I got stuck.&lt;/p&gt;

&lt;p&gt;A lot.&lt;/p&gt;

&lt;p&gt;There were errors, confusing logs, configuration problems, things that worked but didn't behave the way I expected, and at least a few moments where I stared at my screen wondering whether the code was personally attacking me.&lt;/p&gt;

&lt;p&gt;But that was exactly what made this challenge useful.&lt;/p&gt;

&lt;p&gt;I wasn't just learning about AI agents anymore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I was actually building one.&lt;/strong&gt;&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%2Fdxthi1hpw8oaa948vq1r.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%2Fdxthi1hpw8oaa948vq1r.png" alt=" " width="799" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  1. The Problem: Financial Decisions Can Be Confusing
&lt;/h1&gt;

&lt;p&gt;I chose the &lt;strong&gt;Financial Services&lt;/strong&gt; track because financial decisions are something almost everyone eventually has to deal with.&lt;/p&gt;

&lt;p&gt;Someone gets their first salary.&lt;/p&gt;

&lt;p&gt;They want to start saving.&lt;/p&gt;

&lt;p&gt;They don't know whether to keep money in a savings account, invest it, look into a government scheme, or simply figure out where their money is disappearing every month.&lt;/p&gt;

&lt;p&gt;The information exists.&lt;/p&gt;

&lt;p&gt;The problem is that finding it, understanding it, and knowing what applies to you can be overwhelming.&lt;/p&gt;

&lt;p&gt;That's where I wanted CashCompass to help.&lt;/p&gt;

&lt;p&gt;CashCompass is a &lt;strong&gt;voice financial mentor designed for everyday financial conversations&lt;/strong&gt;, especially for young professionals and people who may find speaking more natural than navigating complicated forms or dashboards.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“Open this website → find this section → read five paragraphs → search another website → get confused.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;the idea is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Just talk to it.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And this is where voice becomes interesting.&lt;/p&gt;

&lt;p&gt;A voice interface feels much closer to having an actual conversation with someone.&lt;/p&gt;

&lt;p&gt;You can ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I just started earning. How should I start managing my money?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You don't need to know the exact terminology.&lt;/p&gt;

&lt;p&gt;You don't need to formulate a perfect prompt.&lt;/p&gt;

&lt;p&gt;You just speak.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. Meet CashCompass
&lt;/h1&gt;

&lt;p&gt;The goal wasn't to make a chatbot that simply speaks its answers aloud.&lt;/p&gt;

&lt;p&gt;I wanted to understand what makes an agent actually &lt;strong&gt;agentic&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So throughout the challenge, CashCompass evolved from a basic voice interaction into a system with multiple capabilities.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Understand spoken input using &lt;strong&gt;Deepgram STT&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Reason using &lt;strong&gt;Gemini&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Respond using &lt;strong&gt;Murf Falcon&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Maintain a defined personality and objectives&lt;/li&gt;
&lt;li&gt;Follow financial safety &lt;strong&gt;guardrails&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Handle &lt;strong&gt;multilingual&lt;/strong&gt; and code-mixed conversations&lt;/li&gt;
&lt;li&gt;Remember &lt;strong&gt;approved&lt;/strong&gt; user information&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;tools&lt;/strong&gt; to fetch useful financial information&lt;/li&gt;
&lt;li&gt;Make &lt;strong&gt;outbound calls&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escalate&lt;/strong&gt; conversations when human help is needed&lt;/li&gt;
&lt;li&gt;Track call outcomes&lt;/li&gt;
&lt;li&gt;Hand conversations to &lt;strong&gt;specialist agents&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That list looks simple when written like this.&lt;/p&gt;

&lt;p&gt;Building each piece was a different story.&lt;/p&gt;




&lt;h1&gt;
  
  
  3. So... How Does a Voice Agent Actually Work?
&lt;/h1&gt;

&lt;p&gt;Before this challenge, I understood the individual technologies.&lt;/p&gt;

&lt;p&gt;Speech-to-text.&lt;/p&gt;

&lt;p&gt;LLMs.&lt;/p&gt;

&lt;p&gt;Text-to-speech.&lt;/p&gt;

&lt;p&gt;APIs.&lt;/p&gt;

&lt;p&gt;Databases.&lt;/p&gt;

&lt;p&gt;But understanding the pieces individually is very different from making them work together in real time.&lt;/p&gt;

&lt;p&gt;The basic architecture of &lt;strong&gt;CashCompass&lt;/strong&gt; looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 ┌─────────────────┐
                 │      User       │
                 │  Voice / Phone  │
                 └────────┬────────┘
                          │
                          ▼
                 ┌─────────────────┐
                 │     LiveKit     │
                 │ Real-time audio │
                 └────────┬────────┘
                          │
                          ▼
                 ┌─────────────────┐
                 │   Deepgram STT  │
                 │ Speech → Text   │
                 └────────┬────────┘
                          │
                          ▼
                 ┌─────────────────┐
                 │      Gemini     │
                 │   Agent Brain   │
                 └───────┬─────────┘
                         │
            ┌────────────┼────────────┐
            ▼            ▼            ▼
       ┌─────────┐  ┌──────────┐  ┌──────────┐
       │ Memory  │  │  Tools   │  │ Handoff  │
       └─────────┘  └──────────┘  └──────────┘
                         │
                         ▼
                 ┌─────────────────┐
                 │   Murf Falcon   │
                 │  Text → Speech  │
                 └────────┬────────┘
                          │
                          ▼
                       User
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In simple terms:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User speaks → speech becomes text → the agent decides what to do → tools/memory may be used → response becomes speech → user hears it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And all of this has to happen fast enough that it feels like a conversation rather than a very slow walkie-talkie.&lt;/p&gt;

&lt;p&gt;That's where &lt;strong&gt;LiveKit&lt;/strong&gt; became important.&lt;/p&gt;




&lt;h1&gt;
  
  
  4. The Voice Stack
&lt;/h1&gt;

&lt;p&gt;My core stack included:&lt;/p&gt;

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

&lt;p&gt;Deepgram handled the conversion from the user's speech into text.&lt;/p&gt;

&lt;p&gt;This gave the LLM something it could actually process.&lt;/p&gt;

&lt;h3&gt;
  
  
  LLM — Gemini
&lt;/h3&gt;

&lt;p&gt;Gemini was responsible for reasoning, deciding how to respond, following instructions, and interacting with tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Text-to-Speech — Murf Falcon
&lt;/h3&gt;

&lt;p&gt;Murf Falcon handled the voice output.&lt;/p&gt;

&lt;p&gt;One of the fun parts of this challenge was making the agent sound more natural and appropriate for an Indian audience rather than just making it technically functional.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real-time transport — LiveKit
&lt;/h3&gt;

&lt;p&gt;LiveKit handled the real-time voice communication layer.&lt;/p&gt;

&lt;p&gt;And this was one of the things I didn't fully appreciate before actually building a voice agent:&lt;/p&gt;

&lt;p&gt;A voice agent isn't just an LLM with a microphone attached.&lt;/p&gt;

&lt;p&gt;You are dealing with &lt;strong&gt;audio streams, turn detection, latency, interruptions, transport, speech recognition, response generation, and speech synthesis&lt;/strong&gt; at the same time.&lt;/p&gt;

&lt;p&gt;Basically, the LLM is only one piece of the puzzle.&lt;/p&gt;




&lt;h1&gt;
  
  
  5. Giving the Agent a Personality and Guardrails
&lt;/h1&gt;

&lt;p&gt;One of the first things I learned was that putting an LLM behind a microphone doesn't automatically give you a useful agent.&lt;/p&gt;

&lt;p&gt;You have to define:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What the agent is supposed to do&lt;/li&gt;
&lt;li&gt;What it should not do&lt;/li&gt;
&lt;li&gt;How it should communicate&lt;/li&gt;
&lt;li&gt;What information it can remember&lt;/li&gt;
&lt;li&gt;When it should ask for help&lt;/li&gt;
&lt;li&gt;When it should stop and hand the conversation to someone else&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For &lt;strong&gt;CashCompass&lt;/strong&gt;, I created a defined personality and objectives around being a helpful financial mentor.&lt;/p&gt;

&lt;p&gt;But financial conversations also require boundaries.&lt;/p&gt;

&lt;p&gt;The agent shouldn't casually behave like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I know everything about finance. Do exactly what I say.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's exactly the kind of confidence an AI agent should &lt;strong&gt;not&lt;/strong&gt; have.&lt;/p&gt;

&lt;p&gt;The goal was to keep the agent useful while avoiding unsupported or overly authoritative financial recommendations.&lt;/p&gt;

&lt;p&gt;This was one of my first practical lessons about &lt;strong&gt;AI guardrails&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The model being capable doesn't mean you should let it do everything it is capable of doing.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  6. Making the Agent Remember Users
&lt;/h1&gt;

&lt;p&gt;One feature I particularly enjoyed building was memory.&lt;/p&gt;

&lt;p&gt;A returning user shouldn't necessarily have to start from zero every time.&lt;/p&gt;

&lt;p&gt;For example, the agent could remember approved information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The user's name&lt;/li&gt;
&lt;li&gt;A financial goal&lt;/li&gt;
&lt;li&gt;A preferred language&lt;/li&gt;
&lt;li&gt;Previously explored schemes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But there was an important rule:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory should not silently become a personal-data dumping ground.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So, I implemented &lt;strong&gt;consent-based memory.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The agent can identify useful information, ask the user whether it should be remembered, and save it only after explicit approval.&lt;/p&gt;

&lt;p&gt;This was another part of the challenge where the difference between “I know what memory is” and “I have actually implemented memory” became very obvious.&lt;/p&gt;

&lt;p&gt;Before this challenge, I had read about memory in agent systems.&lt;/p&gt;

&lt;p&gt;After building it, I started thinking about questions like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What exactly should be stored?&lt;/p&gt;

&lt;p&gt;When should it be stored?&lt;/p&gt;

&lt;p&gt;Who decides?&lt;/p&gt;

&lt;p&gt;What happens if the user doesn't consent?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's a much more useful understanding.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. Giving the Agent Tools
&lt;/h1&gt;

&lt;p&gt;An LLM by itself doesn't magically know the latest structured information you want it to retrieve.&lt;/p&gt;

&lt;p&gt;That's where tools come in.&lt;/p&gt;

&lt;p&gt;I added a &lt;strong&gt;financial scheme finder tool&lt;/strong&gt; so the agent could search for relevant government financial schemes based on a user's situation.&lt;/p&gt;

&lt;p&gt;This changed the way I thought about agents.&lt;/p&gt;

&lt;p&gt;There is a big difference between:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Here is an LLM. Ask it questions.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Here is an agent that can reason and take actions using external tools.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The second one starts to feel much more like an actual system.&lt;/p&gt;

&lt;p&gt;I also separated tool-related logic from the main agent code instead of putting everything into one giant file.&lt;/p&gt;

&lt;p&gt;That sounds like a small engineering decision.&lt;/p&gt;

&lt;p&gt;It wasn't.&lt;/p&gt;

&lt;p&gt;When the project started growing, I realized very quickly that dumping everything into &lt;code&gt;agent.py&lt;/code&gt; is a great way to &lt;strong&gt;make future-you regret your decisions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Future-you is not your friend.&lt;/p&gt;

&lt;p&gt;Future-you is going to be pissed about all the shortcuts you took today.😂&lt;/p&gt;




&lt;h1&gt;
  
  
  8. Outbound Calls
&lt;/h1&gt;

&lt;p&gt;Then things got more interesting.&lt;/p&gt;

&lt;p&gt;The challenge also introduced &lt;strong&gt;outbound calling&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of waiting for the user to initiate the conversation, the system could initiate a call.&lt;/p&gt;

&lt;p&gt;This forced me to think beyond:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Does the agent answer when I talk to it?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and toward:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How does a voice agent actually interact with a phone system?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I explored LiveKit SIP integration and outbound calling.&lt;/p&gt;

&lt;p&gt;And this was also one of the places where reality politely reminded me that tutorials are easier than systems.😭&lt;/p&gt;

&lt;p&gt;I ran into SIP configuration issues, including an invalid &lt;code&gt;From&lt;/code&gt; header problem during outbound dialing.&lt;/p&gt;

&lt;p&gt;That experience was useful because it taught me something that documentation doesn't emphasize enough:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A working AI component doesn't mean the entire system works.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your STT can work.&lt;/p&gt;

&lt;p&gt;Your LLM can work.&lt;/p&gt;

&lt;p&gt;Your TTS can work.&lt;/p&gt;

&lt;p&gt;And the call can still fail.&lt;/p&gt;

&lt;p&gt;That is real engineering.&lt;/p&gt;

&lt;p&gt;The part of the challenge I can never forget😭😭&lt;/p&gt;




&lt;h1&gt;
  
  
  9. Human Escalation and Specialist Handoffs
&lt;/h1&gt;

&lt;p&gt;Another thing I wanted CashCompass to understand was that an AI agent doesn't always need to be the final destination.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“I can't responsibly handle this. Let me connect you to someone who can.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That led me to explore &lt;strong&gt;human escalation and agent handoffs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I also implemented the idea of specialist agents so that a conversation could be transferred rather than forcing one agent to handle every possible type of request.&lt;/p&gt;

&lt;p&gt;This is something I found particularly interesting about agentic AI.&lt;/p&gt;

&lt;p&gt;The goal isn't necessarily to build one giant super-agent that does everything.&lt;/p&gt;

&lt;p&gt;Sometimes a better architecture is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;one agent → another specialist → human when necessary.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is much closer to how real organizations work.&lt;/p&gt;




&lt;h1&gt;
  
  
  10. The Analytics Side
&lt;/h1&gt;

&lt;p&gt;I also built a call analytics layer to track what was happening during calls.&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%2Foh6j8q3u29sawj1k073d.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%2Foh6j8q3u29sawj1k073d.png" alt=" " width="799" height="372"&gt;&lt;/a&gt;&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%2Fr69u6zyjlkeu4i2n5i99.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%2Fr69u6zyjlkeu4i2n5i99.png" alt=" " width="799" height="374"&gt;&lt;/a&gt;&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%2Fm7gmvn221x87bc4hs43s.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%2Fm7gmvn221x87bc4hs43s.png" alt=" " width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This included things like call outcomes and failure/success information that could be surfaced through a dashboard.&lt;/p&gt;

&lt;p&gt;And yes, this gave me another important lesson.&lt;/p&gt;

&lt;p&gt;At one point, my dashboard was showing a failed call count that didn't match what I expected.&lt;/p&gt;

&lt;p&gt;That forced me to stop thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The dashboard is working, so the data must be correct.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A dashboard is only as trustworthy as the logic feeding it.&lt;/p&gt;

&lt;p&gt;So I had to inspect the actual event flow and call-status handling rather than blindly trusting what the UI displayed.&lt;/p&gt;

&lt;p&gt;That is a lesson I think applies far beyond voice agents:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't debug the screen first. Debug the data underneath it!!&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  11. The Hardest Part Wasn't the Code
&lt;/h1&gt;

&lt;p&gt;The hardest part of this challenge wasn't one particular API.&lt;/p&gt;

&lt;p&gt;It was dealing with the fact that &lt;strong&gt;something was always unfinished&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There was always another thing to fix.&lt;/p&gt;

&lt;p&gt;A package behaving differently than expected.&lt;/p&gt;

&lt;p&gt;A configuration issue.&lt;/p&gt;

&lt;p&gt;A dependency error.&lt;/p&gt;

&lt;p&gt;A call that didn't connect.&lt;/p&gt;

&lt;p&gt;A state that wasn't updating properly.&lt;/p&gt;

&lt;p&gt;A piece of logic that worked in one situation but broke in another.&lt;/p&gt;

&lt;p&gt;And honestly, that's probably the part I needed most.&lt;/p&gt;

&lt;p&gt;Because before this challenge, I had a habit of thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I should learn more first and then build.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But the challenge flipped that around.&lt;/p&gt;

&lt;p&gt;I built first.&lt;/p&gt;

&lt;p&gt;Then I learned because I &lt;strong&gt;had a reason to learn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That was a massive difference.&lt;/p&gt;




&lt;h1&gt;
  
  
  12. What I Learned About Agentic AI
&lt;/h1&gt;

&lt;p&gt;Before the challenge, I was learning about &lt;strong&gt;agentic AI&lt;/strong&gt; mostly from the theory side.&lt;/p&gt;

&lt;p&gt;I knew about things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LLMs&lt;/li&gt;
&lt;li&gt;tools&lt;/li&gt;
&lt;li&gt;memory&lt;/li&gt;
&lt;li&gt;RAG&lt;/li&gt;
&lt;li&gt;agents&lt;/li&gt;
&lt;li&gt;prompts&lt;/li&gt;
&lt;li&gt;function calling&lt;/li&gt;
&lt;li&gt;guardrails&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But there is a huge gap between understanding those terms and actually building a system around them.&lt;/p&gt;

&lt;p&gt;This challenge helped me connect the dots.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Memory
&lt;/h3&gt;

&lt;p&gt;Before:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Agents can have memory.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I need to decide what information is worth remembering, get consent, store it, retrieve it, and make sure the retrieval happens at the right time.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Tools
&lt;/h3&gt;

&lt;p&gt;Before:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Agents can call tools.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I need to define the tool, its inputs, its output, when the agent should use it, and what happens when the tool fails.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Guardrails
&lt;/h3&gt;

&lt;p&gt;Before:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Guardrails keep AI safe.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Guardrails have to be designed into the actual behavior of the system.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Handoffs
&lt;/h3&gt;

&lt;p&gt;Before:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Agents can transfer conversations.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I have to decide when a handoff should happen, what context needs to move with it, and which agent should take over.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the difference between &lt;strong&gt;knowing about something and knowing how to build with it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And now I completely understand why people keep saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Learning skills practically teaches you more than just learning them theoretically.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because theory tells you that a bicycle has two wheels.&lt;/p&gt;

&lt;p&gt;Building one teaches you why you're falling over.&lt;/p&gt;




&lt;h1&gt;
  
  
  13. How You Can Build Your Own Voice Agent
&lt;/h1&gt;

&lt;p&gt;You don't need to build the entire &lt;strong&gt;CashCompass&lt;/strong&gt; system on day one.&lt;/p&gt;

&lt;p&gt;Start with the smallest possible version.&lt;/p&gt;

&lt;p&gt;You need four core pieces:&lt;/p&gt;

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

&lt;p&gt;Something like Deepgram converts the user's voice into text.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. LLM
&lt;/h3&gt;

&lt;p&gt;A model such as Gemini receives the text and generates the response.&lt;/p&gt;

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

&lt;p&gt;Murf Falcon converts the response back into speech.&lt;/p&gt;

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

&lt;p&gt;A framework such as LiveKit handles the real-time audio connection between the user and the agent.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Microphone
    ↓
Speech-to-Text
    ↓
LLM
    ↓
Text-to-Speech
    ↓
Speaker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then add the other pieces one at a time:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          ┌── Memory
          │
User → Agent → Tools
          │
          ├── Handoff
          │
          └── Human escalation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Don't start with ten features.&lt;/p&gt;

&lt;p&gt;Get one voice conversation working first.&lt;/p&gt;

&lt;p&gt;Then add memory.&lt;/p&gt;

&lt;p&gt;Then tools.&lt;/p&gt;

&lt;p&gt;Then more advanced capabilities.&lt;/p&gt;

&lt;p&gt;That progression makes debugging dramatically easier.&lt;/p&gt;




&lt;h1&gt;
  
  
  14. Running the Project
&lt;/h1&gt;

&lt;p&gt;The project is built around a Python voice-agent environment and LiveKit.&lt;/p&gt;

&lt;p&gt;A typical setup looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone YOUR_REPOSITORY_URL
&lt;span class="nb"&gt;cd &lt;/span&gt;YOUR_PROJECT

python &lt;span class="nt"&gt;-m&lt;/span&gt; venv .venv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Activate the virtual environment and install the project dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then create your environment file:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Keep API keys there rather than writing them directly in your source code.&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

DEEPGRAM_API_KEY=your_deepgram_key
GOOGLE_API_KEY=your_google_key
MURF_API_KEY=your_murf_key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Never commit **&lt;/strong&gt;&lt;code&gt;.env&lt;/code&gt;**** to GitHub.**&lt;/p&gt;

&lt;p&gt;Add it to &lt;code&gt;.gitignore&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Then start your LiveKit environment and run the agent using the project's entry point.&lt;/p&gt;

&lt;p&gt;The exact command depends on your project configuration, so check the repository README before running it.&lt;/p&gt;

&lt;p&gt;Once the agent is running, connect from the frontend/LiveKit client and start speaking.&lt;/p&gt;

&lt;p&gt;Start with something simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Hi CashCompass, I just started earning. How should I begin managing my money?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then test the things that make your agent different:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can you remember my financial goal?”&lt;/p&gt;

&lt;p&gt;“What schemes might be relevant to me?”&lt;/p&gt;

&lt;p&gt;“Can I talk to a specialist?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The important part isn't just getting the agent to speak.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test whether it behaves correctly.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  15. What I Would Improve Next
&lt;/h1&gt;

&lt;p&gt;This challenge gave me a working foundation, but there is still a lot I would improve.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Better multilingual conversations
&lt;/h3&gt;

&lt;p&gt;I want the agent to handle Indian languages and code-mixed speech even more naturally.&lt;/p&gt;

&lt;h3&gt;
  
  
  Better evaluation
&lt;/h3&gt;

&lt;p&gt;Instead of manually deciding that the agent “seems to work”, I'd like automated evaluations for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;response quality&lt;/li&gt;
&lt;li&gt;tool selection&lt;/li&gt;
&lt;li&gt;guardrail adherence&lt;/li&gt;
&lt;li&gt;handoff accuracy&lt;/li&gt;
&lt;li&gt;memory behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Better telephony reliability
&lt;/h3&gt;

&lt;p&gt;Outbound calls need more robust handling of different SIP and telephony scenarios.&lt;/p&gt;

&lt;h3&gt;
  
  
  Better analytics
&lt;/h3&gt;

&lt;p&gt;I'd like more detailed metrics around latency, call duration, failures, successful outcomes, and where users drop off.&lt;/p&gt;

&lt;h3&gt;
  
  
  More specialized agents
&lt;/h3&gt;

&lt;p&gt;Instead of one general financial mentor, the system could eventually route conversations to specialist agents for budgeting, government schemes, investments, insurance, and other areas.&lt;/p&gt;




&lt;h1&gt;
  
  
  16. The Biggest Thing I Took Away
&lt;/h1&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“I learned how to build a voice agent.”&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;I learned that I can build things before I feel completely ready.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I avoided challenges before because I was afraid of not knowing enough.&lt;/p&gt;

&lt;p&gt;Which, looking back, &lt;strong&gt;was a pretty bad strategy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because you don't become confident and then start building.&lt;/p&gt;

&lt;p&gt;A lot of the time, you &lt;strong&gt;start building and then become confident because you survived the problems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This challenge gave me practical experience with things I had previously only been learning about:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;agentic AI, memory, tools, guardrails, real-time voice systems, multilingual interaction, outbound calls, human escalation, analytics, and agent handoffs.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And I'm leaving the challenge with something I didn't have when I started:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;the confidence to participate in more challenges instead of watching other people build from the sidelines.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I definitely still have a lot to learn.&lt;/p&gt;

&lt;p&gt;But now I have a much better idea of what learning actually looks like.&lt;/p&gt;

&lt;p&gt;It looks less like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Let me finish five more tutorials before I start.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and more like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Let me build it, break it, figure out why it broke, and try again.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Apparently, that is also a very efficient way to become friends with error messages.&lt;/p&gt;




&lt;h1&gt;
  
  
  17. Final Thoughts
&lt;/h1&gt;

&lt;p&gt;CashCompass, started as an idea for a voice financial mentor.&lt;/p&gt;

&lt;p&gt;Over 10 days, it became much more than a basic conversational demo.&lt;/p&gt;

&lt;p&gt;I got hands-on experience building a real-time voice pipeline, adding memory, connecting tools, designing guardrails, experimenting with outbound calls, implementing escalation and handoffs, and tracking call behavior.&lt;/p&gt;

&lt;p&gt;More importantly, I finally experienced the difference between &lt;strong&gt;studying a technology and actually building with it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that's probably the biggest reason I enjoyed this challenge.&lt;/p&gt;

&lt;p&gt;I didn't know everything when I started.&lt;/p&gt;

&lt;p&gt;I still don't.&lt;/p&gt;

&lt;p&gt;But I don't think that's a requirement anymore.&lt;/p&gt;

&lt;p&gt;You just need to be willing to start building.&lt;/p&gt;




&lt;h1&gt;
  
  
  Links
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/advaitashub/murf-livekit-starter/tree/original-murf-state" rel="noopener noreferrer"&gt;https://github.com/advaitashub/murf-livekit-starter/tree/original-murf-state&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LinkedIn:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/posts/advaita-singh-41a81b257_voiceforbharat-voiceforbharat-10daysofvoiceagents-ugcPost-7491898976800202752-Lhpg/?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAD9NrZYBf-Zm6IquCamZaYOv2PerlhUlvG0" rel="noopener noreferrer"&gt;https://www.linkedin.com/posts/advaita-singh-41a81b257_voiceforbharat-voiceforbharat-10daysofvoiceagents-ugcPost-7491898976800202752-Lhpg/?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAD9NrZYBf-Zm6IquCamZaYOv2PerlhUlvG0&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Technologies Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;LiveKit&lt;/li&gt;
&lt;li&gt;Deepgram&lt;/li&gt;
&lt;li&gt;Gemini&lt;/li&gt;
&lt;li&gt;Murf Falcon&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;SQLite / database layer&lt;/li&gt;
&lt;li&gt;SIP / telephony&lt;/li&gt;
&lt;li&gt;Real-time voice processing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built during &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition by Murf AI&lt;/strong&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  VoiceForBharat #MurfAI #VoiceAI #AIAgents #GenerativeAI #BuildInPublic
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>devchallenge</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
