A companion that remembers
Something to hold what matters — and remember to bring it back.
Vessa is an AI companion for an older adult living with early memory loss, and a calm view for the people caring for her. The name is the whole idea: a vessel, something that holds and carries.
Why it has to be trustworthy
Rose is 84. She lives alone, still independent, with early dementia — the kind where the day of the week slips, or a worry loops quietly back around.
A companion for someone like Rose can't just sound caring. A wrong time, an invented memory, a stray piece of medical advice — here, that isn't a harmless glitch. It can reinforce the very disorientation it's meant to ease, and trust, once lost, may not come back.
So Vessa is built to prove it's trustworthy, not just claim it.
What Vessa does
Remembers
Vessa carries a real profile of who Rose is, holds onto what she mentions from one conversation to the next, and — through an actual scheduler — checks in on her first, unprompted. Not a chatbot waiting to be spoken to.
Talk to VessaCloses the loop
A caregiver sets a reminder. Vessa weaves it into conversation warmly, the way a friend nudges you — never “REMINDER:”. Rose confirms in her own words. The caregiver sees the acknowledgment. One loop, fully closed.
See the Care Team viewKeeps the caregiver close
A calm “Today” — check-ins, reminders, and the occasional gentle signal worth a caregiver's attention — mostly a byproduct of the companion's own day. A window, not a clinical dashboard. No alarm theater.
See a day at restProven, not claimed
Two things back the trust up. Layered guardrails keep Vessa on the right side of the medical line — fast deterministic checks first, an LLM judgment call for the nuance, on both what Rose says and what Vessa is about to say.
And where an answer is computable — the time, the day, whether someone is in Rose's circle — Vessa answers in code, not from the model. A fact shouldn't be left to a guess.
All of it sits on a real eval suite: golden-set tests for safety, grounding, and memory, every case traced back to a real bug found in testing. And the results aren't buried in a terminal — they're visible live, in the app.
Under the hood
- Agent
- LangGraph create_agent + composable middleware
- Model
- gpt-4o-mini
- Memory
- Embedding-based episodic recall
- Proactivity
- APScheduler — real, scheduled check-ins
- Persistence
- SQLite — survives restarts
- Backend
- FastAPI on EC2, Caddy for TLS
- Frontend
- Next.js on Vercel