<?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: Arham Sajid</title>
    <description>The latest articles on DEV Community by Arham Sajid (@arhamsajid2812).</description>
    <link>https://dev.to/arhamsajid2812</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%2F4078949%2F8ef88182-7d0a-4cf9-aeaa-4102242901bd.png</url>
      <title>DEV Community: Arham Sajid</title>
      <link>https://dev.to/arhamsajid2812</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arhamsajid2812"/>
    <language>en</language>
    <item>
      <title>Building Suraksha Sathi: My 10-Day Journey into Voice AI for Disaster Response</title>
      <dc:creator>Arham Sajid</dc:creator>
      <pubDate>Sat, 15 Aug 2026 14:14:51 +0000</pubDate>
      <link>https://dev.to/arhamsajid2812/building-suraksha-sathi-my-10-day-journey-into-voice-ai-for-disaster-response-4fej</link>
      <guid>https://dev.to/arhamsajid2812/building-suraksha-sathi-my-10-day-journey-into-voice-ai-for-disaster-response-4fej</guid>
      <description>&lt;h1&gt;
  
  
  🌪️ Building Suraksha Sathi: A Hindi/Hinglish Voice Agent for Responsible Disaster Response
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Building a Hindi/Hinglish voice agent designed to provide responsible disaster-response assistance through real-time voice conversations.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What if, during a disaster, someone could simply &lt;strong&gt;speak to an AI assistant&lt;/strong&gt; instead of navigating complicated interfaces?&lt;/p&gt;

&lt;p&gt;That question became the starting point for my project, &lt;strong&gt;Suraksha Sathi&lt;/strong&gt;, built during the &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/strong&gt; challenge.&lt;/p&gt;

&lt;p&gt;Over 10 days, I gradually evolved the project from a basic voice conversation into a more complete disaster-response voice system with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎙️ Real-time voice conversations&lt;/li&gt;
&lt;li&gt;🇮🇳 Hindi, English, and Hinglish interaction&lt;/li&gt;
&lt;li&gt;🧠 Persistent user memory&lt;/li&gt;
&lt;li&gt;🔧 Disaster-response tools&lt;/li&gt;
&lt;li&gt;📞 Outbound welfare calls&lt;/li&gt;
&lt;li&gt;👤 Human escalation&lt;/li&gt;
&lt;li&gt;📊 Call analytics&lt;/li&gt;
&lt;li&gt;🤝 Specialist-agent handoffs&lt;/li&gt;
&lt;li&gt;🛡️ Safety-focused disaster-response guardrails&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article covers the &lt;strong&gt;problem, architecture, challenges, implementation approach, and lessons&lt;/strong&gt; I learned while building Suraksha Sathi.&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%2F0148nutg6lwkivkbdap8.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%2F0148nutg6lwkivkbdap8.png" alt=" " width="800" height="450"&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%2Fv7dl7igng5ibtafktzwz.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%2Fv7dl7igng5ibtafktzwz.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  🌪️ Why Disaster Response?
&lt;/h1&gt;

&lt;p&gt;During a disaster, information can be just as important as physical resources.&lt;/p&gt;

&lt;p&gt;People may need answers to questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What should I do right now?&lt;/li&gt;
&lt;li&gt;What safety precautions should I follow?&lt;/li&gt;
&lt;li&gt;What verified information is available?&lt;/li&gt;
&lt;li&gt;Where can I find shelter information?&lt;/li&gt;
&lt;li&gt;When should I seek human assistance?&lt;/li&gt;
&lt;li&gt;Can someone check on a family member?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In stressful situations, typing through menus or searching through multiple websites may not always be convenient.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice provides another interface.&lt;/strong&gt;&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Open website
      ↓
   Search
      ↓
Read information
      ↓
Figure out what applies
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the interaction becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Speak
  ↓
Suraksha Sathi understands
  ↓
Verified information / guidance
  ↓
Voice response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal was &lt;strong&gt;not&lt;/strong&gt; to create an AI that could replace emergency services.&lt;/p&gt;

&lt;p&gt;The goal was to create a &lt;strong&gt;responsible conversational layer for disaster-response information and assistance&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  🎙️ Why Voice Matters in Emergencies
&lt;/h1&gt;

&lt;p&gt;Voice can make interaction more immediate.&lt;/p&gt;

&lt;p&gt;A user may be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stressed&lt;/li&gt;
&lt;li&gt;In a hurry&lt;/li&gt;
&lt;li&gt;Unable to type comfortably&lt;/li&gt;
&lt;li&gt;More comfortable speaking Hindi or Hinglish&lt;/li&gt;
&lt;li&gt;Looking for a quick explanation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A voice agent can provide a conversational interface without requiring the user to navigate a complex UI.&lt;/p&gt;

