Shop Life.
Een voice-first gezinsassistent, ontworpen voor in de auto.
Werk blijft buiten de auto. Dan is de rit vrij, en Shop Life gebruikt die voor gezinscoördinatie en zelf bijleren. Praat ermee; het regelt de agenda, de maaltijden en research. Alles wat niet terug te draaien is, wacht op een ja in WhatsApp.
Drie taken voor onderweg.
Elke toepassing zit achter dezelfde spraakagent. Intentieherkenning bepaalt waar het gesprek heen gaat, het betreffende subsysteem handelt het af, en WhatsApp toont de bevestiging.
| Functie | Wat het doet | Waar | Flow |
|---|---|---|---|
| Gezinsagenda | Afspraken aanmaken in gewone taal, conflictdetectie, en proactieve herinneringen via WhatsApp tegen een gedeelde gezinsagenda. | Onder het rijden | Voice → parser → Google Calendar API → conflict check → WhatsApp confirm + reminder. |
| Maaltijdplanning + boodschappen | Recepten bedenken via spraak; de boodschappenlijst volgt uit het gekozen plan; de Picnic-mand wordt automatisch gevuld. | Onderweg naar huis | Voice → Spoonacular for recipes → list generation → Picnic API cart add → WhatsApp approval gate → checkout. |
| Research + debat | Grondig onderzoek naar elk onderwerp via spraak, met een melding via WhatsApp als het klaar is. Zodra het in de kennisbank staat, kan de assistent er een debat met je over voeren — RAG-onderbouwd tegen het onderzoek dat hij net heeft gedaan. | Lange ritten, tijd om zelf bij te leren | Voice → research orchestrator → Vertex AI embeddings → KB → debate agent (RAG over the same KB) → voice reply. |
Wat eronder draait.
| Laag | Detail |
|---|---|
| Spraakinterface | ElevenLabs Conversational AI — inkomende én uitgaande spraak. Ontworpen voor handsfree gebruik onder het rijden. |
| Parsing + classificatie | Google Gemini 2.5 Flash — snelle intentie- en entiteitsherkenning uit het gesprekstranscript. |
| Research + redeneren | Google Gemini 2.5 Pro — de zwaardere laag voor het researchsubsysteem en de debatantwoorden. |
| Embeddings + RAG | Vertex AI text-embedding-004 — vectoriseert de research-output zodat de debatagent per beurt de relevante stukken kan ophalen. |
| Backend | Python 3.11 + FastAPI op Google Cloud Run. Gebouwd met Docker, gedeployed via GitHub. Secrets in Google Secret Manager. |
| Data + opslag | BigQuery als datawarehouse, Cloud Storage voor documenten. |
De vier API's waar het op draait.
Elke integratie wijst naar iets wat het huishouden al gebruikt: de gezinsagenda, de gezinschat op WhatsApp, en Picnic, dat de boodschappen van het huishouden bezorgt.
- Google Calendar API — Lezen en schrijven in de gezinsagenda. De bron van waarheid voor wat er al gepland staat.
- WhatsApp Business API (via PyWa) — Asynchroon goedkeuringskanaal + proactieve herinneringen.
- Spoonacular API — Receptdata voor de maaltijdplanning-gesprekken.
- Picnic API — Automatisering van de boodschappenmand. De boodschappenlijst belandt in de mand.
De minder voor de hand liggende beslissingen.
- Voice erin, WhatsApp eruit
- Spraak is de juiste invoermodus voor de auto. Het is de verkeerde controlemodus — je kunt een boodschappenlijst niet hardop nalezen. Dus de spraakagent bereidt voor en de WhatsApp-thread keurt goed. Agenda-uitnodigingen en Picnic-afrekeningen wachten allebei op een ja in die thread; niets wat de dag van een ander raakt, wordt zonder vastgelegd.
- Gemaakt voor de reistijd
- Het systeem is ontworpen voor de reistijd, een stuk van de dag dat er toch al was, zodat het geen geconcentreerde werkuren opslokt.
- Dezelfde stack als deze site
- ElevenLabs Conversational AI + Gemini + Cloud Run is dezelfde familie waar de site rutgertuit.nl op draait, dus de auth, het secret-beheer en het deploymentpatroon lagen al klaar.
Het meeste regelwerk in een gezin is onzichtbaar werk. Het komt terecht bij wie de ruimte heeft om het bij te houden. AI is nuttig wanneer het dat bijhouden overneemt en de beslissingen zelf bij het gezin laat: welke maaltijd je kookt, welke middag je vrijmaakt. Dat is de lijn die Shop Life probeert vast te houden. Onder de motorkap leent het de multi-agent-opzet waar Luminary het hardst op leunt: de redeneerlogica blijft vast, terwijl de voorkeuren van het gezin als config meekomen.