<?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: Rishabh Kumar</title>
    <description>The latest articles on DEV Community by Rishabh Kumar (@rishabh_dev).</description>
    <link>https://dev.to/rishabh_dev</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%2F4079254%2F34a9b203-5122-4729-8ca6-690e3365b012.png</url>
      <title>DEV Community: Rishabh Kumar</title>
      <link>https://dev.to/rishabh_dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rishabh_dev"/>
    <language>en</language>
    <item>
      <title>🌿 NatureQuest AI: Turn Screen Time into Green Time with Open-Source AI</title>
      <dc:creator>Rishabh Kumar</dc:creator>
      <pubDate>Mon, 12 Oct 2026 04:40:18 +0000</pubDate>
      <link>https://dev.to/rishabh_dev/naturequest-ai-turn-screen-time-into-green-time-with-open-source-ai-job</link>
      <guid>https://dev.to/rishabh_dev/naturequest-ai-turn-screen-time-into-green-time-with-open-source-ai-job</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;What if AI didn't ask you to spend more time on your screen—but inspired you to step outside?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;NatureQuest AI&lt;/strong&gt; is an AI-powered outdoor adventure application that transforms everyday nature exploration into fun, interactive missions. It encourages users to put their devices down, explore the world around them, observe nature, and build healthier digital habits.&lt;/p&gt;

&lt;p&gt;This is my submission for the &lt;strong&gt;&lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge — Week 1: Touch Grass&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌱 1. The Problem: We Spend Too Much Time on Screens
&lt;/h2&gt;

&lt;p&gt;We use technology for almost everything—learning, communication, entertainment, and work. But sometimes, scrolling through a screen replaces the simple experiences that make life interesting.&lt;/p&gt;

&lt;p&gt;We might spend hours indoors without noticing the birds outside, the plants around us, or the small details of our environment.&lt;/p&gt;

&lt;p&gt;I wanted to explore a different question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can we use AI to encourage people to spend more time in the real world instead of keeping them glued to a screen?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question inspired me to build NatureQuest AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 2. What I Built
&lt;/h2&gt;

&lt;p&gt;NatureQuest AI turns outdoor exploration into a mission-based experience.&lt;/p&gt;

&lt;p&gt;Instead of simply opening another app to scroll, users can discover a challenge, go outdoors, complete the activity, and track their progress.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🤖 AI-Powered Outdoor Missions:&lt;/strong&gt; Generate nature-related activities and real-world challenges using an open-weight AI model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🌳 Explore Your Surroundings:&lt;/strong&gt; Discover activities involving plants, birds, trees, outdoor observation, and environmental awareness.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📸 Photo Evidence Verification:&lt;/strong&gt; For missions that require visual evidence, users can submit a photo for verification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🐦 Bird Sound Verification:&lt;/strong&gt; Bird-observation missions can use recorded audio as supporting evidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🏆 XP and Rewards:&lt;/strong&gt; Earn experience points, build streaks, and unlock badges through mission completion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📔 Nature Journal:&lt;/strong&gt; Keep track of discoveries and outdoor experiences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📶 Offline-Friendly Missions:&lt;/strong&gt; Use predefined missions when AI generation is unavailable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎮 Gamified Progress:&lt;/strong&gt; Turn small outdoor activities into an engaging journey.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Feature note: Keep the photo and bird-audio features described as available only if their verification flow has been implemented and tested. Otherwise, label them as work in progress.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔄 3. How NatureQuest AI Works
&lt;/h2&gt;

&lt;p&gt;Here is the high-level user journey.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    A["🌿 Open NatureQuest AI"] --&amp;gt; B["Choose or Generate a Mission"]
    B --&amp;gt; C["🤖 AI Suggests an Outdoor Challenge"]
    C --&amp;gt; D["🌳 Go Outside and Explore"]
    D --&amp;gt; E{"Does the Mission Require Evidence?"}
    E -- "Yes" --&amp;gt; F["📸 Photo or 🐦 Audio Evidence"]
    F --&amp;gt; G["🔍 Verify Evidence"]
    G --&amp;gt; H{"Evidence Accepted?"}
    H -- "No" --&amp;gt; I["Try Again"]
    I --&amp;gt; F
    H -- "Yes" --&amp;gt; J["Complete Mission"]
    E -- "No" --&amp;gt; J
    J --&amp;gt; K["🏆 Earn XP and Update Progress"]
    K --&amp;gt; L["📔 Record the Experience"]
    L --&amp;gt; M["Explore the Next Mission"]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The important idea is that &lt;strong&gt;AI creates the opportunity, but the real experience happens outside the application&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Evidence verification should be used only for relevant missions. Activities that do not require evidence should continue through the normal completion flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 4. AI and System Architecture
&lt;/h2&gt;

&lt;p&gt;NatureQuest AI is designed around an open-weight AI workflow for mission generation, with a separate application layer for mission management and progress tracking.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TB
    U["👤 User"] --&amp;gt; FE["Next.js + TypeScript Frontend"]
    FE --&amp;gt; API["FastAPI Backend"]
    API --&amp;gt; MS["Mission Service"]
    MS --&amp;gt; AI["Open-Weight AI Model"]
    AI --&amp;gt; MS
    MS --&amp;gt; VAL["Validate Mission Structure"]
    VAL --&amp;gt; FE
    FE --&amp;gt; OUT["Outdoor Activity"]
    OUT --&amp;gt; EV["Optional Evidence Submission"]
    EV --&amp;gt; VER["Evidence Verification"]
    VER --&amp;gt; COMPLETE["Mission Completion Logic"]
    COMPLETE --&amp;gt; XP["XP, Streaks and Badges"]
    XP --&amp;gt; JOURNAL["Nature Journal and Progress"]&lt;/code&gt;&lt;/pre&gt;



&lt;h3&gt;
  
  
  What each layer does
&lt;/h3&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;Responsibility&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;Displays missions, progress, and the user interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend API&lt;/td&gt;
&lt;td&gt;Handles requests and application logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mission service&lt;/td&gt;
&lt;td&gt;Organizes mission generation and mission data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open-weight model&lt;/td&gt;
&lt;td&gt;Generates outdoor mission ideas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Evidence verification&lt;/td&gt;
&lt;td&gt;Evaluates relevant photo or audio submissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Progress system&lt;/td&gt;
&lt;td&gt;Tracks completion, XP, streaks, and badges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nature Journal&lt;/td&gt;
&lt;td&gt;Records the user's outdoor experiences&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The exact inference provider and verification models depend on the implementation used in the final application.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ 5. Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technology&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;Next.js&lt;/td&gt;
&lt;td&gt;Frontend application&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;Type-safe application development&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tailwind CSS&lt;/td&gt;
&lt;td&gt;Styling and responsive layouts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;Backend development&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FastAPI&lt;/td&gt;
&lt;td&gt;Backend API framework&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pydantic&lt;/td&gt;
&lt;td&gt;Data validation and structured schemas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemma / another suitable open-weight model&lt;/td&gt;
&lt;td&gt;AI mission generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ollama, if configured&lt;/td&gt;
&lt;td&gt;Local model inference&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Git and GitHub&lt;/td&gt;
&lt;td&gt;Version control and collaboration&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Keep only the technologies and AI models actually used in your project. If you use a different model or inference setup, update this table accordingly.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔓 6. Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;Open innovation is important because developers should have choices in how they build and deploy AI-powered applications.&lt;/p&gt;