&lt;p&gt;But disaster response introduces an important constraint:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🛡️ &lt;strong&gt;A voice agent must be especially careful about what it claims.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That became one of the central design principles of Suraksha Sathi.&lt;/p&gt;




&lt;h1&gt;
  
  
  🛡️ Safety First: The Most Important Guardrail
&lt;/h1&gt;

&lt;p&gt;Disaster-response AI is not an area where an agent should confidently make things up.&lt;/p&gt;

&lt;p&gt;Suraksha Sathi therefore has strict boundaries.&lt;/p&gt;

&lt;p&gt;It must &lt;strong&gt;never&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ Issue an evacuation order&lt;/li&gt;
&lt;li&gt;❌ Declare an area safe&lt;/li&gt;
&lt;li&gt;❌ Issue an all-clear&lt;/li&gt;
&lt;li&gt;❌ Claim that a disaster has ended&lt;/li&gt;
&lt;li&gt;❌ Invent emergency alerts&lt;/li&gt;
&lt;li&gt;❌ Invent shelter availability&lt;/li&gt;
&lt;li&gt;❌ Invent shelter capacity&lt;/li&gt;
&lt;li&gt;❌ Claim that someone has been rescued&lt;/li&gt;
&lt;li&gt;❌ Claim that emergency responders have been dispatched unless actually confirmed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead, the agent should distinguish between:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verified information&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;General safety guidance.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example, if current information is unavailable, the agent should say that it cannot verify the information rather than inventing an answer.&lt;/p&gt;

&lt;p&gt;This became one of the biggest lessons of the challenge:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;In safety-critical systems, knowing what not to say is just as important as knowing what to say.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🇮🇳 Hindi, English and Hinglish
&lt;/h1&gt;

&lt;p&gt;Disaster-response assistance needs to be accessible to users with different language preferences.&lt;/p&gt;

&lt;p&gt;A user might say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Flood aa raha hai, mujhe abhi kya precautions lene chahiye?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Mere area ka current alert status kya hai?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What should I do if water level is increasing?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The system should understand these different conversational styles without forcing users to communicate in one particular language.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Let people communicate naturally.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🏗️ The Suraksha Sathi Architecture
&lt;/h1&gt;

&lt;p&gt;The project gradually evolved into a multi-component voice-agent system.&lt;/p&gt;

&lt;p&gt;At a high level:&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         │
                         │ Interface     │
                         └───────┬───────┘
                                 │
                                 ▼
                     ┌──────────────────────┐
                     │ Real-Time            │
                     │ Communication        │
                     └──────────┬───────────┘
                                │
                                ▼
                     ┌──────────────────────┐
                     │   Suraksha Sathi     │
                     │     Main Agent       │
                     └──────────┬───────────┘
                                │
              ┌─────────────────┼─────────────────┐
              │                 │                 │
              ▼                 ▼                 ▼
          ┌────────┐       ┌────────┐      ┌──────────────┐
          │ Memory │       │ Tools  │      │    Human     │
          │        │       │        │      │ Escalation   │
          └────────┘       └───┬────┘      └──────────────┘
                               │
                               ▼
                      Verified / Available
                            Data
                                │
                                └──────────┐
                                           │
                                           ▼
                                ┌────────────────────┐
                                │ Specialist Agent   │
                                │    ShelterSathi    │
                                └─────────┬──────────┘
                                          │
                                          ▼
                                ┌────────────────────┐
                                │    Murf Falcon     │
                                │   Text-to-Speech    │
                                └─────────┬──────────┘
                                          │
                                          ▼
                                        User
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  📞 Outbound Call Architecture
&lt;/h3&gt;

&lt;p&gt;For outbound calls, the architecture additionally involves SIP:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend
   ↓
Outbound Call Request
   ↓
Backend
   ↓
LiveKit Room
   ↓
SIP Trunk
   ↓
Phone
   ↓
Suraksha Sathi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This architecture helped me understand that a voice agent is much more than an LLM.&lt;/p&gt;

&lt;p&gt;It is a complete system involving &lt;strong&gt;communication, reasoning, tools, memory, safety, telephony, and monitoring&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  ⚡ Why Murf Falcon?
&lt;/h1&gt;

&lt;p&gt;A voice agent needs to respond quickly enough that the interaction still feels natural.&lt;/p&gt;

