Inspiration

Family outings shouldn’t start with an argument.

Every multigenerational family knows the struggle: Grandma wants a classic film, Dad craves sushi, the teen wants escape rooms, and the 8-year-old just wants pizza. Current recommendation engines are built for individuals. They either optimize for one person and ignore everyone else, or they collapse into the lowest common denominator where nobody is actually happy.

We wanted a system that truly understands cultural taste across generations and actively looks for bridge experiences — the things that connect a grandparent’s love of classic storytelling with a teenager’s appetite for adventure. That idea became FamilyFusion.

What it does

FamilyFusion is a multi-agent AI system that maps the cultural taste profiles of every family member onto Qloo’s Taste AI™ knowledge graph (575M+ entities), then finds activities, restaurants, and films that genuinely resonate across generational divides.

It features:

  • Cross-generational taste mapping from free-text preferences
  • A fairness-aware ranking algorithm that guarantees no family member is ignored
  • Bridge discovery that highlights items connecting different generations
  • Deterministic constraint handling (budget, dietary, mobility, energy, time)
  • LLM-grounded explanations that never hallucinate facts
  • An interactive feedback loop for iterative refinement
  • A live Server-Sent Events agent trace so users can watch the AI reason in real time

The core scoring formula balances group consensus with fairness:

$$ \text{group_score} = \alpha \times \text{weighted_avg} + (1 - \alpha) \times \text{min_score} + \text{bridge_bonus} $$

How we built it

  • Frontend: Next.js 16, React 19, TypeScript, and Tailwind CSS 4 with a warm editorial design system
  • Backend: FastAPI, Python 3.12, and Pydantic v2
  • Taste Intelligence: Qloo Taste AI™ API
  • LLM Layer: Fully swappable OpenAI-compatible providers (GPT-4o, Gemini, Groq, or local Ollama)
  • Architecture: Six-stage multi-agent pipeline (Entity Resolution → Retrieval → Feedback → Fairness Ranking → Constraints → Grounded Explanation) with real-time SSE progress streaming
  • Infrastructure: In-memory TTL cache, rate limiting, Docker + Docker Compose for one-command deployment

The system is designed with deterministic fallbacks — it still works (using template explanations and keyword expansion) even if no LLM key is configured.

Challenges we ran into

  1. Ambiguous free-text preferences — Turning phrases like “Bollywood classics” or “cozy Italian food” into verified Qloo entities required robust semantic search, LLM query expansion, and confidence scoring with user confirmation.
  2. Fairness vs. consensus — Balancing average satisfaction with a hard minimum-satisfaction guarantee so no family member is left behind took multiple iterations of the scoring algorithm.
  3. Preventing homogeneous results — Early versions kept recommending very similar items. We solved this with Jaccard-based diversity filtering and an explicit “Too Similar” feedback signal.
  4. Grounding LLM output — Building a strict evidence packet and validation layer was harder than expected, but essential to eliminate hallucinated facts about venues, prices, or hours.
  5. Real-time transparency — Coordinating a multi-agent pipeline with clean Server-Sent Events progress updates required careful orchestration and error handling.

Accomplishments that we're proud of

  • A true multi-generational recommendation engine that optimizes for the weakest match instead of majority rule
  • Explicit bridge discovery that surfaces culturally meaningful connections across generations
  • Fully deterministic constraint enforcement (no LLM hallucinations for pass/fail decisions)
  • Strictly grounded LLM explanations with automatic template fallback
  • A live agent trace that makes the entire reasoning process transparent to users and judges
  • A flexible architecture that works with any OpenAI-compatible LLM (or none at all)

What we learned

  • Cultural taste is richer than collaborative filtering. Grounding recommendations in Qloo’s real knowledge graph produces far more interesting cross-generational bridges.
  • Fairness in group recommendation is a first-class algorithmic problem, not a UI afterthought. Explicitly optimizing for the minimum score dramatically improves result quality.
  • LLMs are powerful for language but dangerous for decisions. Separating deterministic logic from language generation is critical for trust.
  • Streaming the agent trace creates transparency and trust — users understand why a recommendation was made instead of treating the system as a black box.

What's next for FamilyFusion

  • Deeper personalization through long-term family taste profiles
  • Location-aware real-time availability and booking integrations
  • Expanded categories (travel, events, games, books)
  • Mobile-native experience and shareable family recommendation links
  • Stronger bridge-theme explanations that tell a short cultural story across generations
  • Public demo and open-source release so other families (and developers) can build on the fairness-aware ranking approach

Built With

Share this project:

Updates

Submission history