&lt;p&gt;For NatureQuest AI, open-weight models create opportunities to experiment with mission generation, test different models, and explore local inference where the model and hardware support it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I care about open-source AI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility:&lt;/strong&gt; Choose a model based on quality, speed, resource requirements, and licensing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Experimentation:&lt;/strong&gt; Compare different models for generating practical outdoor missions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment choices:&lt;/strong&gt; Explore local inference or hosted deployment according to project requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community contributions:&lt;/strong&gt; Allow other developers to suggest missions, improve code, fix bugs, and extend the application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Greater control:&lt;/strong&gt; Reduce dependence on one proprietary AI provider, depending on the chosen architecture.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open-weight models do not automatically make an application free, completely private, or fully offline. Those properties depend on the model licence, deployment, hardware, data handling, and external services.&lt;/p&gt;

&lt;p&gt;For me, the most interesting part is using open AI for something beyond another chatbot: encouraging people to reconnect with nature.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌳 7. A Real-World Example
&lt;/h2&gt;

&lt;p&gt;Imagine a user opens NatureQuest AI on a Saturday morning.&lt;/p&gt;

&lt;p&gt;The application suggests a mission:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mission: Become a Bird Observer 🐦&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go outside to a safe, accessible place.&lt;/li&gt;
&lt;li&gt;Spend a few minutes quietly observing your surroundings.&lt;/li&gt;
&lt;li&gt;Notice the birds and listen to the sounds around you.&lt;/li&gt;
&lt;li&gt;If the mission requires it, record a short audio sample.&lt;/li&gt;
&lt;li&gt;Submit the evidence for verification.&lt;/li&gt;
&lt;li&gt;Complete the mission and earn XP if it passes the required checks.&lt;/li&gt;
&lt;li&gt;Record the experience in your Nature Journal.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The activity is simple, but it encourages observation, curiosity, and time away from endless scrolling.&lt;/p&gt;

&lt;p&gt;Evidence verification can help discourage unsupported completion claims, although an AI classifier cannot guarantee that every submission is genuine or correctly identified.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎨 8. Design Philosophy
&lt;/h2&gt;

&lt;p&gt;I wanted the interface to feel calm, natural, friendly, and inviting—not like a corporate dashboard.&lt;/p&gt;

&lt;p&gt;The visual direction uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sage green and earthy colors&lt;/li&gt;
&lt;li&gt;Warm cream backgrounds&lt;/li&gt;
&lt;li&gt;Rounded cards and approachable layouts&lt;/li&gt;
&lt;li&gt;Clear mission instructions&lt;/li&gt;
&lt;li&gt;Visible progress and rewards&lt;/li&gt;
&lt;li&gt;Nature-inspired visual elements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The design supports the purpose of the application: make outdoor exploration feel accessible and enjoyable.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧩 9. Challenges and What I Learned
&lt;/h2&gt;

&lt;p&gt;Building NatureQuest AI helped me think about AI as part of a complete product, rather than just a model that generates text.&lt;/p&gt;

&lt;p&gt;Some important engineering considerations include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Structured AI output:&lt;/strong&gt; Generated missions need a predictable format that the application can validate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliable fallback behavior:&lt;/strong&gt; Users should still have missions available if AI generation fails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evidence quality:&lt;/strong&gt; A photo or audio clip may be unclear, irrelevant, or insufficient for verification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsible gamification:&lt;/strong&gt; Rewards should encourage outdoor exploration without making users feel pressured to stay in the app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; Camera and microphone access should be requested only when needed, with clear controls for reviewing and deleting evidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware limitations:&lt;/strong&gt; Running an open-weight model locally depends on its size, quantization, and available system resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One lesson stands out: &lt;strong&gt;AI features are only useful when they support a meaningful user experience and work reliably within the limits of the system.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Before publishing, add one or two challenges you personally encountered and solved during development. Real examples make this section stronger.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔮 10. What's Next?
&lt;/h2&gt;

&lt;p&gt;NatureQuest AI can grow in several directions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌼 More mission categories for different ages and interests&lt;/li&gt;
&lt;li&gt;🐦 Improved bird-sound recognition and clearer verification feedback&lt;/li&gt;
&lt;li&gt;📷 Better image relevance checking&lt;/li&gt;
&lt;li&gt;🌍 Optional location-aware missions with explicit permission&lt;/li&gt;
&lt;li&gt;♿ Accessibility improvements for different users&lt;/li&gt;
&lt;li&gt;🌱 Community-created mission packs&lt;/li&gt;
&lt;li&gt;📊 Personal outdoor activity history and progress insights&lt;/li&gt;
&lt;li&gt;🔋 Improved performance and offline support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are potential improvements, not claims that all of them are already implemented.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Keep a record of outdoor experiences.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Replace these placeholders with real, publicly accessible image URLs. You can also embed a short demo video.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎬 11. Live Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Try NatureQuest AI:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1E4YNQP3uqlSZSev_cjVn-vvIMQ2dOOsF/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1E4YNQP3uqlSZSev_cjVn-vvIMQ2dOOsF/view?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the application is not deployed yet, replace this section with a short video demonstration or remove it until the demo is available.&lt;/p&gt;

&lt;h2&gt;
  
  
  💻 12. Source Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Rishabh-KSingh/NatureQuest-AI" rel="noopener noreferrer"&gt;https://github.com/Rishabh-KSingh/NatureQuest-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the project source code and implementation details.&lt;/p&gt;

&lt;p&gt;If you are interested in open-source AI, nature-based applications, or creative uses of technology, feel free to explore the project and share feedback.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Contribute
&lt;/h3&gt;

&lt;p&gt;Potential contributions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding new outdoor missions&lt;/li&gt;
&lt;li&gt;Improving mission generation and validation&lt;/li&gt;
&lt;li&gt;Testing evidence verification&lt;/li&gt;
&lt;li&gt;Improving accessibility and mobile usability&lt;/li&gt;
&lt;li&gt;Reporting bugs or suggesting new features&lt;/li&gt;
&lt;li&gt;Improving documentation and setup instructions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please follow the contribution instructions in the repository before submitting changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ 13. Run Locally
&lt;/h2&gt;

&lt;p&gt;Use the repository's actual installation instructions if they differ from this example.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Node.js and the package manager used by the project&lt;/li&gt;
&lt;li&gt;Python and the project's required version&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Access to the configured AI model or inference service&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Setup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the repository&lt;/span&gt;
git clone YOUR_GITHUB_REPOSITORY_URL

&lt;span class="c"&gt;# Enter the project directory&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;YOUR_PROJECT_DIRECTORY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install frontend and backend dependencies using the instructions and dependency files included in the repository.&lt;/p&gt;

&lt;p&gt;Configure the required environment variables, then start the frontend and backend using the project's documented development commands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The commands above are a starting point, not a complete verified setup guide. Add the exact install, environment configuration, and run commands from your working repository before publishing.&lt;/p&gt;

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

&lt;p&gt;NatureQuest AI began with a simple idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if we built AI that encouraged people to spend less time looking at screens and more time looking at the world?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I wanted to explore a positive use of technology—one that inspires curiosity, supports outdoor activities, and makes reconnecting with nature more engaging.&lt;/p&gt;

&lt;p&gt;This project is my contribution to the Touch Grass challenge, and I hope it inspires other developers to experiment with open-source AI in creative, human-centered ways.&lt;/p&gt;