&lt;p&gt;For this project, I used &lt;strong&gt;Murf Falcon&lt;/strong&gt; as the text-to-speech layer.&lt;/p&gt;

&lt;p&gt;The objective wasn't simply to convert text into audio.&lt;/p&gt;

&lt;p&gt;It was to make the system feel conversational.&lt;/p&gt;

&lt;p&gt;The difference is between:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"The system generated a response."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"The agent is actually talking to me."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For a real-time disaster-response assistant, that conversational experience matters because the user should be able to ask follow-up questions naturally instead of interacting with a static information system.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧠 Giving Suraksha Sathi Memory
&lt;/h1&gt;

&lt;p&gt;On &lt;strong&gt;Day 4&lt;/strong&gt;, I introduced persistent memory.&lt;/p&gt;

&lt;p&gt;Without memory, every interaction starts from zero.&lt;/p&gt;

&lt;p&gt;With memory, the agent can retain useful conversational context across interactions.&lt;/p&gt;

&lt;p&gt;A simplified structure can look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"user_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user_123"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Example User"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"language_preference"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Hinglish"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"facts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"preferred_language"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Hinglish"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"last_interaction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"timestamp"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important principle is that memory should be &lt;strong&gt;intentional&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The system shouldn't store everything simply because it can.&lt;/p&gt;

&lt;p&gt;It should store information that is actually useful for future interactions and appropriate to retain.&lt;/p&gt;

&lt;p&gt;This led to an important design rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Memory should improve the conversation without becoming unnecessary data collection.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🔧 Giving the Agent Disaster-Response Tools
&lt;/h1&gt;

&lt;p&gt;A language model alone should not be expected to know current disaster-response information.&lt;/p&gt;

&lt;p&gt;That is where tools become important.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Question
      ↓
Suraksha Sathi
      ↓
Does this require available external information?
      ↓
     Yes
      ↓
   Tool Call
      ↓
Verified / Available Data
      ↓
Suraksha Sathi explains the result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tools can provide structured information that the model should not simply guess.&lt;/p&gt;

&lt;p&gt;This is particularly important in disaster response.&lt;/p&gt;

&lt;p&gt;If information is unavailable, the system should communicate that limitation rather than hallucinating.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"I couldn't verify the latest shelter information right now."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;is much safer than inventing a shelter location.&lt;/p&gt;




&lt;h1&gt;
  
  
  📞 Outbound Welfare Calls
&lt;/h1&gt;

&lt;p&gt;Day 6 introduced outbound calling.&lt;/p&gt;

&lt;p&gt;Instead of waiting for a user to start a conversation, Suraksha Sathi could proactively initiate a call.&lt;/p&gt;

&lt;p&gt;The simplified architecture became:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Outbound Request
      ↓
Backend
      ↓
LiveKit
      ↓
SIP
      ↓
Phone
      ↓
Suraksha Sathi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The disaster-response context makes outbound calling particularly interesting.&lt;/p&gt;

&lt;p&gt;Possible applications include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Welfare checks&lt;/li&gt;
&lt;li&gt;Follow-up calls&lt;/li&gt;
&lt;li&gt;Status checks&lt;/li&gt;
&lt;li&gt;Information reminders&lt;/li&gt;
&lt;li&gt;Proactive assistance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, outbound calls also require transparency.&lt;/p&gt;

&lt;p&gt;The agent should clearly identify itself and explain why it is calling.&lt;/p&gt;

&lt;p&gt;It should &lt;strong&gt;not&lt;/strong&gt; pretend to be a human emergency responder.&lt;/p&gt;




&lt;h1&gt;
  
  
  👤 Human Escalation
&lt;/h1&gt;

&lt;p&gt;One of the most important capabilities of Suraksha Sathi is knowing when AI is not enough.&lt;/p&gt;

&lt;p&gt;Disaster situations can involve circumstances where human assistance is required.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;A person may need urgent human support.&lt;/li&gt;
&lt;li&gt;A situation may require intervention.&lt;/li&gt;
&lt;li&gt;The AI may not have enough verified information.&lt;/li&gt;
&lt;li&gt;The user may explicitly request human assistance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In such cases, the system should follow the existing human-escalation workflow rather than pretending to solve the problem.&lt;/p&gt;

&lt;p&gt;The key principle is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI assistance should complement human response, not pretend to replace it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The escalation workflow can be represented as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User needs human help
        ↓
Suraksha Sathi recognizes the situation
        ↓
Explains the escalation
        ↓
Requests permission where required
        ↓
Creates escalation request
        ↓
Provides reference information
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system should also avoid passing unnecessary sensitive information.&lt;/p&gt;




