Inspiration

Community organizations often receive requests in simple natural language, but coordinating those requests can require several manual steps: understanding what is needed, finding the right volunteer, assigning the work, tracking it, and deciding what to do when nobody is available.

We built NeighborAid to explore how an AI agent could handle this coordination work while keeping a human coordinator involved when human judgment is needed.

What it does

NeighborAid is an AI-powered community coordination agent designed for neighborhoods, nonprofits, schools, libraries, and small local organizations.

A coordinator can enter a request such as:

"Mrs. Rao needs groceries delivered tomorrow morning."

The agent understands the request, identifies the required skill, finds a suitable available volunteer, creates a real request, assigns a real task, records the deadline, and verifies the result in the SQLite database.

If no suitable volunteer is available, NeighborAid does not invent an assignment. Instead, it automatically escalates the request to a human coordinator.

The dashboard provides visibility into requests, dispatched tasks, volunteer availability, and the agent's execution log.

How we built it

NeighborAid is built using the Strands Agents SDK with Llama 3.2 running locally through Ollama.

The application uses:

  • Strands Agents SDK for the AI agent and tool-based orchestration
  • Llama 3.2 + Ollama for local language-model reasoning
  • Flask for the web interface and API
  • SQLite for persistent community requests, volunteers, and tasks
  • Python for the application and community coordination tools

The agent has access to tools for creating requests, finding volunteers, assigning tasks, updating task status, checking task status, listing open requests, coordinating complete requests, and escalating requests.

The core workflow is:

Natural-language request → Agent understanding → Skill resolution → Volunteer matching → Task creation → Assignment → Database verification

If matching fails:

Natural-language request → Agent understanding → No suitable volunteer → Human escalation

Challenges we faced

One of the biggest challenges was making sure the AI agent performed real actions instead of simply generating convincing text.

We designed the system so that important operations are performed through actual tools connected to SQLite. Request IDs, task IDs, volunteer assignments, and statuses come from the database rather than being invented by the language model.

Another challenge was handling cases where no volunteer matches the required skill. Instead of forcing an assignment, the system has an explicit escalation path that updates the request and tells the coordinator that manual action is required.

We also tested the workflow through the dashboard and verified that successful coordination and escalation produced the expected database state and execution logs.

What we learned

This project taught us that building an AI agent is more than connecting a language model to a chat interface. The valuable part is giving the agent reliable tools that allow it to take real actions and verify their results.

We also learned the importance of human-in-the-loop design. An agent should know when it can complete a task and when it should stop and ask a human to intervene.

Impact

NeighborAid demonstrates how AI agents can reduce repetitive coordination work for small community organizations while keeping the process transparent and human-controlled.

Our goal is to make community assistance easier to coordinate, faster to respond to, and more reliable for both the people requesting help and the volunteers providing it.

Built With

Share this project:

Updates

Submission history