&lt;p&gt;Technology doesn't always have to keep us online. Sometimes, it can give us a reason to step outside.&lt;/p&gt;

&lt;p&gt;🌿 &lt;strong&gt;Build with AI. Explore with curiosity. Reconnect with nature.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'd love to hear your feedback and ideas!&lt;/p&gt;

&lt;h1&gt;
  
  
  Hacktoberfest #OpenSourceAI #TouchGrass #NatureQuestAI #ArtificialIntelligence #OpenSource #NextJS #Gemma
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I built my friend an AI speaking partner because knowing English isn't the same as speaking it.</title>
      <dc:creator>Rishabh Kumar</dc:creator>
      <pubDate>Mon, 05 Oct 2026 05:59:07 +0000</pubDate>
      <link>https://dev.to/rishabh_dev/i-built-my-friend-an-ai-speaking-partner-because-knowing-english-isnt-the-same-as-speaking-it-142</link>
      <guid>https://dev.to/rishabh_dev/i-built-my-friend-an-ai-speaking-partner-because-knowing-english-isnt-the-same-as-speaking-it-142</guid>
      <description>&lt;p&gt;My friend understands English.&lt;/p&gt;

&lt;p&gt;They can read it.&lt;br&gt;&lt;br&gt;
They can watch English videos.&lt;br&gt;&lt;br&gt;
They know a decent number of English words.&lt;/p&gt;

&lt;p&gt;But ask them to speak.&lt;/p&gt;

&lt;p&gt;There is a pause.&lt;/p&gt;

&lt;p&gt;They first think in Hindi, then translate the sentence into English, then worry whether the grammar is correct, and sometimes the sentence never comes out.&lt;/p&gt;

&lt;p&gt;And when they do make a mistake, they often don't know &lt;strong&gt;why&lt;/strong&gt; it was wrong.&lt;/p&gt;

&lt;p&gt;I noticed something else too.&lt;/p&gt;

&lt;p&gt;The problem wasn't a lack of English content.&lt;/p&gt;

&lt;p&gt;There are thousands of videos, grammar lessons, vocabulary apps and courses available.&lt;/p&gt;

&lt;p&gt;The problem was &lt;strong&gt;practice&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There wasn't someone available every day who would patiently listen, correct the important mistakes, explain them, and then say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Okay. Now say it again."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I decided to build that person as an AI.&lt;/p&gt;

&lt;p&gt;That's how &lt;strong&gt;TalkSaathi AI&lt;/strong&gt; started.&lt;/p&gt;


&lt;h2&gt;
  
  
  What TalkSaathi does
&lt;/h2&gt;

&lt;p&gt;TalkSaathi AI is an English-speaking companion designed for someone who understands English but struggles to speak confidently.&lt;/p&gt;

&lt;p&gt;Its core idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Listen → Understand → Recall → Speak → Correct → Repeat → Converse → Track → Adapt&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of completing a grammar exercise and moving on, TalkSaathi turns a mistake into the next practice opportunity.&lt;/p&gt;

&lt;p&gt;For example, imagine my friend says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I take breakfast at 8 and I go college."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TalkSaathi doesn't just say "wrong."&lt;/p&gt;
&lt;h3&gt;
  
  
  You said
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I take breakfast at 8 and I go college.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  A better version
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I have breakfast at 8 and I go to college.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  Why?
&lt;/h3&gt;

&lt;p&gt;We usually say &lt;strong&gt;"have breakfast"&lt;/strong&gt; in natural English.&lt;/p&gt;

&lt;p&gt;We also use &lt;strong&gt;"to"&lt;/strong&gt; before a destination.&lt;/p&gt;
&lt;h3&gt;
  
  
  More natural
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I usually have breakfast at 8 and then go to college.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And then comes the important part:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎤 &lt;strong&gt;Now say it again.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The learner repeats the sentence.&lt;/p&gt;

&lt;p&gt;The AI checks the new attempt.&lt;/p&gt;

&lt;p&gt;That creates a much more useful loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────┐
│   Mistake   │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ Correction  │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ Explanation │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│   Repeat    │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  Re-check   │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ Improvement │
└─────────────┘
       │
       └──────────────► 🔄 Next Practice
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The problem I actually wanted to solve
&lt;/h2&gt;

&lt;p&gt;While building this, I kept coming back to one question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why can someone understand English but still struggle to speak it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For my friend, several things were connected.&lt;/p&gt;

&lt;p&gt;They were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;translating from Hindi before speaking;&lt;/li&gt;
&lt;li&gt;afraid of making grammar mistakes;&lt;/li&gt;
&lt;li&gt;unsure how to form sentences naturally;&lt;/li&gt;
&lt;li&gt;using the same simple vocabulary repeatedly;&lt;/li&gt;
&lt;li&gt;not getting enough speaking practice;&lt;/li&gt;
&lt;li&gt;lacking a conversation partner.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So TalkSaathi isn't designed to make someone memorize thousands of words.&lt;/p&gt;

&lt;p&gt;It's designed to give them a place where they can &lt;strong&gt;actually speak&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The first practice session
&lt;/h2&gt;

&lt;p&gt;When a learner opens TalkSaathi for the first time, there is no complicated registration.&lt;/p&gt;

&lt;p&gt;They create a small profile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;English level;&lt;/li&gt;
&lt;li&gt;learning goal;&lt;/li&gt;
&lt;li&gt;interests;&lt;/li&gt;
&lt;li&gt;preferred topics;&lt;/li&gt;
&lt;li&gt;daily practice time;&lt;/li&gt;
&lt;li&gt;speaking goal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They can choose:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10, 15, 20 or 30 minutes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TalkSaathi then creates a practice session based on their level and previous performance.&lt;/p&gt;

&lt;p&gt;A typical session might 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;        ┌────────────┐
        │   Listen   │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │ Understand │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │   Recall   │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │    Speak   │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │   Correct  │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │   Repeat   │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │Conversation │
        └────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part is that the practice doesn't end after the first answer.&lt;/p&gt;

&lt;p&gt;The learner gets another chance.&lt;/p&gt;




&lt;h2&gt;
  
  
  I didn't want Hindi to become a dependency
&lt;/h2&gt;

&lt;p&gt;One feature I particularly wanted was a &lt;strong&gt;Hindi → English speaking bridge&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Because when someone is learning English, sometimes they know exactly what they want to say—but they don't know how to say it in English.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;"मुझे कल कॉलेज जाना है।"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TalkSaathi can turn that into:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;I have to go to college tomorrow.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then it explains the sentence and asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎤 &lt;strong&gt;Now say it in English.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After the learner repeats it, TalkSaathi doesn't stop at the translation.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What do you usually do at college?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;Hindi is not supposed to become the final destination.&lt;/p&gt;

&lt;p&gt;The goal is to gradually move from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hindi thought
     ↓
English translation
     ↓
English speaking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;English thought
     ↓
English speaking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  It also remembers mistakes
&lt;/h2&gt;

&lt;p&gt;Another problem with normal practice is that the same mistake can happen again tomorrow.&lt;/p&gt;

&lt;p&gt;And again next week.&lt;/p&gt;

&lt;p&gt;TalkSaathi keeps a lightweight local history of recurring mistakes.&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;Past tense       8 mistakes
Prepositions     6 mistakes
Articles         4 mistakes
Vocabulary       3 mistakes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the learner repeatedly says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I didn't went."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TalkSaathi can recognize that as a recurring pattern.&lt;/p&gt;