&lt;h1&gt;
  
  
  📊 Measuring the Calls
&lt;/h1&gt;

&lt;p&gt;On &lt;strong&gt;Day 8&lt;/strong&gt;, I introduced call analytics.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"The agent works."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I wanted to understand what actually happened during calls.&lt;/p&gt;

&lt;p&gt;The system tracks outcomes such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Total Calls&lt;/li&gt;
&lt;li&gt;Successful Calls&lt;/li&gt;
&lt;li&gt;Failed Calls&lt;/li&gt;
&lt;li&gt;Success Rate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The data comes from actual call outcomes.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Voice Call
    ↓
Call Outcome
    ↓
Database
    ↓
Analytics
    ↓
Dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This was an important shift.&lt;/p&gt;

&lt;p&gt;I wasn't just building a voice demo anymore.&lt;/p&gt;

&lt;p&gt;I was building a system that could be &lt;strong&gt;observed and evaluated&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  🤝 Introducing ShelterSathi
&lt;/h1&gt;

&lt;p&gt;Day 9 introduced one of the biggest architectural changes.&lt;/p&gt;

&lt;p&gt;Suraksha Sathi shouldn't try to become an expert in every possible disaster-response topic.&lt;/p&gt;

&lt;p&gt;So I introduced a specialist agent:&lt;/p&gt;

&lt;h2&gt;
  
  
  🏠 ShelterSathi
&lt;/h2&gt;

&lt;p&gt;ShelterSathi is focused specifically on &lt;strong&gt;shelter-related information&lt;/strong&gt;.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    Suraksha Sathi
                         │
               ┌─────────┴─────────┐
               │                   │
        Normal Question      Shelter Question
               │                   │
               ▼                   ▼
       Suraksha Sathi          ShelterSathi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Normal Question
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Flood ke time ghar mein kya precautions lene chahiye?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Suraksha Sathi handles it directly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Specialist Question
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Mere area ke paas available shelter kahan hai aur capacity kitni hai?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Suraksha Sathi recognizes that the request requires shelter-specific assistance.&lt;/p&gt;

&lt;p&gt;It announces the handoff.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ShelterSathi&lt;/strong&gt; then takes over.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔄 Context-Preserving Specialist Handoff
&lt;/h1&gt;

&lt;p&gt;A specialist handoff is only useful if the user doesn't have to start over.&lt;/p&gt;

&lt;p&gt;A bad experience would be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User:
"Mere area ke paas shelter kahan hai?"

        ↓

Suraksha Sathi:
"I'll connect you to a specialist."

        ↓

ShelterSathi:
"Hello. How can I help?"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The user now has to repeat the question.&lt;/p&gt;

&lt;p&gt;Instead, the desired flow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User:
"Mere area ke paas shelter kahan hai?"

        ↓

Suraksha Sathi:
"I'll connect you to the Shelter Information Specialist."

        ↓

ShelterSathi:
"Aapne nearby shelter ke baare mein poocha tha.
Main wahi se continue karta hoon."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The specialist receives the relevant conversation context.&lt;/p&gt;

&lt;p&gt;This makes the handoff feel like &lt;strong&gt;one continuous conversation rather than two separate chatbots&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  🚨 A Critical Disaster-Response Guardrail
&lt;/h1&gt;

&lt;p&gt;One of the strongest safety rules in the project is that the agent must &lt;strong&gt;never issue an all-clear or evacuation instruction&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This distinction is extremely important.&lt;/p&gt;

&lt;p&gt;The agent can provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;General safety guidance&lt;/li&gt;
&lt;li&gt;Verified information&lt;/li&gt;
&lt;li&gt;Available shelter information&lt;/li&gt;
&lt;li&gt;Guidance on seeking appropriate human or official assistance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But it should not independently declare:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"You are safe now."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"You should evacuate immediately."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"The emergency is over."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Those decisions belong to appropriate authorities and verified emergency-response channels.&lt;/p&gt;

&lt;p&gt;This limitation is intentional.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A responsible disaster-response agent should inform and assist without pretending to have authority it does not possess.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🧩 What Building Suraksha Sathi Taught Me
&lt;/h1&gt;

&lt;p&gt;At the beginning of the challenge, it was easy to think of a voice agent as:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;After building Suraksha Sathi, the architecture looks much more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Voice
  +
Real-Time Communication
  +
LLM
  +
Prompting
  +
Tools
  +
Memory
  +
Safety Guardrails
  +
Error Handling
  +
Telephony
  +
Human Escalation
  +
Analytics
  +
