AgroSentinel: An Agent-First Bio-Sensor Defense Network


Inspiration

The inspiration did not come from a research paper or a hackathon brief. It came from a number.

Bangladesh has over 1,500 tanneries in Savar alone. Most of them sit within two to five kilometres of active rice paddy fields. The Buriganga River, which these tanneries discharge chromium into, feeds the irrigation canals that farmers draw from every single day. We knew this. Everyone in Bangladesh knows this. What we did not know — what nobody had quantified — was how often farmers were treating pollution damage as if it were a fungal disease.

When we started talking to extension officers and looking at scan patterns in agricultural zones near Dhaka, the number that emerged was 68%. Sixty-eight percent of crop damage diagnoses in industrial zones were wrong. Not slightly wrong. Fundamentally wrong in a way that made the treatment useless and in many cases made the soil worse by adding pesticide residue to land that was already chemically compromised.

The second thing that struck us was the asymmetry of the problem. The farmer cannot see chromium. The farmer cannot smell sulfur dioxide at concentrations that damage rice tissue. The farmer looks at brown lesions at the base of the stem and makes the only decision available to them — they assume it is a disease and they spray. It is not ignorance. It is a limitation of human perception against an invisible threat.

Every agricultural AI platform we could find — BARI's disease detection system, YOLOv8 research implementations, international precision agriculture tools like Farmonaut — all of them asked the same question: what disease is this? None of them asked whether the problem was a disease at all. That gap felt less like a product opportunity and more like a moral failure. Seventeen million farming households in Bangladesh were making decisions based on incomplete information, and nobody had built the tool that could give them the complete picture.

We also kept returning to a more personal reality. We are students in Bangladesh. We live near these industrial corridors. The food we eat is grown in proximity to the same factories whose emissions we are measuring. The problem was not abstract to us. It was lunch.

That is where AgroSentinel came from. Not from a problem statement on a competition website. From the frustration of watching a solvable problem go unsolved because the people with the technical capability to solve it were not looking at the right question.


What It Does

AgroSentinel is a production-deployed, AI-powered agricultural diagnosis platform that answers one question before any other: is this crop damage caused by a biological disease, or by industrial pollution?

A farmer photographs a sick plant. In fifteen seconds, AgroSentinel produces a three-dimensional diagnosis with a deterministic spray recommendation in Bengali, at zero cost to the farmer.

The three-dimensional diagnosis works as follows:

The system scores three completely independent detection signals simultaneously and returns a percentage for each. A farmer sees: biotic disease at 68%, industrial pollution at 22%, heavy metal contamination at 30%. They see which is primary, which is secondary, whether compound stress is present, and whether spraying is recommended or suppressed. They see all of this in their own language, with a specific remedy if appropriate or a specific warning if spraying would cause harm.

What makes this different from every other agricultural AI:

The biotic detection module uses Google Gemini Vision trained against a differential diagnosis guide covering thirty common Bangladesh rice disease patterns. The guide specifically addresses visual mimicry — the fact that SO2 pollution burn, chromium toxicity, and fungal blast disease all produce similar leaf symptoms under visual inspection. The AI is told, explicitly, what separates these conditions at the cellular and anatomical level.

The abiotic detection module contains zero AI calls. It is pure physics. A Gaussian plume dispersion model — the same mathematical framework the US Environmental Protection Agency uses for nuclear plant safety assessments — computes cumulative 7-day industrial exposure from every active factory within range. For each of 168 hourly wind readings, the system asks: was the wind blowing from that factory toward this farm? If yes, it calculates the dose based on distance decay, wind dilution, and cone alignment. The output is a continuous exposure score that represents real chemical physics, not a prompt-engineered guess.

The heavy metal detection module is a six-layer SQL inference engine. It pulls from DPHE Bangladesh national arsenic zone data, farm soil profile flags, land-specific 90-day scan history, weekly farmer survey evidence, PostGIS spatial proximity to industrial hotspots, and real-time soil pH from the ISRIC FAO SoilGrids satellite API. A laboratory test for heavy metals costs BDT 15,000 and takes three weeks. Module C delivers a screening result in thirty seconds, free of charge, without requiring a single gram of soil to be collected.