&lt;p&gt;The next practice can then include:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Past Tense Challenge&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So the system isn't only asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What did you say?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's also asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What does this learner need to practice next?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's where the personalization comes from.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conversation mode
&lt;/h2&gt;

&lt;p&gt;Sometimes you don't want a lesson.&lt;/p&gt;

&lt;p&gt;You just want to talk.&lt;/p&gt;

&lt;p&gt;TalkSaathi has a free conversation mode with topics such as:&lt;/p&gt;

&lt;h3&gt;
  
  
  Daily life
&lt;/h3&gt;

&lt;p&gt;Family, food, college, hobbies, friends.&lt;/p&gt;

&lt;h3&gt;
  
  
  Professional
&lt;/h3&gt;

&lt;p&gt;Job interviews, meetings, presentations and workplace situations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Social
&lt;/h3&gt;

&lt;p&gt;Shopping, restaurants, travel and asking directions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Education &amp;amp; Technology
&lt;/h3&gt;

&lt;p&gt;Programming, AI, college and learning.&lt;/p&gt;

&lt;p&gt;Or you can simply enter your own topic.&lt;/p&gt;

&lt;p&gt;The AI doesn't try to correct every single word while you're talking.&lt;/p&gt;

&lt;p&gt;That would make the conversation feel like an exam.&lt;/p&gt;

&lt;p&gt;Instead, it keeps the conversation natural and saves deeper feedback for the end.&lt;/p&gt;

&lt;p&gt;A conversation report can show:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Grammar       78%
Fluency       81%
Vocabulary    74%

Important corrections: 4

Focus next:
1. Past tense
2. Articles
3. Prepositions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  I wanted the AI to feel different in different moments
&lt;/h2&gt;

&lt;p&gt;TalkSaathi has four personalities, depending on what the learner is doing.&lt;/p&gt;

&lt;p&gt;During learning:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Friendly teacher&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During conversation:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Natural friend&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During correction:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supportive tutor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During speaking practice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Encouraging coach&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The AI should never make the learner feel embarrassed about making mistakes.&lt;/p&gt;

&lt;p&gt;A mistake is not a failure.&lt;/p&gt;

&lt;p&gt;It's the next thing to practice.&lt;/p&gt;




&lt;h2&gt;
  
  
  What happens when you don't know the sentence at all?
&lt;/h2&gt;

&lt;p&gt;I also wanted TalkSaathi to work outside a normal lesson.&lt;/p&gt;

&lt;p&gt;So I added a photo-based grammar feature.&lt;/p&gt;

&lt;p&gt;A learner can upload a photo containing English text.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;"I am going market yesterday."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TalkSaathi extracts the text and analyzes it.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Original
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I am going market yesterday.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Correct
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I went to the market yesterday.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Why?
&lt;/h3&gt;

&lt;p&gt;"Yesterday" tells us that the action happened in the past, so we use &lt;strong&gt;went&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Natural version
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I went to the market yesterday.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And then:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎤 &lt;strong&gt;Try saying the corrected sentence.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So even a photo becomes a speaking exercise.&lt;/p&gt;




&lt;h1&gt;
  
  
  How I built it
&lt;/h1&gt;

&lt;p&gt;The architecture is intentionally split into two important layers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The open-weight model is the brain.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ElevenLabs is the voice interface.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;╭─────────────────────────────────────────────────────────────╮
│                    🗣️  TALKSAATHI AI                       │
│              Your AI Saathi for English Speaking           │
╰─────────────────────────────┬───────────────────────────────╯
                              │
                              ▼
                    ┌───────────────────┐
                    │  Next.js Frontend │
                    └─────────┬─────────┘
                              │
              ┌───────────────┼────────────────┐
              │               │                │
              ▼               ▼                ▼
        🎤 VOICE INPUT    ⌨️ TEXT INPUT    🖼️ IMAGE INPUT
              │               │                │
              ▼               │                ▼
       ┌─────────────┐        │         ┌─────────────┐
       │ ElevenLabs  │        │         │     OCR     │
       │     STT     │        │         └──────┬──────┘
       └──────┬──────┘        │                │
              └───────────────┼────────────────┘
                              ▼
                    ┌───────────────────┐
                    │      🧠 GEMMA     │
                    │  Open-weight AI   │
                    │       Brain       │
                    └─────────┬─────────┘
                              │
             ┌────────────────┼────────────────┐
             │                │                │
             ▼                ▼                ▼
      ✨ Correction     💬 Conversation   🎯 Personalization
             │                │                │
             └────────────────┼────────────────┘
                              ▼
                    ┌───────────────────┐
                    │  ElevenLabs TTS   │
                    │   AI Voice Output │
                    └─────────┬─────────┘
                              │
                              ▼
                    🔊 SPEAK • PRACTICE
                              │
                              ▼
                       👤 THE LEARNER
                              │
                              └───────────────┐
                                              │
                                  🔄 Repeat &amp;amp; Improve
                                              │
                                              └───► 🧠 Gemma
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;shadcn/ui&lt;/li&gt;
&lt;li&gt;Gemma / compatible open-weight inference&lt;/li&gt;
&lt;li&gt;Hugging Face / compatible inference provider&lt;/li&gt;
&lt;li&gt;ElevenLabs Speech-to-Text&lt;/li&gt;
&lt;li&gt;ElevenLabs Text-to-Speech&lt;/li&gt;
&lt;li&gt;OCR&lt;/li&gt;
&lt;li&gt;LocalStorage&lt;/li&gt;
&lt;li&gt;Vercel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The backend uses Next.js API routes, so API credentials stay on the server.&lt;/p&gt;

&lt;p&gt;For the MVP, I deliberately avoided forcing users to create an account.&lt;/p&gt;

&lt;p&gt;Learning data such as progress, mistakes, phrases and preferences can be stored locally.&lt;/p&gt;

&lt;p&gt;Raw voice recordings and uploaded photos don't need to be permanently stored.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why an open-weight model?
&lt;/h1&gt;

&lt;p&gt;This was an important choice for me.&lt;/p&gt;

&lt;p&gt;I didn't want to build:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Frontend → closed AI API → response&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and call that the whole product.&lt;/p&gt;

&lt;p&gt;The open-weight model is responsible for the actual language-learning intelligence:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;grammar correction;&lt;/li&gt;
&lt;li&gt;explanations;&lt;/li&gt;
&lt;li&gt;Hindi → English conversion;&lt;/li&gt;
&lt;li&gt;conversation;&lt;/li&gt;
&lt;li&gt;lesson generation;&lt;/li&gt;
&lt;li&gt;mistake analysis;&lt;/li&gt;
&lt;li&gt;personalized exercises;&lt;/li&gt;
&lt;li&gt;phrase suggestions;&lt;/li&gt;
&lt;li&gt;image-text language analysis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gives TalkSaathi a separate &lt;strong&gt;reasoning layer&lt;/strong&gt; from its voice layer.&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;                 🧠 GEMMA
                    │
                    ▼
              ┌───────────┐
              │   BRAIN   │
              └─────┬─────┘
                    │
                    │ Understand
                    │ Correct
                    │ Explain
                    │ Personalize
                    │ Converse
                    │ Generate
                    ▼
           ┌─────────────────┐
           │   ElevenLabs    │
           │      VOICE      │
           └────────┬────────┘
                    │
                    ▼
              🎤 Listen &amp;amp; Speak
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This also means the AI layer can evolve independently.&lt;/p&gt;