Specialist Routing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each layer solves a different problem.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🧠 LLM&lt;/td&gt;
&lt;td&gt;Reasoning and conversation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔧 Tools&lt;/td&gt;
&lt;td&gt;External / available information&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧠 Memory&lt;/td&gt;
&lt;td&gt;Conversational continuity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📞 Telephony&lt;/td&gt;
&lt;td&gt;Reach beyond the browser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📊 Analytics&lt;/td&gt;
&lt;td&gt;Measurement and evaluation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;👤 Human escalation&lt;/td&gt;
&lt;td&gt;Support beyond AI authority&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🤝 Specialist agents&lt;/td&gt;
&lt;td&gt;Focused expertise&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🛡️ Guardrails&lt;/td&gt;
&lt;td&gt;Safety boundaries&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;And that taught me to think much more like a &lt;strong&gt;systems engineer&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧯 The Difficult Parts
&lt;/h1&gt;

&lt;p&gt;Building the system wasn't completely smooth.&lt;/p&gt;

&lt;p&gt;And those difficulties were some of the most valuable parts of the experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Outbound Calling
&lt;/h2&gt;

&lt;p&gt;Outbound calling involved several interconnected components:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend
   ↓
Backend
   ↓
LiveKit
   ↓
SIP Trunk
   ↓
Telephony Client
   ↓
Agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A problem anywhere in that chain could affect the final call.&lt;/p&gt;

&lt;p&gt;This taught me to debug from the &lt;strong&gt;infrastructure layer upward&lt;/strong&gt; instead of immediately blaming the AI model.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Tool Reliability
&lt;/h2&gt;

&lt;p&gt;A tool can fail even when the agent correctly understands the user's request.&lt;/p&gt;

&lt;p&gt;That means the agent needs explicit fallback behavior.&lt;/p&gt;

&lt;p&gt;Instead of inventing an answer, it should explain that the required information could not be verified.&lt;/p&gt;

&lt;p&gt;This is particularly important in disaster response because inaccurate information can have serious consequences.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Specialist Context
&lt;/h2&gt;

&lt;p&gt;Creating a second agent is easy compared with making the handoff feel natural.&lt;/p&gt;

&lt;p&gt;The specialist needs to understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why it was called&lt;/li&gt;
&lt;li&gt;What the user asked&lt;/li&gt;
&lt;li&gt;What context is relevant&lt;/li&gt;
&lt;li&gt;What it should do next&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without context transfer, the user has to repeat themselves.&lt;/p&gt;

&lt;p&gt;That defeats the purpose of delegation.&lt;/p&gt;




&lt;h1&gt;
  
  
  🛠️ How to Build Your Own Voice Agent
&lt;/h1&gt;

&lt;p&gt;If you want to build a similar system, don't start by implementing every feature at once.&lt;/p&gt;

&lt;p&gt;Start with the &lt;strong&gt;smallest possible voice loop&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  1. Understand the Core Architecture
&lt;/h1&gt;

&lt;p&gt;At minimum:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Speech-to-Text
      ↓
     LLM
      ↓
Text-to-Speech
      ↓
Real-Time Audio Transport
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once this works, add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Memory
Tools
Guardrails
Telephony
Human Escalation
Analytics
Specialist Agents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Build incrementally.&lt;/p&gt;

&lt;p&gt;This makes debugging much easier.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. Create the Project Structure
&lt;/h1&gt;

&lt;p&gt;A simple structure can look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;disaster-response-agent/
│
├── backend/
│   └── src/
│       ├── agent.py
│       ├── prompt.py
│       ├── tools/
│       ├── database/
│       └── outbound_call.py
│
├── frontend/
│   ├── app/
│   └── components/
│
├── .env.local
├── .gitignore
└── README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keep the agent logic separate from the frontend.&lt;/p&gt;

&lt;p&gt;This makes the project easier to maintain and extend.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔐 3. Protect API Keys and Private Data
&lt;/h1&gt;

&lt;p&gt;Never hardcode credentials inside your application.&lt;/p&gt;

&lt;p&gt;Use environment variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MURF_API_KEY=your_murf_api_key
LIVEKIT_API_KEY=your_livekit_api_key
LIVEKIT_API_SECRET=your_livekit_api_secret
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add environment files 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
.env.local
.env.*.local
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Commit only a safe example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MURF_API_KEY=your_api_key_here
LIVEKIT_API_KEY=your_api_key_here
LIVEKIT_API_SECRET=your_api_secret_here
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;🔑 API keys&lt;/li&gt;
&lt;li&gt;🔐 SIP credentials&lt;/li&gt;
&lt;li&gt;📞 Phone numbers&lt;/li&gt;
&lt;li&gt;👤 User information&lt;/li&gt;
&lt;li&gt;🔒 Private call data&lt;/li&gt;
&lt;li&gt;🗄️ Database credentials&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  4. Get the Basic Voice Loop Working
&lt;/h1&gt;