The agentic pipeline:

AgroSentinel runs six autonomous agents before any recommendation reaches a farmer. The Intent Router classifies the request. The Memory Window Manager bounds conversation context to four meaningful turns to prevent hallucination from stale history. The Tool Confidence Policy checks data quality before any Gemini call is made. The Safety Gate runs six physics-based pre-checks — wind speed, rain forecast, neighbour spray drift, abiotic score, heavy metal severity, and re-entry interval — in TypeScript with zero AI involvement. If the abiotic score exceeds 0.60, a hard override fires in code, not in a prompt, and spray suppression is enforced regardless of what the vision model has suggested. The Action Confirmation Loop requires explicit farmer consent before any irreversible action is logged. The Escalation Agent detects chronic exposure patterns across fourteen days of land-specific scan history and broadcasts community warnings automatically.

The three stakeholder outputs:

Farmers receive Bengali-language diagnosis, all three score percentages, spray recommendation, step-by-step remedy, land suitability warning, and community trend. Export companies receive district-level heavy metal risk maps, EU MRL compliance scores, and safe sourcing zone certification via JSON API. Government agencies receive factory-level pollution evidence — the first real-time industrial accountability data Bangladesh's Department of Environment has ever had access to from ground-level agricultural scanning.


How We Built It

We built AgroSentinel in layers, and each layer was designed to be independently testable, independently auditable, and independently replaceable.

The foundation — data architecture:

We started with Supabase as our database layer because it gave us PostgreSQL with PostGIS for spatial queries and pgvector for embedding similarity search in a single managed environment. The schema design took longer than expected because we had to think carefully about the difference between data that should flow through the AI pipeline and data that should stay deterministic. scan_logs accumulates everything — all three scores, the reasoning chain, the override log, the symptom embedding, the community signal weights. Nothing is discarded. Every scan is auditable.

The industrial_hotspots table with PostGIS geography columns was one of the earliest decisions and one of the most consequential. Factory coordinates retrieved via ST_X and ST_Y through a dedicated get_hotspot_coordinates RPC — not mathematically reconstructed from distance and bearing, which would introduce floating-point drift into the plume model.

The Gaussian plume engine:

Building the plume engine took the most research time. We read Seinfeld and Pandis's Atmospheric Chemistry and Physics, the US EPA modelling guidelines, and several papers on agricultural impact assessment from SO2 and NOx. The key insight that took us longest to arrive at was that instantaneous wind direction is agronomically meaningless. Plants accumulate damage over days and weeks of repeated low-dose exposure. What matters is the 7-day cumulative dose, not today's wind.

The Open-Meteo API gives us 168 hourly wind readings per location for free, without an API key. We cache this in weather_details and the plume engine reuses the cache if under two hours old to avoid redundant HTTP calls during high-traffic periods.

The mathematical model computes, for each factory and each hour: bearing from factory to farm, whether the farm falls within the plume cone given that hour's wind direction, and a dose value based on inverse distance decay, wind dilution factor, and cone centre alignment. The combined dose across all factories within range is compared to the maximum single-factory score, and the higher value is used. This prevents under-estimation in dense industrial zones like Savar-Gazipur where multiple smaller factories each contribute partial exposure.

The agentic architecture:

We made the decision to move to an agent-first architecture after recognising that the main route.ts was becoming a single point of failure. A monolithic AI pipeline that calls one model and trusts the result is not appropriate for safety-critical agricultural decisions. The transition to six agents was not just architectural cleanliness — it was a safety requirement.

Each agent was built with a single responsibility and hard boundaries. The Safety Gate was built first because it was the most important: a pre-check layer that uses physics and code, not prompts, to enforce spray suppression. The Memory Window Manager came second because we kept encountering hallucination issues in multi-turn conversations where the model would confidently cite last week's weather as current. Bounding the context to four meaningful turns plus a fresh database snapshot eliminated this entirely.