&lt;p&gt;A different open model can be tested later without rebuilding the entire product.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why not just use Hindi → English translation?
&lt;/h1&gt;

&lt;p&gt;Because translation isn't the goal.&lt;/p&gt;

&lt;p&gt;If the app simply translated everything for the learner, the learner could become dependent on translation.&lt;/p&gt;

&lt;p&gt;That's why TalkSaathi uses translation as a temporary bridge.&lt;/p&gt;

&lt;p&gt;The sequence is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"I’m stuck"
      ↓
   Hindi
      ↓
English sentence
      ↓
Understand why
      ↓
Say it yourself
      ↓
Continue in English
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The final goal is not better translation.&lt;/p&gt;

&lt;p&gt;It's &lt;strong&gt;less need for translation&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  What building this taught me
&lt;/h1&gt;

&lt;p&gt;One thing became obvious while designing the product:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The hardest part isn't getting an AI model to generate a correction.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The harder question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What should happen after the correction?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the app simply says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Correct sentence: ..."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;the learning moment is over.&lt;/p&gt;

&lt;p&gt;But if it says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Now you try."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;the mistake becomes practice.&lt;/p&gt;

&lt;p&gt;Then another question appears:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if the learner makes the same mistake tomorrow?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's why TalkSaathi has mistake memory.&lt;/p&gt;

&lt;p&gt;And then:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What should they practice tomorrow?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's why the system uses the learner's history to recommend the next activity.&lt;/p&gt;

&lt;p&gt;The product became much more interesting once I stopped thinking about individual AI responses and started thinking about the &lt;strong&gt;learning loop&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  The part I'm most excited about
&lt;/h1&gt;

&lt;p&gt;It's not the dashboard.&lt;/p&gt;

&lt;p&gt;It's not the number of features.&lt;/p&gt;

&lt;p&gt;It's this tiny interaction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Now say it again."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because that's the difference between an AI that answers questions and an AI that actually helps someone practice a skill.&lt;/p&gt;

&lt;p&gt;TalkSaathi is designed around that idea.&lt;/p&gt;




&lt;h1&gt;
  
  
  Handing it to my friend
&lt;/h1&gt;

&lt;p&gt;The real test isn't whether I can make the demo work.&lt;/p&gt;

&lt;p&gt;The real test is whether my friend can open it tomorrow, press &lt;strong&gt;Start Practice&lt;/strong&gt;, speak without feeling embarrassed, make mistakes, and want to come back again.&lt;/p&gt;

&lt;p&gt;That's what I wanted to build.&lt;/p&gt;

&lt;p&gt;Not another English course.&lt;/p&gt;

&lt;p&gt;Not another chatbot.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;speaking companion&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  What's next?
&lt;/h1&gt;

&lt;p&gt;The current version focuses on the core speaking experience.&lt;/p&gt;

&lt;p&gt;There are still things I want to improve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;more advanced pronunciation analysis;&lt;/li&gt;
&lt;li&gt;better adaptive lesson generation;&lt;/li&gt;
&lt;li&gt;cloud sync;&lt;/li&gt;
&lt;li&gt;user accounts;&lt;/li&gt;
&lt;li&gt;PostgreSQL + Prisma;&lt;/li&gt;
&lt;li&gt;mobile support;&lt;/li&gt;
&lt;li&gt;more languages;&lt;/li&gt;
&lt;li&gt;teacher dashboards;&lt;/li&gt;
&lt;li&gt;community speaking challenges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But I want to validate the most important thing first:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does regular speaking practice with TalkSaathi actually make my friend more confident?&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Prize Category
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Best Use of ElevenLabs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TalkSaathi uses ElevenLabs for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speech-to-Text;&lt;/li&gt;
&lt;li&gt;Text-to-Speech;&lt;/li&gt;
&lt;li&gt;spoken learning content;&lt;/li&gt;
&lt;li&gt;AI conversation voice.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The reasoning layer remains an open-weight model, while ElevenLabs handles the voice interaction.&lt;/p&gt;




&lt;h1&gt;
  
  
  Try TalkSaathi
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Source Code:&lt;/strong&gt; &lt;a href="https://github.com/Rishabh-KSingh/TalkSaathi-AI" rel="noopener noreferrer"&gt;https://github.com/Rishabh-KSingh/TalkSaathi-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo Video:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/17Pd4YNAB7QNAFNTbSCoJyoxhqDwOKSQ3/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/17Pd4YNAB7QNAFNTbSCoJyoxhqDwOKSQ3/view?usp=sharing&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;I started with a simple observation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Knowing English and speaking English are two different skills.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I built something for someone who needed more opportunities to speak.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TalkSaathi AI — Your AI Saathi for English Speaking.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't just learn English. Practice speaking it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Building KisanMitra AI: A Full-Stack Voice Agent for Indian Farmers 🌾🎙️</title>
      <dc:creator>Rishabh Kumar</dc:creator>
      <pubDate>Sat, 15 Aug 2026 17:00:11 +0000</pubDate>
      <link>https://dev.to/rishabh_dev/-building-kisanmitra-ai-empowering-indian-farmers-with-a-full-stack-voice-agent-15f</link>
      <guid>https://dev.to/rishabh_dev/-building-kisanmitra-ai-empowering-indian-farmers-with-a-full-stack-voice-agent-15f</guid>
      <description>&lt;p&gt;&lt;em&gt;Day 10 of the **10 Days of Voice Agents – VoiceForBharat Edition&lt;/em&gt;* Challenge | Farm &amp;amp; Field Track*&lt;/p&gt;

&lt;p&gt;Imagine holding a smartphone in the middle of a mustard field in rural India.&lt;/p&gt;

&lt;p&gt;Your hands are covered in soil. The sun makes the screen difficult to read. You need an answer about your crop, weather, or mandi prices — but typing a long query or navigating through complicated portals isn't practical.&lt;/p&gt;

&lt;p&gt;Now imagine simply pressing a button and saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"भैया, कल बारिश होगी क्या? और धान में भूरा धब्बा रोग लगा है, क्या करें?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of searching through menus, you can simply talk.&lt;/p&gt;

&lt;p&gt;That's the idea behind &lt;strong&gt;KisanMitra AI (किसान मित्र AI)&lt;/strong&gt; — a full-stack, real-time bilingual voice agent designed specifically around agricultural assistance.&lt;/p&gt;

&lt;p&gt;The project combines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎙️ &lt;strong&gt;Murf Falcon TTS&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;LiveKit Agents&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Deepgram STT&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Google Gemini&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Next.js 15&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🗄️ &lt;strong&gt;SQLite&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;📞 &lt;strong&gt;SIP-based calling&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🚨 &lt;strong&gt;Human escalation&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🤝 &lt;strong&gt;Specialist agent handoff&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article is the complete story of how I built KisanMitra AI during the &lt;strong&gt;10 Days of Voice Agents – VoiceForBharat Edition&lt;/strong&gt; challenge.&lt;/p&gt;




&lt;h1&gt;
  
  
  🇮🇳 1. Why Voice for Indian Farmers?
&lt;/h1&gt;

&lt;p&gt;Voice assistants are often treated as convenience tools.&lt;/p&gt;

&lt;p&gt;But in agriculture, voice can solve a much more practical problem: &lt;strong&gt;accessibility&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Farmers may be working outdoors, using their hands, dealing with sunlight, speaking in Hindi or regional languages, and needing information quickly.&lt;/p&gt;

