Vessa

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 Vessa

Closes 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 view

Keeps 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 rest

Proven, 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.

See the proof

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