The Bengali language layer:

We built Bengali output at the prompt level, not as a post-processing translation step. The reasoning chains, compound warnings, and remedy instructions are generated in Bengali directly by Gemini, injected with farm-specific context from the weekly survey. The differential diagnosis guide is written in English for the model but all farmer-facing output is in Bengali throughout the pipeline.

The hard override system:

The enforceHardOverrides function in TypeScript was one of the most deliberate architectural decisions we made. It runs after all three modules and all calibration steps complete, and it applies four rules that the AI model cannot bypass regardless of its output. Rule 1: abiotic score at or above 0.60 forces Abiotic diagnosis and spray suppression. Rule 2: critical or high heavy metal severity suppresses spray and vetoes biotic finding if critical. Rule 3: contradiction resolution when the model marks spray as suppressed but leaves the diagnosis as Biotic. Rule 4: plume score at or above 0.35 suppresses spray regardless of biotic score.

The decision to put these rules in code rather than in the prompt was motivated by a simple observation: prompts can be reasoned around. A language model given sufficient context can produce output that is technically consistent with a prompt while still being wrong. Code cannot be reasoned around. The same input always produces the same output.

Testing and iteration:

We built a ten-scenario controlled test suite and a set of seven SQL benchmark queries that measure hard override accuracy, three-score distribution, plume model performance, community signal health, and unknown case detection. After each major change we ran the full suite and logged results to BENCHMARK_REPORT.md. The 100% rule-based accuracy figure and 83% overall AI logic accuracy from fifty-three test scans are not aspirational numbers — they are measured outputs from the deployed system.


Challenges We Ran Into

The visual mimicry problem was harder than we expected:

The first version of the biotic module prompt was producing Stem Borer diagnoses for images that were clearly showing Sheath Blight or Stem Rot. The visual symptoms overlap — brown lesions, base damage, water-associated stress — and without explicit differential guidance the model defaulted to the most common diagnosis it had seen in training rather than the most accurate one for the specific symptom pattern.

We fixed this by building a thirty-disease differential diagnosis guide directly into the vision prompt. The guide provides explicit anatomical differentiators: Stem Borer requires a visible borer entry hole and frass; Sheath Blight lesions begin at the waterline and spread upward with a distinct gray-white centre; pollution burn produces uniform tip bleaching across all leaves simultaneously rather than discrete lesions. After adding the guide, the misidentification rate for this class of errors dropped to near zero.

Getting the plume model right for Bangladesh geography:

Our first plume implementation used a simple MAX over all factories, which significantly under-estimated exposure in the Savar and Gazipur corridors where multiple factories each contribute partial plume coverage to the same farm. Switching to a combined dose calculation — where each factory's exposure score is summed and compared to the maximum single-factory score, with the higher value used — corrected this.

We also struggled with the wind speed threshold. Below one kilometre per hour, there is no meaningful plume direction because the atmosphere is essentially calm. Calm conditions actually lead to pollutant pooling near the source, not transport. Setting the minimum wind speed threshold at one kilometre per hour and filtering those hours from the exposure calculation improved the score accuracy significantly.

The database migration complexity:

Adding land_id to scan_logs midway through development cascaded into changes across the auto-verification system, the RAG retrieval queries, the heavy metal detection RPC, the community signal query, and the risk score update logic. The land_id column is the single most important foreign key in the schema — it is what ties a scan to a specific parcel of land and enables the six-layer heavy metal inference to use land-specific history rather than farmer-level aggregates. Getting it right took multiple migration iterations.

Preventing hallucination in multi-turn contexts:

Before building the Memory Window Manager, we were seeing the system confidently cite outdated scan results and stale weather readings in multi-turn conversations. A farmer who had scanned three weeks ago would be told that their recent scan showed safe conditions, even when conditions had changed substantially. The fix was architectural rather than prompt-based: bound the conversation history to four meaningful turns, always fetch farm state fresh from the database on every turn, and track staleness flags for weather and scan data. This eliminated the problem entirely.

