Inspiration
To be completely honest, my main inspiration was pure builder curiosity and a hunger to build something real. As a 15-year-old, I've seen a lot of hackathon projects that are just simple text wrappers around a single AI model. I wanted to push myself and see if I could actually orchestrate a complex system of multiple massive AI models working together in a chain.
I chose the problem of urban gardening and plant pathology because it is a high-stakes environment. If an AI hallucinates the wrong disease and recommends the wrong chemical treatment, a gardener could accidentally destroy their local pollinator population (like bees).
My inspiration wasn't just to build an AI app, but to build an honest AI app. I was driven by the technical challenge of figuring out how to force an AI to admit when it doesn't know the answer, rather than confidently lying. That hunger to "tame" the AI, stop the hallucinations, and make it actually safe for the real world is what led to EcoSentinel.
What it does
EcoSentinel AI is an environmental decision support system designed specifically for urban and community garden coordinators.
When a gardener finds a sick or damaged crop, they upload a photo and provide basic context (like the crop type and visible symptoms) into the app. EcoSentinel then executes a strict, multi-step triage process:
Detection: It analyzes the image to classify the pest or disease and calculates a strict confidence score. Environmental Risk Assessment: It pulls real-time local weather data (temperature and humidity) to determine if the current environment is highly favorable for the disease to spread. Treatment Generation: It generates immediate actions and preventive measures based on the visual and weather evidence. Safety Review: It runs the proposed treatment through a secondary AI specifically to check if the actions could accidentally harm local pollinators (like bees) or the surrounding ecosystem. Most importantly, EcoSentinel does not guess. It is built with a strict 'fail-fast' safety net. If the system's confidence drops below 70%, or if it cannot verify the safety of a treatment, it triggers a CASCADE_HALT. Instead of hallucinating an answer, it immediately stops the pipeline and displays a red warning requiring manual human review.
How we built it
I took a different approach to building this: instead of hand-typing every line of Python, I acted as the orchestrator for an AI coding agent. I researched the tech stack—gathering the NVIDIA NIM endpoints, Open-Meteo API, and Supabase—and commanded my agent to assemble the frontend in Streamlit so we could have clean glassmorphic panels without spending a month writing CSS.
For the backend, I orchestrated the agent to build a linear pipeline using LangChain. First, when a user uploads a sick plant photo, it gets sent to the NVIDIA Nemotron Vision model. Then, it pulls live weather data from the free Open-Meteo API. Next, both the vision and weather data are fed into Llama 3.1 70B to generate the actual treatment steps.
But here is the coolest part I designed: before the user ever sees that treatment, the pipeline sends it to a massive NVIDIA Nemotron 120B model to do a strict "Safety Review" to make sure the treatment won't accidentally hurt local pollinators. Finally, the report gets securely logged into our Supabase database.
It took heavy prompt engineering and strict rules (my "Nightmare Protocol") to force the AI agent to connect these models properly without hallucinating. If ANY of those models fail, or if the vision confidence is below 70%, I programmed the pipeline to instantly halt (the CASCADE_HALT rule) and throw a human review error so it never gives dangerous advice.
Challenges we ran into
Massive AI Hallucinations: The AI agents would confidently invent fake data and features just to pretend the app was working. Fake UI & Mock Data: The AI kept generating fake buttons and dummy database entries instead of wiring up the actual APIs. API & LangChain Errors: Connecting different modules to each other in LangChain caused massive errors, and we frequently ran into API quota limits during rapid testing. Silent Errors: The AI wrote code that swallowed errors silently, which made debugging nearly impossible until I forced it to fail loud.
Accomplishments that we're proud of
I am incredibly proud of the "CASCADE_HALT" safety net. It's really easy to build an AI app that just spits out an answer. It's much harder to build an AI app that knows when to say "I don't know." I'm proud that EcoSentinel puts human oversight first and refuses to give dangerous agricultural advice if it isn't confident.
I am also proud that I finally created a working app after 5 major failures. It might not have every single complex feature I originally planned, but I actually created a working, honest app that can truly help real urban community garden coordinators right now.
What we learned
Honestly, the biggest thing I learned this week is that AI coding agents do not have common sense. If you just ask an AI to "build a complex app" and you don't know what you're doing, the AI will confidently hallucinate, give you broken code, say "it works flawlessly now!", and trap you in an endless loop of errors.
I learned that you actually need to know what tools the AI should use, because sometimes the AI has outdated knowledge. For example, my AI kept failing to connect API keys because its knowledge of LangChain was old, so I had to go research the updated docs myself using Gemini and feed that report back to my agent just to get it to work. (Also, I finally learned what LangChain actually is—I thought it was the same thing as LangGraph at first!)
I also learned how to actually "orchestrate" an AI. Early on, the AI was just faking progress by writing silent error handlers and inserting fake mock data instead of building real API calls. I got so fed up that I wrote a system prompt called the "Nightmare Protocol." It was a strict set of rules forcing the AI to fail loud, never fake data, and actually admit when it was broken. It completely saved the project.
By the end of the week, I wasn't just asking the AI to write code anymore. I was orchestrating it—commanding it to spawn specialized teams of sub-agents just to audit, debate, and test its own work. It was super frustrating sometimes, but I learned how to actually be the boss of the AI instead of just letting it write bad code.
What's next for Ecosentinel AI?
The next step is to revive the "Community Intelligence" database that we had to cut for the hackathon deadline. I want garden coordinators in the same city to be notified if three other gardens within a 5-mile radius all report the same pest in the same week, turning EcoSentinel into an early-warning system for urban agriculture.
Built With
- langchain
- llama-3
- nemotron
- nvidia-nim
- open-meteo-api
- python
- streamlit
- supabase
Log in or sign up for Devpost to join the conversation.