Why a Voice Agent for Farmers?
India has over 100 million farmers. Most of them need timely advice on crops, weather, pests, and government schemes. But agricultural helplines are broken — busy signals, English-only menus, and hold music that loops for hours.
The answer isn't another app. It's a phone call. In Hindi. With an agent that remembers you, fetches live data, and knows when to hand you off to a real human.
That's Kisan Sahayak (किसान सहायक) — a voice AI agent built during the 10 Days of Voice Agents — VoiceForBharat Edition challenge by Murf AI.
What It Does
- Crop advice — sowing windows, soil health, irrigation, organic methods
- Live weather — district-level forecasts fetched mid-conversation
- Farmer memory — remembers returning callers by name, crops, and district
- Crop problem specialist — agent handoff for pest/disease diagnosis
- Human escalation — creates real help requests with farmer consent
- Outbound calls — proactively calls farmers with weather alerts
- Call analytics — tracks success rates, latency, and escalation metrics
- Multi-language — Hindi, English, Punjabi, Tamil, Bengali, and more
The Stack
Farmer speaks → Deepgram Nova-3 (STT) → Gemini Flash (LLM) → Murf Falcon (TTS) → Farmer hears
↓ ↓ ↓
Multi-language System prompt 55ms latency
Hindi code-mix 2000+ words Indian voices
Farmer tools Real-time
TTS: Murf Falcon (Aman, Sunaina voices) | STT: Deepgram Nova-3 | LLM: Google Gemini 3.5 Flash | Transport: LiveKit | Frontend: Next.js
The 10-Day Journey
Here's what happened each day, with the LinkedIn posts documenting the progress:
Day 1 — The Blank Repo
Cloned the Murf LiveKit starter, set up the voice pipeline (Deepgram → Gemini → Murf Falcon), and got a basic "hello" agent working in Hindi. The first time the agent responded in Hindi with the Aman voice, the latency was so low it felt like talking to a person.
Day 2 — The System Prompt
Wrote the 2000-word system prompt that defines Kisan Sahayak's personality. Added guardrails: never quote mandi prices, never give pesticide dosages, never claim to be government. The prompt is the product — everything else is infrastructure.
Day 3 — Caller Memory
Added SQLite-backed memory. The agent looks up returning callers at the start of every call, greets them by name, and remembers their crops and district. Farmers can ask to be forgotten — the system deletes everything on request.
Day 4 — Language & Identity
Improved Hindi code-switching. Farmers don't speak pure Hindi — they mix English, regional dialects, and jargon. Configured Deepgram for multi-language and taught the LLM to mirror the caller's language mix.
Day 5 — Live Weather
Built the weather tool using Open-Meteo API. When a farmer asks "kal baarish hogi?" the agent fetches district-level forecasts and speaks them naturally. The hardest part wasn't the API — it was the prompt rules: never add numbers the tool didn't return.
Day 6 — Frontend & Multi-Queue
Built the Next.js frontend with five queue variants, analytics dashboard, and escalation page. The LiveKit Agents UI components made the voice visualizer and controls easy. The hard part was routing calls to the right queue based on the caller's attributes.
Day 7 — Human Escalation
Added the escalation system. When the AI can't help — serious crop failure, distress, emergencies — it asks the farmer's permission and creates a real help request. The farmer gets a reference ID and honest expectations: "team aapko call karegi jab free ho."
Day 8 — Call Analytics & Specialist Handoff
Added the call analytics tracker (success/fail rates, latency metrics) and the crop problem specialist agent. The handoff preserves the full conversation — the farmer never repeats themselves. Different voice (Sunaina), different personality, same conversation.
Day 9 — Outbound Phone Calls
The scariest feature. SIP trunks, Linphone configuration, voicemail detection, call transfer. Kisan Sahayak can now call farmers proactively with weather alerts. Every call opens with WHO, WHY, and how to opt out. Voicemail detection hangs up gracefully.
Day 10 — The Blog Post (You're Reading It)
Writing about everything. Sharing the code, the architecture, the hard parts, and how someone else can build this in a weekend. The repo is public, the starter template works out of the box.
The Numbers
The Hard Parts
Hindi Code-Switching
Farmers don't speak textbook Hindi. They mix English, regional dialects, and agricultural jargon. Getting Deepgram and Gemini to handle natural code-mixing required language="multi" and a prompt that explicitly tells the LLM to mirror the caller's language pattern.
Agent Handoff Without Losing Context
The crop specialist handoff needed to preserve the entire conversation. The key: chat_ctx.copy(exclude_instructions=True). The history transfers, the personality changes, the farmer doesn't repeat themselves.
Privacy as a Feature
The memory stores only: name, district, crops, land size, irrigation type. Never phone numbers, Aadhaar, bank details, or medical info. Farmers control their data. That's not a limitation — it's trust.
Outbound Calling via SIP
SIP trunks, voicemail detection, busy signals, network timeouts — all new territory. The outbound agent needed explicit tools for detected_answering_machine and end_call. The opt-out is non-negotiable: every outbound call tells the farmer how to stop the calls.
Build Your Own Voice Agent
The starter template works out of the box. Change the system prompt, swap the voice, and you have a different agent in minutes.
View on GitHub Murf Falcon DocsQuick Start
# Clone the starter
git clone https://github.com/murf-ai/murf-livekit-starter.git
cd murf-livekit-starter
# Backend
cd backend
cp .env.example .env.local # Add your API keys
uv sync
uv run python src/agent.py download-files
uv run python src/agent.py dev
# Frontend (new terminal)
cd frontend
cp .env.example .env.local
pnpm install
pnpm dev
Open http://localhost:3000, allow microphone access, and start talking.
API Keys
You need keys from:
- LiveKit Cloud — URL, API key, secret
- Murf AI — for Falcon TTS
- Deepgram — for Nova-3 STT
- Google AI — for Gemini LLM
Never commit .env.local. The .gitignore already excludes it.
What's Next
- Real-time Hindi ↔ English translation for cross-language consultations
- WhatsApp integration for post-call weather summaries
- PM-KISAN portal integration for scheme eligibility checks
- Voice biometrics for passwordless caller identification
Acknowledgments
Built during 10 Days of Voice Agents — VoiceForBharat Edition by Murf AI.
The challenge wasn't just about building a voice agent. It was about building one that works for people who've never heard of AI, never used a chatbot, and don't care about technology — they just need help with their crops.
That's the bar. Everything else is demoware.
#VoiceForBharat — built with Murf Falcon, powered by stubbornness.