&lt;p&gt;The interaction shouldn't look 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;Open App
   ↓
Find Menu
   ↓
Select Category
   ↓
Fill Form
   ↓
Type Question
   ↓
Wait for Result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It should feel more 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;👨‍🌾 Farmer
    ↓
🎙️ "मेरी फसल में ये समस्या हो रही है..."
    ↓
🤖 KisanMitra AI
    ↓
🔊 Natural Voice Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For the &lt;strong&gt;Farm &amp;amp; Field track&lt;/strong&gt;, my objective was simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Make agricultural assistance as conversational and accessible as possible.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🏗️ 2. End-to-End System Architecture
&lt;/h1&gt;

&lt;p&gt;KisanMitra AI connects a real-time voice pipeline with AI reasoning, tools, memory, analytics, telephony and human escalation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                         👨‍🌾 FARMER
                             │
                 ┌───────────┴───────────┐
                 │                       │
          🌐 Web Browser            📞 Phone / SIP
                 │                       │
                 └───────────┬───────────┘
                             ▼
                       ⚡ LIVEKIT
                    Real-Time Audio
                             │
                             ▼
                    🎙️ Silero VAD
                  Turn Detection
                             │
                             ▼
                    📝 Deepgram STT
                    Hindi / Hinglish
                             │
                             ▼
                   🧠 KISANMITRA AGENT
                             │
                ┌────────────┼────────────┐
                ▼            ▼            ▼
             Gemini       Memory        Tools
                │            │            │
                │            ▼            ├── Weather
                │         SQLite           ├── Farmer Profile
                │                           └── Escalation
                │
                ▼
             Decision
                │
        ┌───────┴────────┐
        ▼                ▼
   Normal Answer    Complex Problem
        │                │
        │                ▼
        │          🌾 FASAL DOCTOR
        │          Specialist Agent
        │
        └────────┬───────────────┘
                 ▼
            🔊 MURF FALCON
             Text-to-Speech
                 │
                 ▼
              LIVEKIT
                 │
                 ▼
           👨‍🌾 FARMER HEARS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The architecture and integration layers are based on the project structure documented during the build.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔄 3. How a Voice Conversation Works
&lt;/h1&gt;

&lt;p&gt;Let's follow one conversation from beginning to end.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1 — Farmer speaks
&lt;/h3&gt;

&lt;p&gt;The farmer speaks through the browser microphone or a supported phone/SIP connection.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2 — LiveKit transports audio
&lt;/h3&gt;

&lt;p&gt;LiveKit handles the real-time audio communication.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3 — Voice Activity Detection
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Silero VAD&lt;/strong&gt; detects when the farmer starts and stops speaking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4 — Speech-to-Text
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Deepgram Nova-3 STT&lt;/strong&gt; converts the audio into text.&lt;/p&gt;

&lt;p&gt;It is designed to handle Hindi/Hinglish conversations and code-switching.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;"सरसों का Mandi Bhav क्या है?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 5 — Gemini processes the request
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Google Gemini&lt;/strong&gt; receives the transcript and relevant context.&lt;/p&gt;

&lt;p&gt;The agent decides whether it needs to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Answer directly&lt;/li&gt;
&lt;li&gt;Access memory&lt;/li&gt;
&lt;li&gt;Call a tool&lt;/li&gt;
&lt;li&gt;Escalate the issue&lt;/li&gt;
&lt;li&gt;Hand the conversation to a specialist&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 6 — Murf Falcon generates the voice
&lt;/h3&gt;

&lt;p&gt;The generated response is sent to &lt;strong&gt;Murf Falcon TTS&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The response is then streamed back as audio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7 — Farmer hears the response
&lt;/h3&gt;

&lt;p&gt;The audio travels through LiveKit back to the user.&lt;/p&gt;

&lt;p&gt;So the complete pipeline is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🎙️ Speech
   ↓
LiveKit
   ↓
Silero VAD
   ↓
Deepgram STT
   ↓
Google Gemini
   ↓
Tools / Memory
   ↓
Murf Falcon
   ↓
LiveKit
   ↓
🔊 Speech
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  ⚡ 4. Why Low Latency Matters
&lt;/h1&gt;

&lt;p&gt;Voice conversations feel very different from text conversations.&lt;/p&gt;

&lt;p&gt;If an AI takes several seconds before responding, users may think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Call cut gaya kya?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's why latency became an important part of this project.&lt;/p&gt;

&lt;p&gt;With streaming TTS, the project targeted approximately &lt;strong&gt;114–135 ms TTFB&lt;/strong&gt; for the Murf Falcon voice layer in the tested setup.&lt;/p&gt;

&lt;p&gt;The goal was to make the response feel immediate rather than waiting for the entire response to be generated first.&lt;/p&gt;




&lt;h1&gt;
  
  
  🎨 5. Building the Frontend
&lt;/h1&gt;

&lt;p&gt;I didn't want KisanMitra AI to look like a basic chatbot.&lt;/p&gt;

&lt;p&gt;I built a custom &lt;strong&gt;Next.js 15 + Tailwind CSS + shadcn/ui&lt;/strong&gt; interface with an agriculture-inspired emerald/green theme.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌿 Main UI Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Glassmorphism
&lt;/h3&gt;

&lt;p&gt;Frosted glass cards and layered panels give the interface a modern look.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎙️ Listening State
&lt;/h3&gt;

&lt;p&gt;The UI visually indicates when the agent is listening.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌱 Thinking State
&lt;/h3&gt;

&lt;p&gt;A separate state indicates that the AI is processing the request.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔊 Speaking State
&lt;/h3&gt;

&lt;p&gt;Audio visualizations show when the agent is responding.&lt;/p&gt;

&lt;h3&gt;
  
  
  💬 Live Transcript
&lt;/h3&gt;

&lt;p&gt;The user can see the conversation while speaking with the agent.&lt;/p&gt;




&lt;h1&gt;
  
  
  📦 6. Six Agricultural Modules
&lt;/h1&gt;

&lt;p&gt;The main dashboard contains six smart agricultural modules.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Module&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;⛅ &lt;strong&gt;Weather Forecast&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Weather, rain and temperature information&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌱 &lt;strong&gt;Crop Advisory&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Crop and farming guidance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📈 &lt;strong&gt;Mandi Bhav&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Market-related information&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🐛 &lt;strong&gt;Disease Control&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Crop disease and pest assistance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🐄 &lt;strong&gt;Livestock Care&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Animal and dairy-related assistance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🏛️ &lt;strong&gt;Government Schemes&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Agricultural scheme information&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"क्या कल मेरे खेत में बारिश होगी?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"गेहूं की पहली सिंचाई कब करनी चाहिए?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"धान की पत्तियों में धब्बे आ गए हैं, क्या करूं?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"आज मंडी में सरसों का भाव क्या है?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These modules are part of the frontend experience documented in the project.&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 7. The 9-Day Technical Journey
&lt;/h1&gt;

&lt;p&gt;KisanMitra AI wasn't built in one day.&lt;/p&gt;

&lt;p&gt;It evolved throughout the challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day 1 — Give the Agent a Voice 🎙️
&lt;/h2&gt;

&lt;p&gt;The first step was creating the basic real-time voice agent.&lt;/p&gt;

&lt;p&gt;I connected the voice pipeline and integrated &lt;strong&gt;Murf Falcon TTS&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This transformed the project from a text-based concept into a conversational assistant.&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 2 — Build the User Interface 🎨
&lt;/h2&gt;