&lt;p&gt;Before adding advanced features:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start the backend.&lt;/li&gt;
&lt;li&gt;Start the frontend.&lt;/li&gt;
&lt;li&gt;Connect the real-time communication layer.&lt;/li&gt;
&lt;li&gt;Open the voice interface.&lt;/li&gt;
&lt;li&gt;Grant microphone permission.&lt;/li&gt;
&lt;li&gt;Speak to the agent.&lt;/li&gt;
&lt;li&gt;Verify speech recognition.&lt;/li&gt;
&lt;li&gt;Verify that the agent responds with audio.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first milestone should simply be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Speak → Understand → Respond&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Only move forward once that works reliably.&lt;/p&gt;




&lt;h1&gt;
  
  
  5. Add Memory
&lt;/h1&gt;

&lt;p&gt;Once the basic voice interaction works, add persistent memory.&lt;/p&gt;

&lt;p&gt;Store only information that genuinely improves future conversations.&lt;/p&gt;

&lt;p&gt;Do not treat memory as permission to collect everything.&lt;/p&gt;

&lt;p&gt;A good rule is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Store useful context, not unnecessary personal data.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  6. Add Disaster-Response Tools
&lt;/h1&gt;

&lt;p&gt;Tools should be used when the agent needs information that must be retrieved or verified.&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;User asks for information
        ↓
Agent determines that verification is required
        ↓
Tool call
        ↓
Available / verified information
        ↓
Agent explains result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the tool fails:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't guess.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Tell the user that the information could not currently be verified.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. Add Disaster-Response Guardrails
&lt;/h1&gt;

&lt;p&gt;Before adding advanced capabilities, define the agent's boundaries.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Agent CAN:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Provide general safety guidance&lt;/li&gt;
&lt;li&gt;Explain verified information&lt;/li&gt;
&lt;li&gt;Use available disaster-response tools&lt;/li&gt;
&lt;li&gt;Provide available shelter information&lt;/li&gt;
&lt;li&gt;Ask clarifying questions&lt;/li&gt;
&lt;li&gt;Escalate to humans&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Agent CANNOT:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;❌ Issue an evacuation order&lt;/li&gt;
&lt;li&gt;❌ Issue an all-clear&lt;/li&gt;
&lt;li&gt;❌ Declare an area safe&lt;/li&gt;
&lt;li&gt;❌ Invent alerts&lt;/li&gt;
&lt;li&gt;❌ Invent shelter information&lt;/li&gt;
&lt;li&gt;❌ Claim rescue has occurred&lt;/li&gt;
&lt;li&gt;❌ Pretend to be an emergency authority&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These boundaries should be part of the architecture &lt;strong&gt;from the beginning&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  8. Add Outbound Calling
&lt;/h1&gt;

&lt;p&gt;Once browser-based conversations work, add telephony.&lt;/p&gt;

&lt;p&gt;A simplified architecture is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Phone
  ↓
SIP
  ↓
Real-Time Communication
  ↓
Voice Agent
  ↓
TTS
  ↓
Phone
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start with a test number you control.&lt;/p&gt;

&lt;p&gt;First verify:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Call → Answer → Agent speaks → Conversation → End&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Only then add more complicated outbound workflows.&lt;/p&gt;




&lt;h1&gt;
  
  
  9. Add Human Escalation
&lt;/h1&gt;

&lt;p&gt;Teach the agent when it should stop trying to solve the problem itself.&lt;/p&gt;

&lt;p&gt;Human escalation can be appropriate when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The user needs human assistance&lt;/li&gt;
&lt;li&gt;The situation requires intervention&lt;/li&gt;
&lt;li&gt;The AI lacks sufficient verified information&lt;/li&gt;
&lt;li&gt;The user explicitly requests human support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key principle is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The AI should complement human emergency response, not pretend to replace it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  10. Add Specialist Agents
&lt;/h1&gt;

&lt;p&gt;Once the main agent works, create focused specialists.&lt;/p&gt;