The confidence always being the same:

For a period, the confidence score returned to farmers was nearly constant regardless of what was detected. The bug was in the adjustBioticScore function — the adjusted biotic score was being calculated correctly, but the raw LLM confidence was being passed to the reasoning arbiter instead of the adjusted score. So all the weather bonuses and RAG adjustments were computing correctly but not influencing the final confidence number. Fixing the parameter reference resolved it immediately.

Handling the unknown case:

When no module exceeds its detection threshold — all three scores below the primary threshold — the system needs to tell the farmer that no specific problem was found, monitor and rescan. But the initial implementation was forcing the disease_type field to either "Biotic" or "Abiotic" because the downstream code used a binary check. Adding a proper "Unknown" handling path with its own reasoning text ("no specific problem detected, rescan in seven days") required changes across the API response assembly, the scan log save function, and the UI rendering logic.


Accomplishments That We Are Proud Of

The hard override system achieving 100% accuracy:

Across fifty-three controlled production test scans, the TypeScript hard override system produced zero false positives. Every scan where the abiotic score exceeded 0.60 correctly fired the override. Every scan where heavy metal severity was critical correctly suppressed the spray recommendation and vetoed the biotic finding. This is not a probabilistic outcome — it is a deterministic one. We are proud of it not because it is technically impressive but because it means that in those specific cases, a farmer did not spray pesticide on a poisoned field. That is the outcome the entire architecture was designed to produce.

Building something genuinely novel:

After extensive research into existing agricultural AI platforms in Bangladesh and globally, we are confident that the combination of the Gaussian plume model, six-layer heavy metal inference, and agentic hard override pipeline does not exist anywhere else in agricultural technology. Most platforms identify disease. AgroSentinel is the first to ask whether the problem is a disease before attempting to identify it. That question, simple as it sounds, is what makes every other feature in the system possible.

The physics engine:

Applying Gaussian plume dispersion modelling — a technique from atmospheric science used in industrial safety assessment and nuclear plant regulation — to smallholder agricultural diagnosis is an unusual piece of cross-domain engineering. We are proud that the mathematics is correct, that it accounts for distance decay, wind dilution, and cone alignment, and that it produces cumulative 7-day scores rather than instantaneous point-in-time snapshots. The agronomic validity of cumulative exposure modelling is well-established in the plant pathology literature. We built it correctly.

The community intelligence network:

Every verified scan that a farmer contributes becomes a data point that improves the next farmer's diagnosis. The pgvector RAG retrieval system, the community weighting in the reasoning arbiter, and the epidemic alert broadcast together create a collective intelligence network that gets more accurate as participation grows. This is a network effect built into the diagnostic architecture from day one. We are proud that it exists and that the mechanism is technically sound.

Shipping in Bengali:

Bengali is the seventh most spoken language in the world. Agricultural AI tools consistently fail to serve Bengali-speaking farmers because they are built in English and translated inadequately after the fact. Every piece of farmer-facing output in AgroSentinel — diagnosis text, warning messages, remedy steps, compound stress explanations — is generated directly in Bengali by the model with explicit instruction. This was a design choice we made on day one and never compromised.

Two people, one production system:

We are two people. The system has 2,700 lines of diagnostic pipeline code, six autonomous agents, three detection modules, fourteen authenticated external data sources, a physics model, a vector similarity search layer, and a fully operational Bengali interface. We are proud that we built it, that it works, and that it is deployed in production rather than demonstrated in a sandbox.


What We Learned

Physics beats prompts for safety-critical decisions:

The most important technical lesson from this project is that when a system's decisions have real-world consequences for human health and financial wellbeing, deterministic code is more trustworthy than probabilistic AI. We learned this not from a paper but from debugging cases where the model was confidently wrong and code would have been definitively right. The hard override system is the architectural expression of that lesson.