&lt;p&gt;I moved beyond the backend and created a proper frontend.&lt;/p&gt;

&lt;p&gt;The goal was to give users a simple way to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start a conversation&lt;/li&gt;
&lt;li&gt;See the agent state&lt;/li&gt;
&lt;li&gt;View transcripts&lt;/li&gt;
&lt;li&gt;Interact with agricultural modules&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Day 3 — Add Memory 🧠
&lt;/h2&gt;

&lt;p&gt;A useful assistant shouldn't forget everything after every call.&lt;/p&gt;

&lt;p&gt;I introduced persistent storage using SQLite so that useful farmer information and interaction data could be retained.&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
 ├── Name
 ├── Language
 ├── District
 ├── Crop
 └── Previous Interaction
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Day 4 — Connect Real-World Tools 🔧
&lt;/h2&gt;

&lt;p&gt;The agent needed access to information outside the LLM.&lt;/p&gt;

&lt;p&gt;I added domain tools that allow KisanMitra AI to perform actions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Farmer profile lookup&lt;/li&gt;
&lt;li&gt;Profile updates&lt;/li&gt;
&lt;li&gt;Weather lookup&lt;/li&gt;
&lt;li&gt;Escalation&lt;/li&gt;
&lt;li&gt;Call status logging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core tools are documented around the &lt;code&gt;FarmerTools&lt;/code&gt; layer in the project.&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 5 — Make the Agent Proactive 📞
&lt;/h2&gt;

&lt;p&gt;Instead of always waiting for a farmer to start a conversation, I explored outbound SIP calling.&lt;/p&gt;

&lt;p&gt;This opens the possibility of proactive alerts.&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;Weather API
     ↓
Severe Weather Detected
     ↓
KisanMitra AI
     ↓
📞 Outbound Voice Call
     ↓
👨‍🌾 Farmer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Day 6 — Human Escalation 🚨
&lt;/h2&gt;

&lt;p&gt;AI shouldn't pretend to know everything.&lt;/p&gt;

&lt;p&gt;For complex or serious cases, KisanMitra AI can escalate the issue.&lt;/p&gt;

&lt;p&gt;The system can create a unique reference such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;KISAN-7842
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and send the relevant escalation information through a Discord webhook.&lt;/p&gt;

&lt;p&gt;This creates a human-in-the-loop workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 7 — Analytics Dashboard 📊
&lt;/h2&gt;

&lt;p&gt;Once the agent could handle conversations, I needed to understand how it was performing.&lt;/p&gt;

&lt;p&gt;So I built an analytics dashboard using:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next.js + SQLite&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The dashboard can track:&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;Call logs&lt;/li&gt;
&lt;li&gt;Session information&lt;/li&gt;
&lt;li&gt;Conversation data&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Day 8 — Specialist Agent Handoff 🤝
&lt;/h2&gt;

&lt;p&gt;One of the most interesting additions was the &lt;strong&gt;Fasal Doctor&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of forcing one agent to handle every agricultural problem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    KisanMitra AI
                         │
             ┌───────────┴───────────┐
             │                       │
       General Query          Complex Crop Issue
             │                       │
             ▼                       ▼
         Response              🌾 Fasal Doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The specialist-agent concept allows complex crop-related conversations to be routed to a dedicated agent.&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 9 — Bring Everything Together 🚀
&lt;/h2&gt;

&lt;p&gt;By this stage, KisanMitra AI combined:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice + Memory + Tools + Calling + Human Escalation + Analytics + Specialist Handoff&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project had evolved from a basic voice assistant into a much more complete voice-agent architecture.&lt;/p&gt;




&lt;h1&gt;
  
  
  📂 8. Project Folder Structure
&lt;/h1&gt;

&lt;p&gt;The project follows a monorepo-style structure separating the Python voice-agent backend from the Next.js frontend.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;murf-livekit-starter/
│
├── backend/
│   ├── src/
│   │   ├── agent.py
│   │   └── db.py
│   │
│   ├── tests/
│   │   ├── test_agent.py
│   │   ├── test_day5.py
│   │   └── test_day8.py
│   │
│   ├── .env.example
│   ├── .env.local
│   ├── pyproject.toml
│   └── kisan_mitra.db
│
├── frontend/
│   ├── app/
│   │   ├── api/
│   │   │   ├── token/
│   │   │   │   └── route.ts
│   │   │   └── analytics/
│   │   │       └── route.ts
│   │   │
│   │   ├── dashboard/
│   │   │   └── page.tsx
│   │   │
│   │   ├── layout.tsx
│   │   ├── page.tsx
│   │   └── globals.css
│   │
│   ├── components/
│   │   ├── app/
│   │   ├── agents-ui/
│   │   └── ui/
│   │
│   ├── app-config.ts
│   ├── package.json
│   └── .env.local
│
├── start_app.sh
├── start_app.ps1
├── AGENTS.md
├── README.md
└── BLOG_DEV_COMMUNITY.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This structure follows the backend/frontend separation documented in the source project.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧠 9. Important Backend Components
&lt;/h1&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;backend/src/agent.py&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This is the core of the voice agent.&lt;/p&gt;

&lt;p&gt;It connects:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;It also contains the agent instructions and farmer-specific tools.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;backend/src/db.py&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This manages SQLite persistence.&lt;/p&gt;

&lt;p&gt;The project uses tables such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;users
call_logs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;users&lt;/code&gt; table can store useful profile information, while &lt;code&gt;call_logs&lt;/code&gt; stores session-related information.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;frontend/app/api/token/route.ts&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This API route generates LiveKit access tokens and handles agent dispatch configuration.&lt;/p&gt;

&lt;p&gt;This is important because the frontend needs a secure way to establish a LiveKit session.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;frontend/app/dashboard/page.tsx&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This page provides the analytics dashboard.&lt;/p&gt;

&lt;p&gt;It displays information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Total calls&lt;/li&gt;
&lt;li&gt;Success rate&lt;/li&gt;
&lt;li&gt;Active sessions&lt;/li&gt;
&lt;li&gt;Call logs&lt;/li&gt;
&lt;li&gt;Transcripts&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  🚧 10. The Developer Struggles
&lt;/h1&gt;

&lt;p&gt;No real project is complete without debugging.&lt;/p&gt;

&lt;p&gt;These were two of my biggest lessons.&lt;/p&gt;




&lt;h2&gt;
  
  
  💥 Struggle #1 — The Silent Agent
&lt;/h2&gt;

&lt;p&gt;On Day 1, everything appeared to be running.&lt;/p&gt;

&lt;p&gt;The backend was active.&lt;/p&gt;

&lt;p&gt;The frontend connected.&lt;/p&gt;

&lt;p&gt;The microphone worked.&lt;/p&gt;

&lt;p&gt;But the agent was completely silent.&lt;/p&gt;

&lt;p&gt;After hours of debugging, I found the issue.&lt;/p&gt;

&lt;p&gt;My &lt;code&gt;.env.local&lt;/code&gt; contained:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# ❌ Wrong
AGENT_NAME=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent name was empty.&lt;/p&gt;

&lt;p&gt;I changed it to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# ✅ Fixed
AGENT_NAME=my-agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that, the correct agent dispatch was triggered and the voice agent finally started speaking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lesson learned:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Always check environment variables before assuming the entire voice pipeline is broken.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The project documentation specifically identifies explicit agent routing through &lt;code&gt;AGENT_NAME&lt;/code&gt; as part of the LiveKit token/dispatch setup.&lt;/p&gt;