&lt;p&gt;For a disaster-response system, examples could include:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    Main Agent
                        │
          ┌─────────────┼─────────────┐
          │             │             │
          ▼             ▼             ▼
      Shelter       Information     Support
      Specialist     Specialist    Specialist
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each specialist should have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A focused role&lt;/li&gt;
&lt;li&gt;Separate instructions&lt;/li&gt;
&lt;li&gt;Clear boundaries&lt;/li&gt;
&lt;li&gt;A defined handoff trigger&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The main agent should only delegate when specialist expertise is genuinely required.&lt;/p&gt;




&lt;h1&gt;
  
  
  11. Add Analytics
&lt;/h1&gt;

&lt;p&gt;Finally, measure what happens.&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;Total Calls
Successful Calls
Failed Calls
Success Rate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use real call events:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Call
 ↓
Outcome
 ↓
Database
 ↓
Analytics Dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This turns the project from a demonstration into a &lt;strong&gt;measurable system&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔮 What's Next for Suraksha Sathi?
&lt;/h1&gt;

&lt;p&gt;The challenge may be complete, but the project can continue evolving.&lt;/p&gt;

&lt;p&gt;Some possible future directions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌪️ More disaster types&lt;/li&gt;
&lt;li&gt;🇮🇳 Better multilingual support&lt;/li&gt;
&lt;li&gt;🔎 More verified data sources&lt;/li&gt;
&lt;li&gt;🏠 Stronger shelter-information workflows&lt;/li&gt;
&lt;li&gt;👤 Improved human escalation&lt;/li&gt;
&lt;li&gt;🚨 Better real-time alerts integration&lt;/li&gt;
&lt;li&gt;🧪 More robust evaluation&lt;/li&gt;
&lt;li&gt;📊 Better observability&lt;/li&gt;
&lt;li&gt;🔐 Stronger privacy controls&lt;/li&gt;
&lt;li&gt;🚀 Production deployment&lt;/li&gt;
&lt;li&gt;🤝 More specialized disaster-response agents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't to make Suraksha Sathi replace emergency services.&lt;/p&gt;

&lt;p&gt;The goal is to make it a &lt;strong&gt;useful, accessible, and responsible conversational layer for disaster-response assistance&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  🎓 What I Learned
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Voice Is More Than Speech
&lt;/h2&gt;

&lt;p&gt;Latency, turn-taking, interruptions, pronunciation, and conversational flow all matter.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Safety Is More Important Than Confidence
&lt;/h2&gt;

&lt;p&gt;In disaster response, an uncertain but honest answer is better than a confident false one.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Tools Reduce Guessing
&lt;/h2&gt;

&lt;p&gt;If information needs verification, the agent should use available tools rather than inventing information.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Memory Needs Boundaries
&lt;/h2&gt;

&lt;p&gt;Remembering useful context can improve conversations, but unnecessary data collection should be avoided.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Human Escalation Is a Strength
&lt;/h2&gt;

&lt;p&gt;An AI agent asking for human help is not necessarily failing.&lt;/p&gt;

&lt;p&gt;Sometimes that is exactly the correct behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Specialist Agents Make Systems More Focused
&lt;/h2&gt;

&lt;p&gt;Instead of making one agent responsible for everything, specialized agents can handle narrower tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. AI Engineering Is Systems Engineering
&lt;/h2&gt;

&lt;p&gt;The hardest part isn't just making the model respond.&lt;/p&gt;

&lt;p&gt;It is connecting:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Voice
  +
LLM
  +
Tools
  +
Memory
  +
Safety
  +
Telephony
  +
Human Support
  +
Analytics
  +
Specialist Agents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;into one reliable system.&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Ten days ago, this project started as an idea for a disaster-response voice agent.&lt;/p&gt;

&lt;p&gt;Today, &lt;strong&gt;Suraksha Sathi&lt;/strong&gt; has evolved into a much broader voice-agent system.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;🎙️ Hold real-time voice conversations&lt;/li&gt;
&lt;li&gt;🇮🇳 Support Hindi, English, and Hinglish&lt;/li&gt;
&lt;li&gt;🧠 Remember useful user context&lt;/li&gt;
&lt;li&gt;🔧 Use disaster-response tools&lt;/li&gt;
&lt;li&gt;📞 Make outbound welfare calls&lt;/li&gt;
&lt;li&gt;👤 Escalate to human support&lt;/li&gt;
&lt;li&gt;📊 Track call outcomes&lt;/li&gt;
&lt;li&gt;🤝 Hand shelter-related requests to a specialist agent&lt;/li&gt;
&lt;li&gt;🛡️ Follow strict disaster-response safety boundaries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the biggest lesson isn't the number of features.&lt;/p&gt;

&lt;p&gt;It is understanding that &lt;strong&gt;responsible AI is also about knowing what the system should never claim to know or do.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Suraksha Sathi should provide assistance.&lt;/p&gt;

