Inspiration

When an elderly or vulnerable person needs help, the people best placed to respond are a few hundred metres away: a neighbour with a car, a relative who is a nurse, a volunteer from the block or the parish. Today that help is coordinated by phone calls and group chats, slowly, and nobody knows who is free, who is close, or who already went. Emergency services are for emergencies; most calls for help are not, and they fall through the cracks.

What it does

Neighbour In Need turns a one-press SOS from a smartwatch or phone into coordinated help from a local care group. The alert travels from the Wear OS watch to the phone, then to the dispatcher over the local network (mDNS), with an SMS fallback when there is no internet. A Strands Agents SDK agent receives the alert with location and context, finds group members who are nearby and available now, opens a ticket, picks the best responder by required skill and distance, and notifies the group. A second agent answers medication questions from a photo of the box or the prescription and the member's profile. Every step is written on the ticket, so the group knows who is going and what happened.

How we built it

  • Mobile: Android / Wear OS app with alert routing, a Wear data-layer bridge and an SMS fallback; Firebase holds the group, members and tickets.
  • Backend: two Strands Agents SDK agents (dispatcher.py, meds.py) built from @tool functions and a Bedrock model, exposed through an AWS Lambda handler; the same handler runs locally over FastAPI with mDNS advertisement for the demo.
  • The responder policy is a pure function with tests: required skill first, then distance, then how many skills the member brings. If nobody is available the agent notifies the whole group and marks the ticket as uncovered.
  • The Firebase tools return fixture data where marked TODO; the agent flow, routing and fallback paths are real.

Challenges we ran into

Routing an alert reliably when the phone has no internet, without turning the watch into a second phone: the answer was a local-network path first and SMS as the last resort. Keeping the agent's decisions short and auditable: every action lands on the ticket.

Accomplishments that we're proud of

An end-to-end path from a watch press to a notified responder, with a fallback at every hop, and a dispatch policy you can read and test.

What we learned

An agent for a group is mostly about knowing who is available and close, not about the model; the tools around the model matter more than the prompt.

What's next for Neighbour In Need

Real Firebase data behind the tools, a responder confirmation loop, and a deployment on AgentCore.

Built With

  • amazon-bedrock
  • android
  • aws-lambda
  • fastapi
  • kotlin
  • python
  • strands-agents
  • wear-os
Share this project:

Updates

Submission history