NagarikAI
Multi-agent civic OS for hyperlocal India

Civic issues, solved at city scale.

A photo. Seven specialized AI agents. A MILP solver. A public chain. One Bengaluru pothole goes from "reported" to "verified-fixed" without a helpline, without a 6-step app — and the citizen watches the system work, live, in their own language.

0%
MILP km reduction on real BBMP data
0
Real Bengaluru issues already loaded
0/16
Prompt-injection attempts caught by the gate
0.871
R² on real rainfall + complaints panel
Validated on the ground in Bengaluru

The system measures activity, not outcomes.

Citizens have learned to distrust the apps that exist. Crews close tickets without fixing them. NagarikAI rebuilds the loop with verification at the citizen end and CLIP+CNN audit at the crew end.

127k
BBMP complaints / 6 months
15%
stay open at any time
6+
fragmented apps citizens must navigate
Voices from Bengaluru
Every monsoon a tree branch comes down on our lane. Last June it blocked the road for two days — BBMP took 36 hours to even acknowledge the call.
S
Sravan G.
Marathahalli · Falling trees
They re-tarred the road in March and the same potholes were back in two months. There's no way to flag 'this fix didn't last' on the existing apps — you just file a fresh complaint.
R
Ravi P.
Kalyan Nagar · Repeat potholes
The streetlight on our side has been out for three weeks. I logged it on BBMP Sahaaya, the BESCOM helpline, and on Twitter. No reply on any of them. I don't even know which one I'm supposed to use.
A
Anila K.
Hebbal · Streetlights
Fragmented reporting

BBMP has half a dozen apps and a helpline. Citizens don't know which one to use.

Fake closures

Crews mark tickets resolved with a photo of a different street. No one audits.

Slow + wasteful dispatch

Crews drive 23% more km than they need to. Ambulances overturn in potholes that have been reported for weeks.

How NagarikAI works

The LLM proposes. The gate decides. The citizen sees every step.

AI does the work

Snap a photo or video → Gemini classifies it · Claude routes it · OR-Tools schedules it · CLIP + CNN verify the fix.

Gates keep AI honest

Every LLM output passes through deterministic guardrails. Hallucinations and prompt injections fail closed to the canonical SOP.

Closed feedback loop

Citizen sees every status change in real time (in EN / हि / ಕ). XP rewards verified contributions.

The routing taxonomy

8 issue types · 7 departments · 1 deterministic gate

Vision (Gemini 2.5 Flash) classifies your photo or short videointo one of these 8 categories. The Triage agent's SOP table routes each to the right BBMP / BWSSB / BESCOM department with a default SLA. The deterministic gate verifies the LLM's choice — any mismatch falls back to the canonical mapping below. See 7/7 video-classification probe on /references →

Photo or video
Citizen captures
Vision + Triage
Gemini 2.5 · Vertex AI · Claude · Gate
Department
+ SLA
Pothole
pothole
BBMP Roads
SLA · 72h
Garbage / waste
garbage
BBMP SWM
SLA · 24h
Streetlight
streetlight
BESCOM Streetlight
SLA · 48h
Water leak
water_leak
BWSSB
SLA · 12h
Sewage / manhole
sewage
BWSSB
SLA · 24h
Fallen tree
tree_fall
BBMP Horticulture
SLA · 6h
Encroachment
encroachment
BBMP Town Planning
SLA · 168h
Other
other
BBMP Helpdesk
SLA · 72h

High-severity (≥ 4) reports auto-halve the SLA at runtime. e.g. a sev-4 pothole becomes 36h instead of 72h. See /architecture for the gate's full decision tree.

For citizens

Earn XP for every verified contribution

Reporting civic issues is a public good. NagarikAI rewards citizens who show up consistently — every submitted report, every neighbour-verification, every crew-verified fix bumps your XP. Hit a tier and a soulbound NFT badge lands in your wallet (Polygon Amoy testnet — non-transferable, real proof of contribution).

+5 XP
Report an issue

Snap + submit a civic issue. Awarded the moment the report passes the BBMP gate.

+5 XP
Verify a neighbour's report

Confirm a nearby citizen's report from your area. 3 confirmations promote it to VERIFIED.

+10 XP
Your report gets fixed

When the ResolutionAgent's CLIP + CNN audit clears the crew's after-photo, the original reporter gets +10.

Badge tiers — climb the ladder

Each badge is a soulbound NFT (ERC-721, non-transferable)
Tier 1
Reporter
100 XP

First milestone — you've actively engaged with civic issues

Tier 2
Verifier
250 XP

You confirm others' reports too — earning community trust

Tier 3
Watchdog
500 XP

Sustained presence — your ward notices when you flag something

Tier 4
Sentinel
1,000 XP

Top-tier civic contributor — featured on the public leaderboard