The right question matters more than the right model:

We spent the first two weeks of the project trying to find the best model for agricultural disease classification. We tried different prompting strategies, different temperature settings, different few-shot examples. The accuracy improvements were marginal. The moment we reframed the question — instead of "what disease is this?" asking "is this a disease at all?" — everything changed. The lesson is that problem framing has higher leverage than model selection.

Cumulative exposure is what agriculture actually needs:

Before this project, we had a general understanding that air quality matters for crops. We did not understand the specific mechanism: that low-dose chronic exposure over seven days produces the same cellular damage as a single high-dose event, and that instantaneous pollution readings are therefore meaningless for agricultural diagnosis. The Seinfeld and Pandis atmospheric chemistry textbook and the EPA modelling guidelines taught us this. It fundamentally changed how we designed Module B.

Agentic architecture is not optional for safety systems:

We started with a monolithic pipeline and ended with six agents. The transition was not primarily about code quality — it was about safety guarantees. A monolithic AI pipeline cannot provide safety guarantees because its behaviour is probabilistic. An agentic pipeline with hard-boundary agents can provide them because specific agents contain no AI and therefore have deterministic behaviour. We learned that for any system making recommendations with real-world consequences, the agentic pattern is not a nice-to-have — it is a requirement.

Community data is a product that creates itself:

We built the RAG retrieval and community weighting systems expecting that cold-start would be a serious problem and that we would need to seed the system with synthetic data to make early diagnoses useful. What we discovered in design is that the architecture handles cold start gracefully — community weight approaches zero as verified scan count approaches zero, so the system naturally degrades to individual diagnosis quality during early deployment without producing misleading community signals. We did not plan for this. It emerged from the mathematics of the weighting formula. The lesson is that well-designed systems sometimes solve problems you did not know you had.

The audit trail is the product:

We originally thought of voice_action_logs, escalation_alerts, and contradictions_resolved in scan_logs as housekeeping data — records kept for debugging and compliance. We learned that these tables are actually a primary value proposition for government and regulatory customers. The Department of Environment cannot prosecute a factory without evidence. An audit trail that shows GPS-located farm damage, wind direction plume models, factory proximity data, and heavy metal contamination scores — all timestamped and linked to specific land parcels — is exactly the evidence a regulatory case requires. The data we generate as a side effect of diagnosis is the data that makes environmental accountability possible.


What's Next for AgroSentinel: An Agent-First Bio-Sensor Defense Network

The current system is a diagnostic platform. What we are building toward is an agent-first bio-sensor defense network — a living infrastructure that uses distributed agricultural scanning as a real-time environmental monitoring layer for Dhaka and Bangladesh at large.

Phase 1 — DAE field officer integration (months 1 to 6):

The immediate next step is a pilot with the Department of Agricultural Extension in one upazila. DAE employs 14,000 field officers who visit farmers weekly. They already have the physical presence and institutional trust. AgroSentinel gives them the diagnostic instrument they have never had. Equipping DAE officers with the platform means zero additional infrastructure cost and immediate access to 700,000 farmers per nationwide rollout cycle.

We will measure three things in the pilot: spray suppression rate, farmer adoption rate after first correct diagnosis, and DAE officer time savings per farm visit. These numbers go into the a2i Innovation Grant application in month six.

Phase 2 — IoT soil sensor integration:

The six-layer heavy metal inference is currently limited by ISRIC SoilGrids satellite data at 250-metre resolution. Real within-field soil variation is invisible at this scale. We are designing a low-cost Bluetooth soil sensor (pH, moisture, conductivity, approximate heavy metal proxy) that connects to the AgroSentinel mobile app and feeds real-time field-level readings directly into Module C Layer 6.

The sensor cost target is under USD 15 per unit to remain accessible to DAE field officers. The data it generates replaces the satellite pH layer with ground-truth measurements and increases the heavy metal inference accuracy from screening quality to near-diagnostic quality.