&lt;p&gt;It should provide verified information when available.&lt;/p&gt;

&lt;p&gt;It should clearly communicate uncertainty.&lt;/p&gt;

&lt;p&gt;It should escalate when human intervention is needed.&lt;/p&gt;

&lt;p&gt;And most importantly, it should never pretend to have emergency authority that it does not have.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;In disaster response, being helpful isn't about sounding confident. It's about being accurate, responsible, and honest about your limits.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🇮🇳 10 Days of Voice Agents — VoiceForBharat Edition
&lt;/h1&gt;

&lt;p&gt;This challenge gave me the opportunity to explore voice AI beyond a basic conversational demo.&lt;/p&gt;

&lt;p&gt;Across 10 days, I worked through &lt;strong&gt;voice interaction, memory, tools, outbound calling, human escalation, analytics, and specialist-agent handoffs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Each day added another layer to the system.&lt;/p&gt;

&lt;p&gt;More importantly, each layer introduced another engineering and safety consideration.&lt;/p&gt;

&lt;p&gt;The experience pushed me to think not only about how an AI agent talks, but also about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How it uses information&lt;/li&gt;
&lt;li&gt;How it handles uncertainty&lt;/li&gt;
&lt;li&gt;How it remembers users&lt;/li&gt;
&lt;li&gt;How it communicates limitations&lt;/li&gt;
&lt;li&gt;How it interacts with humans&lt;/li&gt;
&lt;li&gt;How it delegates work&lt;/li&gt;
&lt;li&gt;How its performance can be measured&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A huge thanks to the organizers and &lt;strong&gt;Murf AI&lt;/strong&gt; for creating the &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/strong&gt; challenge.&lt;/p&gt;

&lt;p&gt;This challenge was a great opportunity to learn by &lt;strong&gt;building, testing, debugging, and iterating&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The 10 days may be over.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The project doesn't have to be. 🚀&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🙌 Thanks for Reading!
&lt;/h1&gt;

&lt;p&gt;If you're building voice agents or working on AI for emergency-response use cases, I'd love to hear what you're building.&lt;/p&gt;

&lt;p&gt;Feel free to share your project or experience in the comments.&lt;/p&gt;

&lt;p&gt;Let's build AI systems that are not only capable, but also &lt;strong&gt;responsible and useful for Bharat.&lt;/strong&gt; 🇮🇳🎙️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;#VoiceForBharat #10DaysOfVoiceAgents #VoiceAI #AI #DisasterResponse #AgenticAI #GenerativeAI #MurfAI #LiveKit&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;💻 GitHub Repository&lt;/p&gt;

&lt;p&gt;[&lt;a href="https://github.com/arhamsajid2812-cell/Sonix-AI/tree/day10" rel="noopener noreferrer"&gt;https://github.com/arhamsajid2812-cell/Sonix-AI/tree/day10&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;🎥 Demo Video&lt;/p&gt;

&lt;p&gt;Day 4 [&lt;a href="https://www.linkedin.com/posts/arham-sajid-737195337_voiceforbharat-activity-7492142441911885824-FWFa?utm_source=social_share_send&amp;amp;utm_medium=member_desktop_web&amp;amp;rcm=ACoAAFSQ-tsB8DdAVgB8wZgleh9-ljEKiOwHPII" rel="noopener noreferrer"&gt;https://www.linkedin.com/posts/arham-sajid-737195337_voiceforbharat-activity-7492142441911885824-FWFa?utm_source=social_share_send&amp;amp;utm_medium=member_desktop_web&amp;amp;rcm=ACoAAFSQ-tsB8DdAVgB8wZgleh9-ljEKiOwHPII&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;Day 6 [&lt;a href="https://www.linkedin.com/posts/arham-sajid-737195337_voiceforbharat-10daysofvoiceagents-murfai-activity-7492965530518065152-6suZ?utm_source=social_share_send&amp;amp;utm_medium=member_desktop_web&amp;amp;rcm=ACoAAFSQ-tsB8DdAVgB8wZgleh9-ljEKiOwHPII" rel="noopener noreferrer"&gt;https://www.linkedin.com/posts/arham-sajid-737195337_voiceforbharat-10daysofvoiceagents-murfai-activity-7492965530518065152-6suZ?utm_source=social_share_send&amp;amp;utm_medium=member_desktop_web&amp;amp;rcm=ACoAAFSQ-tsB8DdAVgB8wZgleh9-ljEKiOwHPII&lt;/a&gt;]&lt;/p&gt;

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