Inspiration

Poultry farmers can't watch every metric on every house, all day, every day. Water consumption, feed intake, temperature, egg production, a small but meaningful drop in any one of these is easy to miss when you're managing multiple houses, workers, and operational tasks at once.

Existing monitoring tools stop at a threshold alert: "water consumption is low." That's not useful on its own, it doesn't tell you whether it's actually abnormal, how it compares to recent farm behavior, or whether it's even worth walking over to check. I wanted an agent that does the investigating for the farmer, not just the alerting.

The "Agents for Humans" theme, an agent that runs in the background and only surfaces when there's a real decision to make, is exactly the shape of this problem. FarmWatch isn't another dashboard to check. It's the thing that checks the dashboard for you.

What it does

FarmWatch is an autonomous background agent that watches incoming poultry farm sensor data, detects meaningful anomalies using deterministic thresholds, and, only when something is actually unusual, hands the anomaly to a Strands agent for investigation. The agent gathers the current reading, confirms the anomaly, pulls recent historical data for that specific house, compares the two, and produces a structured, evidence-based finding. The farmer gets a concise alert explaining what happened and why it matters, not a raw number on a dashboard.

Critically, FarmWatch is built to say "I don't know" when it doesn't know. If the available data can't support a cause, it explicitly says so rather than inventing a plausible-sounding explanation, this matters enormously for a tool that's meant to inform real operational decisions on someone's farm.

How I built it

FarmWatch deliberately separates two responsibilities that most "AI monitoring" tools blur together:

  • Deterministic monitoring (plain threshold math, no LLM involved) decides whether something unusual happened.
  • The Strands agent decides how to investigate it, using three tools it calls in a strict, prompted sequence: get_current_farm_data → check_for_anomalies → get_historical_data (only if an anomaly is confirmed).

The backend (Node.js/Express) receives simulated farm sensor readings, runs anomaly detection, and queues an investigation only when needed, normal readings are simply logged and the LLM is never invoked, keeping the system fast and cheap for the common case.

FarmWatch is built with the Strands Agents SDK, which provides the agentic reasoning layer for investigating detected anomalies. The backend handles the API, sensor readings, anomaly detection, and MongoDB persistence, while the Strands agent uses structured tools to investigate unusual farm conditions, compare current readings with historical data, and produce an evidence-based finding for the farmer.

Challenges I ran into

One of our biggest challenges was turning raw farm readings into something meaningful. A single reading does not necessarily indicate a problem, water consumption, feed usage, temperature, and egg production naturally fluctuate. I had to design anomaly detection that could identify genuinely unusual changes without overwhelming the farmer with false alarms.

Another challenge was giving the AI enough context to make useful decisions. Detecting that water consumption has dropped is only the first step. FarmWatch also needs to look at recent historical readings for the same house and compare the current conditions against normal patterns before suggesting what might be happening.

I also had to deal with incomplete and imperfect data. In a real farm environment, sensors can produce missing values, unusual readings, or measurements that do not tell the full story. I designed the system so the AI treats its conclusions as evidence-based assessments rather than guaranteed diagnoses.

Finally, I wanted the experience to be simple enough for a farmer to understand immediately. Instead of exposing raw sensor data or complicated AI reasoning, FarmWatch turns the data into clear alerts, explanations, and actionable information, helping a farmer understand what changed, why it may matter, and what to check next.

Accomplishments that I're proud of

Getting the deterministic/agentic boundary right. It would have been easy to let the LLM "just handle everything," including the anomaly math, but that's exactly the kind of unaccountable AI decision-making that erodes trust in a tool meant to support real farm operations. Keeping threshold detection deterministic and auditable, while giving the investigation to the agent, is the design decision I most confident in.

What I learned

That the hardest part of building a genuinely autonomous background agent isn't the agent loop itself, Strands made that straightforward, it's deciding, deliberately, what the agent is not allowed to do on its own. FarmWatch never takes an operational action; it investigates and informs. The farmer still decides.

What's next for FarmWatch

  • Replace simulated sensor data with real water meters, feed systems, and temperature sensors.
  • Add a weather tool so the agent can investigate whether external conditions explain an anomaly, rather than reporting "insufficient data" when weather is actually the answer.
  • Extend the alert into a human-in-the-loop approval flow (approve / reject / request more info) before any future operational task is created.
  • Expand from one simulated house to multi-house, multi-farm monitoring.

Built With

Share this project:

Updates

Submission history