Tier 5
Civic Hero
2,500 XP

Reserved for the most active citizens — a soulbound NFT on Polygon

Demo account starts at 125 XP — log in and you're already past your first milestone. See the live leaderboard on /impact.

The pipeline

7 specialized agents · under 10 seconds end-to-end

01
Vision

Gemini classifies photo or video

02
Dedup

PostGIS radius · CLIP · Vertex AI text embeddings

03
Triage

LLM routes, gate verifies

04
Verification

Citizens confirm

05
Scheduler

MILP picks the crew + slot

06
Resolution

CLIP + CNN audit the fix

07
Insights

Predict tomorrow's hotspots

Two sides · one loop

Citizens report. Crews fix. AI keeps both honest.

NagarikAI isn't a parallel BBMP. It's the front door for citizens and the inbox for departments — wired together so neither side can ghost the other.

Dimension
For Nagariks (citizens)
For Crew & Supervisor (BBMP/BWSSB/BESCOM)
Who reports hereAnyone in BBMP wards — phone is enoughDept supervisors + crew leads (seeded for 7 depts)
Where they sign in/login (citizen JWT)/dept-login (dept JWT, role = supervisor | crew_lead)
What they doSnap a photo or video + share locationAcknowledge ticket → dispatch crew → upload after-photo
What they seeLive tracking + agent timeline + status updates in EN/HI/KNSLA-sorted queue, dispatch log, supervisor stats, today's MILP stops
Trust mechanismVerifier badge (home location at signup) + community confirmsJWT role-gated routes + CLIP+CNN audits the closure photo
Reward+5 XP submit · +5 verify · +10 fix verified · badges + soulbound NFTSupervisor KPI: today's acked / resolved / SLA on-time %
What closes the loopNotification: "BBMP Roads acknowledged · crew on-site · resolved"Citizen sees status change in real time; +10 XP fires when CNN audit passes
The closed loop

From snap to resolved — every step is acked or escalated

~10s pipeline · 60s SLA-watcher tick · citizen never has to follow up
Citizen · 1
Citizen reports
Photo or video, drop location. /report
AI agent · 2
AI triages
Vision · Dedup · Triage assign dept + SLA in ~10s
Department · 3
Hub dispatches
WhatsApp · Email · Webhook · in-app — by dept channel
Department · 4
Supervisor acks
/supervisor — one tap. Citizen pinged instantly.
Crew · 5
MILP picks crew
OR-Tools CVRPTW — shortest path + skill match
Crew · 6
Crew fixes on-site
/crew/[id] — Start · After-photo · Complete
AI agent · 7
AI audits the fix
CLIP scene match + custom pothole CNN catches fake closures
Citizen · 8
Citizen +XP
Notified in their language · badge progress · loop closed
If a department goes silent — the escalation ladder
L0Nominal · awaiting ackL1SLA breach — re-ping supervisorL2+24h silent — ward councillorL3+72h silent — RTI auto-draft

apps/api/nagarik/jobs/sla_watcher.py ticks every 60s. Every escalation writes a citizen notification — citizens always know exactly where their ticket is.

WhatsApp · live for the citizen

NagarikAI pings the citizen at every step

Drop your number into the green opt-in on /report and the same 7-agent loop that triages your ticket also DMs you on WhatsApp the moment each stage finishes. No app to install. No refresh button. The phone buzzes.

  • AI classifies your photo or video
  • Forwarded to the right department
  • Confirmed by your neighbours
  • Crew on-site (MILP-optimised route)
  • Resolved · after-photo verified · +10 XP