&lt;h1&gt;
  
  
  💥 Struggle #2 — The Beautiful but Useless Mic Button 😅
&lt;/h1&gt;

&lt;p&gt;I created a beautiful animated microphone button.&lt;/p&gt;

&lt;p&gt;It looked amazing.&lt;/p&gt;

&lt;p&gt;But when I clicked it...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nothing happened.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The problem?&lt;/p&gt;

&lt;p&gt;I had designed the UI but hadn't connected the button to the actual LiveKit session lifecycle.&lt;/p&gt;

&lt;p&gt;The fix was connecting it with &lt;code&gt;useSessionContext()&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useSessionContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@livekit/components-react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;ActiveMicButton&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useSessionContext&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handleToggle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;connected&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;end&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleToggle&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      Start Conversation
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once connected to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the button actually started the voice session.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lesson learned:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A beautiful UI is useless if it isn't connected to the actual application logic.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🛠️ 11. How You Can Build Your Own Voice Agent
&lt;/h1&gt;

&lt;p&gt;If you're new to voice AI, start with four major components.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────┐
│     STT      │
│  Deepgram    │
└──────┬───────┘
       ↓
┌──────────────┐
│     LLM      │
│ Gemini / GPT │
└──────┬───────┘
       ↓
┌──────────────┐
│     TTS      │
│ Murf Falcon  │
└──────┬───────┘
       ↓
┌──────────────┐
│  LiveKit     │
│  WebRTC      │
└──────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Convert the user's voice into text.&lt;/p&gt;

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

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

&lt;p&gt;The brain of the agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Google Gemini&lt;/p&gt;

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

&lt;p&gt;Convert the generated answer back into speech.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Murf Falcon&lt;/p&gt;

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

&lt;p&gt;Move audio between the user and agent.&lt;/p&gt;

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

&lt;p&gt;The project uses this four-part STT → LLM → TTS → real-time transport architecture.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔐 12. Security: Don't Leak Your API Keys
&lt;/h1&gt;

&lt;p&gt;This is extremely important when building AI applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never commit:&lt;/strong&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
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to GitHub.&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;should contain only the required variable names.&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;MURF_API_KEY=
LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
DEEPGRAM_API_KEY=
GOOGLE_API_KEY=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the real values should remain in your local environment.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🚨 &lt;strong&gt;Never publish real API keys in a public GitHub repository.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🔮 13. What's Next for KisanMitra AI?
&lt;/h1&gt;

&lt;p&gt;KisanMitra AI is only the beginning.&lt;/p&gt;

&lt;h2&gt;
  
  
  📱 WhatsApp Voice Notes
&lt;/h2&gt;

&lt;p&gt;The next step is making the assistant accessible through WhatsApp voice messages.&lt;/p&gt;

&lt;p&gt;A farmer could simply send:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎙️ Voice Note&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;🔊 Voice Answer&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🗣️ Regional Indian Languages
&lt;/h2&gt;

&lt;p&gt;I want to expand beyond Hindi/Hinglish into languages and dialects such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bhojpuri&lt;/li&gt;
&lt;li&gt;Maithili&lt;/li&gt;
&lt;li&gt;Haryanvi&lt;/li&gt;
&lt;li&gt;Bundelkhandi&lt;/li&gt;
&lt;li&gt;Marathi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The long-term goal is to make voice AI feel natural across different parts of India.&lt;/p&gt;




&lt;h2&gt;
  
  
  📸 Multimodal Crop Diagnosis
&lt;/h2&gt;

&lt;p&gt;Imagine combining:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;📸 Crop Image
     +
🎙️ Farmer's Voice
     +
🧠 AI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A farmer could show an infected leaf while explaining the symptoms verbally.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛰️ Smarter Agricultural Data
&lt;/h2&gt;

&lt;p&gt;Another future direction is integrating richer agricultural and environmental data sources to make recommendations more context-aware.&lt;/p&gt;




&lt;h1&gt;
  
  
  📚 14. What I Learned From This Challenge
&lt;/h1&gt;

&lt;p&gt;The biggest lesson from these 10 days is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Building a voice agent is much more than connecting an LLM to a microphone.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A useful voice agent needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎙️ Natural voice interaction&lt;/li&gt;
&lt;li&gt;🧠 Memory&lt;/li&gt;
&lt;li&gt;🔧 Real-world tools&lt;/li&gt;
&lt;li&gt;📞 Communication capabilities&lt;/li&gt;
&lt;li&gt;🚨 Human fallback&lt;/li&gt;
&lt;li&gt;📊 Analytics&lt;/li&gt;
&lt;li&gt;🤝 Specialist agents&lt;/li&gt;
&lt;li&gt;🎨 Good UX&lt;/li&gt;
&lt;li&gt;🔐 Secure configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But above everything else:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;It needs to solve a real problem.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For KisanMitra AI, that problem is making agricultural assistance easier to access through voice.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔗 15. Project Links
&lt;/h1&gt;

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

&lt;p&gt;👉 &lt;strong&gt;[PASTE YOUR ACTUAL GITHUB LINK HERE]&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🌐 Live Demo
&lt;/h3&gt;

&lt;p&gt;👉 &lt;strong&gt;[PASTE YOUR ACTUAL LIVE DEMO LINK HERE]&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;👉 &lt;strong&gt;[PASTE YOUR YOUTUBE / LOOM VIDEO LINK HERE]&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't forget to replace all three placeholders before publishing.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🙏 16. Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Building KisanMitra AI has been one of my most rewarding experiences with voice AI.&lt;/p&gt;

&lt;p&gt;In these 10 days, I went from a basic voice interaction to building a system combining:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎙️ Voice&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧠 Memory&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔧 Tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

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

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚨 Human Escalation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

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

&lt;p&gt;↓&lt;/p&gt;

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

&lt;p&gt;This challenge taught me that the most exciting part of AI isn't just making models smarter.&lt;/p&gt;

&lt;p&gt;It's making technology &lt;strong&gt;easier for people to use&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For a farmer, technology shouldn't feel complicated.&lt;/p&gt;

&lt;p&gt;Sometimes the best interface is simply:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"भैया, मेरी फसल में ये समस्या हो रही है..."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And the AI should be ready to listen.&lt;/p&gt;

&lt;p&gt;🌾 &lt;strong&gt;That's the idea behind KisanMitra AI.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  ❤️ Special Thanks
&lt;/h1&gt;

&lt;p&gt;A huge thank you to &lt;strong&gt;Murf AI&lt;/strong&gt; and &lt;strong&gt;LiveKit&lt;/strong&gt; for organizing the &lt;strong&gt;10 Days of Voice Agents – VoiceForBharat Edition&lt;/strong&gt; challenge.&lt;/p&gt;

&lt;p&gt;The challenge gave me an opportunity to learn, experiment, break things, debug them, and build a voice AI system around a real-world Indian use case.&lt;/p&gt;

&lt;p&gt;If you're also building with voice AI, I'd love to hear what you're creating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What kind of voice agent are you building?&lt;/strong&gt; 👇&lt;/p&gt;

&lt;p&gt;Let's connect and build the future of voice AI together.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;#10DaysofAIVoiceAgents #MurfFalcon #VoiceForBharat #VoiceAI #AI #GenerativeAI #IndianAI #Agriculture #KisanMitraAI #LiveKit&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>agriculture</category>
      <category>ai</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
