Inspiration

A caregiver may know that someone loves Elvis Presley or Roman Holiday, but turning those favorites into a warm, unhurried conversation takes preparation. What else might they enjoy? Which topics could upset them? How do you invite stories without making the conversation feel like a memory test?

Reminiscence Agent starts with a few familiar favorites and prepares a 30-minute session a caregiver can read aloud. The goal is connection, not testing memory.

What it does

Enter a nickname, birth year, hometown, one to three favorite singers, films or TV shows, and topics to avoid.

The agent then:

  1. Resolves the favorites to real Qloo entity IDs.
  2. Follows Qloo’s taste graph to related music artists, films and TV shows from the person’s youth.
  3. Screens candidates against the caregiver’s topics and default sensitive themes.
  4. Writes a session with an opening song, three conversation topics, a seated sensory activity and a calm closing song.
  5. Checks the generated plan in code before displaying it.

Each plan includes open questions, age-at-release notes where available, and a “Why this” explanation based on Qloo’s contribution scores.

After the session, the caregiver marks items as Enjoyed it, Neutral or Seemed uneasy. The agent uses that feedback to select new starting points, searches Qloo again, and excludes previously used or uneasy items by ID. It also explains what changed for the next session.

Plans can be printed and saved or resumed in the same browser.

How we built it

The app uses Next.js, React, TypeScript, Tailwind CSS, the Vercel AI SDK, Zod, Google Gemini and Qloo, deployed on Vercel.

Qloo handles favorite resolution through /search and cross-category expansion through /v2/insights. The workflow uses release-year filters, artist activity years, contribution scores and entity exclusions.

Gemini reviews candidate suitability, writes the session and interprets caregiver feedback. Code validates approved item IDs, question wording, length and repeated artists. Explicit contradictions between a safety verdict and its explanation trigger a review retry.

Intermediate search and review data carry expiring HMAC signatures to detect tampering. API keys stay on the server. Saved plans and notes remain in the caregiver’s browser.

Why Qloo, and what we measured

Qloo supplies stable cultural entity IDs, cross-category taste connections and contribution scores that the agent uses throughout the workflow.

We compared two LLM-only conditions with the deployed Qloo candidate pipeline across eight profiles. Both LLM conditions completed two runs per profile; the Qloo condition ran once per profile.

For three profiles sharing the same birth year and hometown but different favorites, mean pairwise Jaccard similarity was:

  • A1, Gemini Flash Lite: 0.268
  • A2, Gemini Flash: 0.265
  • B, Qloo pipeline: 0.044

Lower Jaccard means the candidate lists differed more when favorites changed. This is evidence of greater list differentiation in this small sample, not proof of better recommendations or caregiver outcomes.

Film/TV age-window fit among items with known years was 91.8% for A1, 89.5% for A2 and 100% for B. B’s figure reflects filtering and should not be interpreted as an independent quality advantage. A2 was more repeatable than A1 across repeated runs; B’s repeatability was not measured.

The public experiment summary includes these limitations. The original raw JSON and reproduction script are not yet published, so the summary is not a complete reproducibility package.

Challenges we ran into

Models sometimes returned quiz-like questions, reused artists or produced inconsistent safety explanations. We added validation, targeted retries and bounded repairs instead of relying on prompt wording alone.

The extended experiment also encountered model-overload errors and daily quotas. Successful responses were preserved, and only missing runs were resumed.

Title matching introduced another challenge: a popularity-based search can select a remake instead of the intended original. Apparent year errors therefore required careful interpretation.

What we learned

Different lists do not automatically mean better personalization, and repeatable lists do not automatically mean better recommendations. We kept those measurements separate and reported results that did not favor our approach.

We also learned that stable entity IDs make the feedback loop practical: the next search can exclude exactly what was used or caused unease. Contribution scores let the app explain a recommendation’s source without asking the language model to invent one.

What’s next

The next steps are caregiver usability testing, broader cultural coverage and publication of the full experiment audit package.

The current app is English-language and US-centric. It has not been tested with caregivers or people living with dementia. Safety screening is an AI judgment, not a guarantee, and caregivers should review each plan and follow the person’s comfort. Free-tier API limits can interrupt planning.

Reminiscence Agent is a conversation aid, not medical advice.

Try it

Open https://reminiscence-agent.vercel.app/, press Try an example, then Build a gentle session. After reviewing the plan, mark reactions and try Plan the next session.

Source code: https://github.com/ooseok118-oss/reminiscence-agent
License: MIT

Built With

Share this project:

Updates

Submission history