N
NagarikAI
online · typing…
Step 6
BBMP Roads reported the fix. After-photo cleared CLIP+CNN audit. +10 XP earned — you're at 135 XP.
14:24 ✓✓
🚧Step 5
The crew is on-site now.
13:24 ✓✓
👥Step 3
3 nearby citizens confirmed the issue. Dispatcher is picking it up.
12:24 ✓✓
📤Step 2
Forwarded to BBMP Roads via their WhatsApp channel. SLA: by Mon 29 Jun, 14:24 IST.
11:24 ✓✓
🤖Step 1
NagarikAI received your report (#a1b2c3d4). Classified as pothole · severity 4/5.
10:24 ✓✓

Four upgrades that take NagarikAI from working app to civic platform

Every feature below runs in the live build today — not on a slide. The 7-agent loop, the MILP solver, and the closed-loop CLIP verifier are still the spine; these four upgrades graft new tissue onto each end of it.

Community DIY & Crowdfunding
When the system fails, neighbours can take over.
Citizens become Heroes

A low-severity issue (overflowing garbage, faded crosswalk, dark lane) that breaches its Level 3 SLA with no municipal action automatically unlocks a Community Fix module on the citizen's tracking page.

  • Citizens pledge small amounts (₹100/500/1,000) or volunteer hours.
  • Threshold: 5 volunteer-hours OR ₹1,500.
  • Threshold met → platform generates a DIY workplan (tools, safety, meet-up).
AI Budget Estimator
Vision Agent upgrade: dimensions → materials → cost.
Truck-loading view

Gemini 2.5 Flash now classifies and estimates physical dimensions + required materials. Supervisors get a budgeted line item before the truck even leaves the depot.

2×2 m pothole detected.
Materials: 3 bags cold-mix asphalt.
Estimated cost: ₹1,500.

Unit-price table is held in the Vision Agent's prompt — easy for a BBMP procurement officer to tune per quarter.

Viral Before/After loop
CLIP verifies → split-image generates → one-tap share.
Organic growth

The instant the Resolution Agent's CLIP audit passes, a watermarked Before | After graphic with “Fixed in 36 hours via NagarikAI” is auto-rendered. A single tap fires the Web Share API into WhatsApp, X, Instagram.

Before
After · ✓

Solves discoverability without a marketing budget — every fix becomes a recruitment moment for the next citizen.

Voice-first multimodal
Kannada · हिंदी · English — drops literacy barriers.
Native audio

Tap the mic on /report, describe the issue in your language. Gemini 2.5 Flash ingests photo and audio in a single multimodal call — no latency-heavy STT round-trip, no glossary mismatches on local place names.

“Ee pothole inda thumba problem agtide” → “This pothole is causing a lot of problems.”
The same audio also feeds the dispatcher context — “3 weeks standing, schoolchildren walk past at 8am”.
Why these four together? Voice removes the report-side bottleneck (literacy). Estimator removes the dispatch-side bottleneck (budgeting). Before/After removes the discoverability bottleneck (acquisition). DIY removes the failure-mode bottleneck (what happens when the city doesn't show up). Each one closes a hole the original 7-agent loop couldn't.
Roadmap

What ships next — beyond the hackathon

Today NagarikAI is a working web app + Meta WhatsApp sandbox. The architecture is production-ready; what's left is partnership, hardening, and platform reach. Here's the post-hackathon plan, ordered by user impact.

Q1Mobile
Native Android + iOS apps

Today: responsive PWA that runs in any mobile browser, including the WhatsApp in-app browser. Next: native React Native shell so we get true background location for verifiers, push notifications without a service-worker round-trip, and Play Store / App Store discoverability.

Q1Messaging
Meta WhatsApp Business verification

Today we run on Meta's sandbox (test recipients only). Next: complete business verification + register the citizen-facing 'civic_ticket_update' template with {type}/{severity}/{dept}/{sla} variables. Unlocks unsolicited messages to any number, not just registered testers.

Q1Partnership
BBMP MoU + real outbound channels

Switch each department's primary_channel from simulated to live. WhatsApp for Roads/SWM via their actual supervisor numbers; SMTP into the existing BWSSB and BESCOM complaint inboxes; signed webhooks into BBMP's e-Aasthi where available.

Q2Trust
Aadhaar + UPI verification

Prevent XP gaming. One verified human = one citizen account, tied to a UPI ID. Civic Hero NFTs become attestable identities crews can trust when triaging high-severity reports (sewage on busy roads, fallen power lines).

Q2Safety
SOS button for life-safety issues

Today every ticket follows the same 45s pipeline. Next: a 'this is dangerous right now' tap that bypasses verification, fires an SMS + WhatsApp to the on-call supervisor, and pings the nearest crew via live GPS — for downed power lines, exposed manholes, fire-prone garbage piles.

Q2UX
Live crew GPS + ETA on tracking

Crew app uploads location every 30s when a stop is in progress. Citizen tracking page shows a live blue dot + a real-time ETA so they don't have to keep refreshing.

Q3Scale
Multi-city rollout

Hyderabad, Chennai, Mumbai, Delhi. The ward polygons, SOP table, and department list are config; the agent loop and MILP are not. Roughly 1 week of data ingestion per city plus a local MoU.

Q3Infrastructure
Per-city MILP re-solver

Today the scheduler re-solves on every new issue (fine for the demo, wasteful at city scale). Next: nightly Cloud Scheduler job that re-solves once + stores assignments + diffs against the prior solution so dispatchers see only what changed.

None of this is research. The hackathon build proves the architecture works on real Bengaluru data (127k complaints, 243 wards, 14,580 ward-months of rainfall, 800-issue MILP backtest with 89.5% km reduction). Scaling it to the rest of India is a build problem — partnership conversations and platform reach, not new models.

Try it — it takes 30 seconds.

A hackathon demo account is preloaded. Sign in, pick a Bengaluru ward, snap a photo or video, and watch all 7 agents fire in real time.