🏠 Inspiration

Living with others means having items that everyone needs to use; but, problems arise when everyone doesn't put back these items in their proper places. Examples include office, cooking, and cleaning supplies — essentially, belongings that are non-personal. Such problems are only heightened when caring for people living with Dementia.

Caring for people living with Dementia can be a struggle for both parties, especially if the care is taking place in the home of the one receiving the care. The one's living with Dementia often can't remember the proper location to put back all of their belongings — causing items to be misplaced. Caretakers then find themselves struggling to find the needed supplies to clean or cook a meal. Min-Now was built to solve that exact friction: knowing where things should be, and where they belong.

🔍 What it does

Min-Now includes a tool-driven narrow AI agent built with Elastic Agent Builder, connected to Elasticsearch indices. The agent uses custom ES|QL tools to efficiently query the right information without needing guided prompting.

Key abilities:

  • Create locations as specific as you need while maintaining its relation to its broader location. This could be differentiating a shelf located in your garage versus your downstairs
  • Add items and assign locations to them
  • Search for where something should be — whether you're looking for the proper location of an item or trying to figure out where to put it back. Min-Now allows manual searching of the item as well Agentic Powered Min Search. Min Search minimalizes the load of needing to remember the proper name or location of item you need to keep found

🛠️ How I built it

Software Architecture Diagram On Github

Agentic Sequence Diagram On Github

The stack is centered around Elastic and a Django backend:

  • PostgreSQL stores the core data (items, locations, users) and serializes quickly into NDJSON for syncing into Elasticsearch indices
  • Elasticsearch powers all item and location querying via ES|QL custom tools
  • Elastic Agent Builder made it easy to experiment with system instructions and wire up powerful custom tools directly to the agent
  • Clerk handles authentication via JWT
  • Rate limiter caps usage per user to manage inference costs
  • Backend enables the agent to be called directly via the Kibana /api/agent_builder/converse endpoint from a Django service layer
  • Frontend handles visualizing locations using a similar tree layout found in popular applications like VS Code.

🏔️ Challenges I ran into

  • Getting the agent to return direct, useful answers given sparse context about a user's home layout — without veering into vague, redundant, or irrelevant responses. This took significant iteration on the system prompt and tool call workflow
  • Inference time was a major hurdle. The initial implementation averaged 35 seconds per query — way too slow for a usable experience. I went through 8 different agent configurations including MCP, a LangGraph filter agent communicating via A2A with Elastic search agent, before landing on directly calling the Kibana converse API with custom ES|QL tools
  • Figuring out the correct attachment payload format for the Kibana API, which is still in Technical Preview with limited documentation. A needed update to address secure data handling to agentic systems

🏆 Accomplishments I'm proud of

  • Getting average query response time down to under 12 seconds — a 65%+ improvement from the initial 35-second baseline
  • Building an agent that strikes a real balance between UX, mixed query types, and speed
  • Successfully syncing a relational PostgreSQL schema into Elasticsearch with an enrichment policy that keeps location paths denormalized on items and queries efficient.

📚 What I learned

  • Directly calling a vendor's inference API with tightly scoped custom tools can outperform more complex orchestration frameworks and Protocols (LangGraph, A2A) both in speed and observability
  • System prompt design for narrow agents can make or break an agent as much as a tool can
  • The tradeoffs for modeling normalized versus materialized locations as tree nodes. And why using a Materialized Hybrid approach is best when location search is prioritized over location name changes

🚀 What's next for Min-Now

  • Group/household features to address the caretaker use case directly. This will enable shared item visibility across users
  • Funding & Going Public to give access to Min-Now to caregivers all around the world, while ensuring reduced inference costs for them
  • Caching layer for faster Postgres → Elasticsearch syncs
  • Fuzzy search + AI spell check to have the agent further close the gap between the name specified by the user and the actual name stored in the database
  • Expanded agent workflows to handle more edge cases and ambiguous queries
  • Stronger prompt injection defenses and mock security testing
  • Streaming responses for a snappier feel while the agent is reasoning and less waiting for the agent to respond
Share this project:

Updates