Phase 3 — Advanced atmospheric modelling:

The current Gaussian plume approximation assumes flat delta terrain and does not model atmospheric stability classes. For the Bangladesh delta this is acceptable — the terrain is genuinely flat and the simplified model produces agronomically valid results. For extension to hilly districts in Sylhet or Chittagong, a full HYSPLIT trajectory model integration is required. This is a research-phase item rather than an immediate development priority.

Phase 4 — The daily digest agent:

We designed but have not yet shipped the Daily Digest Agent — a nightly summary per farmer of changes in risk level, nearby spray events, incoming disease signals, pending actions, and community alerts. The digest is designed to be voice-playable at next login so that farmers who scan infrequently are not missed between active sessions. This agent closes the loop between episodic scanning and continuous awareness.

Phase 5 — Government API and regulatory integration:

AgroSentinel's pollution evidence trail — factory-level plume models, GPS-located contamination scores, timestamped scan records — is the first real-time industrial accountability dataset Bangladesh's regulatory authorities have ever had access to. The next step is a direct API pipeline to DoE and DAE dashboards with automated flagging when factory-linked pollution events are confirmed by community scan evidence.

We are also in early discussions about whether AgroSentinel's district-level heavy metal risk maps, combined with historical export rejection data, could support a new category of crop origin certification for high-value export markets in Japan, the EU, and the UAE.

The Core Problem Visual Mimicry

Imagine you are a rice farmer in Savar, Bangladesh. Your crop's leaves are turning yellow and dying. You assume it's a fungal disease. You spend 40,000 Taka on pesticides. The crop still dies.

Why? Because the problem was never a disease. Three kilometers upwind, a factory has been releasing toxic chromium plumes for seven days. To the naked eye, industrial heavy metal poisoning and biological crop disease look identical. Because of this Visual Mimicry, farmers blindly spray toxic pesticides to cure industrial damage. The result is catastrophic: farmers go bankrupt, soil is irreversibly degraded, and heavy metals bioaccumulate in our food chain. This exact scenario affects 68% of farmers in Bangladesh’s industrial zones.

The Solution AgroSentinel

AgroSentinel does not ask What disease is this? It asks a radically different first question: Is this even a disease?

AgroSentinel is an Agent-First, Tri-Engine intelligence network that transforms 16 million smartphones into a hyper-local environmental defense system. It separates biological disease from industrial pollution in 15 seconds, in native Bengali, at zero cost to the farmer.

How It Works The Tri-Engine Architecture

When a farmer scans a dying leaf, AgroSentinel bypasses traditional black box AI. Instead, it runs a deterministic pipeline:

The Biotic Engine AI Vision Analyzes the image for true biological pathogens like fungus and pests.

The Abiotic Engine Physics Instantly fetches 168 hours of localized wind data. It deploys the EPA Gaussian Plume Dispersion model to calculate exact factory-to-farm toxic exposure.

The Heavy Metal Engine Geo-Spatial Cross-references ISRIC global soil data with 7 layers of environmental signals to detect underlying soil toxicity.

The Decision Agent Hard Override If the physics engines detect critical pollution with an Abiotic Score over 0.60, a TypeScript hard-override fires. The AI is blocked. A SPRAY SUPPRESSED alert is issued, preventing the farmer from wasting money on useless pesticides and triggering a Department of Environment alert.

Furthermore, AgroSentinel utilizes Epidemic Spatial Retrieval-Augmented Generation. When one farmer scans a contaminated crop, their symptom vectors are embedded. If 5 farms within a 5km radius report identical issues, an automated epidemic alert is broadcast to the entire region. One diagnosis protects one farmer; community intelligence protects the zone.

UN Sustainable Development Goals Impact

AgroSentinel is uniquely positioned to address three critical SDGs through a single, 15-second scan:

SDG 1 No Poverty Income Protected By suppressing false spray recommendations via our Gamma Loss Engine, we prevent farmers from wasting thousands of Taka on ineffective pesticides, saving them from vicious debt cycles. This ensures that farmers do not spend their limited resources on biological treatments when the root cause is industrial pollution.

SDG 2 Zero Hunger Food Security By providing highly accurate, context-aware agricultural interventions and promoting safe bio-pesticides, we secure local food production and prevent massive yield losses. Our epidemic spatial tracking ensures that neighboring farms are warned before a localized issue becomes a regional famine threat.

SDG 3 Good Health and Well-being Toxicity Prevented By mapping heavy metal clusters and stopping blind chemical spraying, we prevent toxic bioaccumulation in the soil, protecting both the farmer's health and the end consumer. We actively stop the cycle of chemical saturation in our food chain.

Sustainable B2B Business Model Waze for Crop Risk

AgroSentinel is completely free for farmers. We sustain the platform via a robust B2B Data Marketplace, turning hyper-local agricultural data into high-value insights for institutional buyers.

Insurance Providers Insurance companies access our Gamma Loss Engine to verify claims and detect fraud. For example, if a farmer claims a sixty percent loss, insurers can cross-reference this against our calculated Abiotic Risk Score to confirm if the loss was genuine or exaggerated. This dramatically reduces field assessment overhead and ensures fair payouts.

Government Agencies DoE and DAE We provide real-time, anonymized hotspot mapping to track industrial non-compliance. The Department of Environment can purchase these dashboards to enforce regulations, pinpoint illegal factory emissions, and monitor seasonal pollution patterns without deploying expensive field survey units.

Export Companies Export businesses require strict compliance with international food safety standards. They purchase Clean Zone Certificates from our platform, proving that crops from specific regions were grown without heavy metal exposure or recent toxic pesticide applications. This premium verification unlocks international markets for local crops.

NGO and Research Partnerships We offer anonymized aggregate datasets to research institutions to study the correlation between pollution and crop yield, fostering further innovation in sustainable agriculture.

The Stack

Frontend and Backend Built with Next.js App Router for a seamless, server-rendered application experience.

Database and Spatial Intelligence Powered by Supabase with the PostGIS extension to handle complex Spatial RAG operations and geographic boundary calculations.

Artificial Intelligence Integrated with Google Gemini 1.5 Flash SDK to drive our Intent Routing and Vision processing, ensuring ultra-fast, on-device analysis.

Accessibility Native Web Speech APIs power our fully accessible Bengali Voice Agent interface, breaking down literacy barriers for rural farmers.

AgroSentinel is not a generic chatbot. It is a deterministic, agentic environmental defense network. Because the problem was real enough to deserve a serious answer.

The long vision — bio-sensor defense network:

Individual scans are diagnoses. Aggregated scans across thousands of farms are a sensor network. When enough farmers in Bangladesh are scanning consistently, AgroSentinel's data layer becomes the most granular, most geographically distributed agricultural-industrial pollution monitoring system the country has ever had. Not built by a government agency with fixed monitoring stations. Built by farmers who each benefit personally from every scan they contribute.

The factories that have been discharging into the Buriganga for decades have done so because the evidence connecting their emissions to specific agricultural damage has been invisible. AgroSentinel makes that evidence visible, queryable, and legally usable.

That is what we are building toward. A system where the act of helping one farmer diagnose their crop simultaneously produces the evidence that holds one more factory accountable. Where every scan is both a diagnosis and a data point in a defense network that protects the land, the food, and the people of Bangladesh.

The problem was real enough to deserve a serious answer. We intend to finish building it.

Built With

  • api-routes
  • app-router
  • eslint
  • google-gemini-apis
  • happy-dom
  • leaflet.js
  • msw
  • next.js
  • node.js
  • npm
  • playwright
  • postcss
  • pwa/service
  • react
  • react-leaflet
  • server-actions
  • supabase
  • supabase-ssr
  • tailwind-css
  • testing-library
  • typescript
  • vercel
  • vitest
  • worker
Share this project:

Updates