Damien Andell, cofondateur de 1492.vision, a réussi à décrypter l'architecture interne du Daily Hub de Google, révélant un système d'une complexité technique remarquable. Ces découvertes exclusives, qu'il m'a partagées en avant-première, s'inscrivent dans l'accélération fulgurante de Google vers l'hyperpersonnalisation que nous observons depuis quelques mois : Sources Préférées, pages profils d'éditeurs suivables dans Discover, Brand Profiles dans Merchant Center... Autant de briques qui convergent vers un seul objectif : anticiper vos besoins avant même que vous ne formuliez une requête.

Rappelez-vous : lors de nos investigations cet été, sur les 90 projets IA de Google via le menu debug de l'AI Mode, nous avions identifié "News Digest & Daily Brief" parmi la constellation d'agents spécialisés. Daily Hub est précisément la concrétisation de ces projets. Mais comme nous allons le voir, son architecture révèle une complexité technique qui explique pourquoi Google a dû suspendre temporairement ce service en septembre 2025, à peine un mois après son lancement sur les Pixel 10.

L'architecture à trois étages du Daily Hub

Pour comprendre le Daily Hub, imaginez un chef d'orchestre (Gemini) qui doit coordonner trois sections d'un orchestre symphonique, chacune jouant une partition différente mais devant s'harmoniser en temps réel. C'est exactement ce que tente de faire Google avec ce système.

Premier étage : la couche « mémoire & embeddings »

Le Daily Hub s'appuie sur deux types de documents fondamentaux qui constituent sa mémoire :

Le MemoryDocument représente l'unité de contenu complète. Chaque document contient :

  • Le contenu textuel structuré (title, summary, rawText découpé en segments)
  • Une liste d'identifiants d'entités (entityIds) extraites du Knowledge Graph
  • Deux types d'embeddings : contentEmbeddings pour le document entier et chunkEmbeddings pour chaque segment
  • Des métadonnées techniques (sourceDataIds, memoryTimeMs, servingState)
  • Des données binaires (memoryContentBytes, memoryInfoBytes) pour le stockage optimisé

Le MemoryEntityDocument est plus léger et représente chaque entité extraite :

  • Les caractéristiques de l'entité (entityType, entityText, entityDescription, entityTag)
  • La liaison au document parent via parentMemoryId et memoryQualifiedId
  • Un seul embedding (contentEmbeddings) sans découpage en chunks
  • Un horodatage spécifique (entityTimeMs)

Concrètement, si Daily Hub traite un article sur "Lionel Messi rejoint l'Inter Miami", le système va créer :

  • Un MemoryDocument contenant l'article complet avec ses embeddings
  • Plusieurs MemoryEntityDocument : un pour "Lionel Messi" (type: Person), un pour "Inter Miami CF" (type: Organization), un pour "soccer" (type: Sport), etc.

Cette double structure permet au système de naviguer soit par contenu (via les documents), soit par entité (pour des recommandations thématiques).

Deuxième étage : le triptyque de la personnalisation

Damien a découvert que trois systèmes parallèles alimentent la personnalisation du Daily Hub :

1. Nephesh (le système d'embeddings universels)

C'est le système d'embeddings universels de Google que Damien avait déjà documenté dans ses analyses sur Discover (pour préserver son anonymat, le nom de ce modèle a été modifié dans cet article). Dans le contexte du Daily Hub, Nephesh :

  • Stocke les centres d'intérêt dans ContentInterest.db via SQLite
  • Associe à chaque sujet un score numérique (string parsé en double)
  • Utilise des clés de déduplication (dedupe_key_nephesh_content_interest) pour éviter les doublons

Exemple de structure de données Nephesh :

{
  "football": "0.82",
  "cooking": "0.65",
  "AI": "0.91"
}

Le code découvert révèle le mécanisme de parsing :

CustomNepheshData.getScore() → String
parseDouble() → Double
→ injection dans le builder d'intérêt

2. AIP_TOP_ENTITIES

Ce système gère les "top entités" Knowledge Graph de l'utilisateur :

  • Mise à jour quotidienne basée sur les interactions
  • Alimentation via les boutons "Follow" de Discover dans le cadre du projet Google Profile Pages
  • Liste ordonnée par importance décroissante

Le mécanisme fonctionne ainsi : quand vous cliquez "Follow" sur un éditeur dans Discover, son entité KG (avec son MID comme /g/11h7hztqbj) est ajoutée à votre profil via l'URL profile.google.com. Ces Google Profile Pages permettent de voir l'historique social de l'éditeur, ses derniers articles, et créent un lien persistant entre vous et cette entité. Le lendemain, cette entité apparaît dans les prompts envoyés à Gemini pour personnaliser Daily Hub.

Mais attention, cette liste n'est pas construite uniquement à partir des clics sur le bouton « Follow », mais à partir d'un mélange de signaux explicites (ce que vous choisissez de suivre) et de signaux implicites (ce que Google déduit de votre navigation et des contenus que vous consommez).
Autrement dit, le bouton « Follow » est la partie visible de l'iceberg : il fournit un signal explicite fort, mais AIP_TOP_ENTITIES orchestre au final un classement plus large, qui agrège aussi des signaux implicites.

3. TAPAS_USER_PROFILE

Le système de profil sémantique qui agrège :

  • Les features comportementales (clics, temps de lecture, scroll)
  • L'historique de navigation cross-produits
  • Les préférences implicites déduites des patterns d'usage

Troisième étage : l'orchestration « ambient »

C'est là que la coordination s'opère. Le système AmbientRanking orchestre l'affichage des cartes via des métadonnées structurées :

AmbientRankingMetaDataDocument contient pour chaque carte :

  • Fenêtre de validité globale : startTimeMillis → endTimeMillis
  • Intervalles importants : importantTimeFrames (liste de créneaux prioritaires)
  • Score de confiance : confidence (double entre 0 et 1)
  • Actions : tapAction, dismissAction, seenAction
  • Métadonnées : creationTimestamp, documentTtlMillis, notificationDedupeId

Prenons un exemple concret :

Carte "Score Lakers vs Celtics" :

Fenêtre globale : 18h00 → 23h00
Intervalles importants : 20h00 → 22h00 (match en cours)
Confiance : 0.92
Comportement :
  - à 21h : score maximal (dans fenêtre + interval important + haute confiance)
  - à 10h : carte invisible (hors fenêtre)
  - à 19h : score moyen (dans fenêtre mais hors interval important)

Le système supporte différents types de cartes Ambient :

  • SportsScoreAmbientDataDocument : scores sportifs en temps réel
  • EventAmbientDataDocument : événements calendrier
  • InvestmentRecapAmbientDataDocument : récapitulatifs marchés financiers (rappelons que dans nos expérimentations de cet été, nous avions trouvé JUNE FinanceDailyRecapImplicitAppbarLaunch::LaunchLAUNCH)
  • CommuteAmbientDataDocument : informations de trajet
  • TypedThingAmbientDataDocument : contenus génériques typés

Les prompts Gemini : la pensée du système révélée

Damien a réussi à capturer les prompts exacts envoyés à Gemini. C'est une mine d'or pour comprendre la logique du système.

Prompt « News Topics » : l'actualité sur 7 jours

Le système utilise gemini-2.5-flash-lite avec ce prompt structuré détaillé :

Vous êtes expert pour comprendre les centres d'intérêt d'une personne et
identifier les sujets d'actualité qu'elle aimerait suivre. Vous êtes aussi
expert pour passer en revue les annonces et articles publiés au cours des
sept derniers jours via Google Search, puis résumer les points clés.

Les contraintes imposées sont nombreuses :

1. Date courante : 2025-08-31 ; toutes les sources dans les 7 derniers jours.
2. Les sujets doivent intéresser une personne ayant les intérêts suivants : [liste 100+].
3. Chaque sujet doit se rattacher à un intérêt différent, sans répétition.
4. Exclure tout thème lié à la banque et au shopping.
5. Catégories retenues : Global News, Business News, Technology News, Popular Culture News, Sports News, Science News.

Restrictions thématiques explicites :

"N'incluez aucun thème lié à la banque ou au shopping."
"Ne choisissez pas d'activités virtuelles liées à la banque en ligne et aux achats en ligne."

Formatage de sortie :

{
  "suggestions": [
    {
      "headline": "≤ 4 mots, sujet principal sans point",
      "category": "Global News | Business News | Technology News | Popular Culture News | Sports News | Science News",
      "article_publish_date": "date de publication la plus récente pour ce sujet",
      "article_title": "titre de l'article le plus récent",
      "rank": "1 à 5",
      "pitch": "≤ 6 mots, verbe à l'impératif, sans point",
      "image_description": "≤ 15 mots, image représentative sans personne, sans couleur, en minuscules"
    }
  ]
}

Prompt « Virtual Activities » : la recommandation YouTube élaborée

Le prompt complet révèle une logique complexe :

Vous identifiez des « activités virtuelles » adaptées à la persona : événements en direct,
replays, compétitions, concerts en streaming, vidéos d'info et divertissement.
Directives :
1) considérer les intérêts principaux par ordre d'importance
2) tenir compte de l'heure actuelle (ex. 10 h)
3) intégrer l'activité au planning du jour
4) considérer la localisation (ex. San Jose, CA)
5) tenir compte de la météo
6) exclure banque et achats en ligne
7) focaliser news et entertainment
8) prioriser du contenu neuf, frais, en direct

L'algorithme de sélection détaillé :

1. comprendre la persona et le caractère
2. proposer 5 activités pertinentes
3. pour chacune, lister les 3 meilleures chaînes YouTube
4. vérifier l'existence via une recherche Google
5. classer les 15 chaînes de 1 à 15
6. ne garder que les rangs [7, 4, 5, 1]

Prompt « Focus Areas » : la croissance personnelle

Vous aidez à identifier des objectifs de développement personnel alignés avec les intérêts.
Directives :
1) ne retenir que 5 sous-thèmes avec subtopicRank 1 → 29
2) pertinence avec les intérêts
3) 2 nouvelles idées par sous-thème
4) créatif et stimulant
5) exclure banque et shopping

Prompt « Distilled Context » : la synthèse contextuelle

Considérer : météo du jour, événements d'agenda, temps de trajet, heure courante
(phases : matin 4-12, après-midi 12-18, soir 18-22, nuit 22-4), date ISO, principaux intérêts.
Sortie « DistilledContext » ≤ 50 mots :
- niveau d'occupation
- créneaux courts (< 1 h) et longs (> 1 h)
- ressenti probable selon le planning et la persona

Le système de génération des « New Topics »

Un aspect notable découvert par Damien est le pipeline de génération de nouveaux sujets, stocké dans NewTopic.db.

Structure des données avec catégories fixes :

{
  "new_topic": [
    {"topic_category": "Learning","topic": "Game Development"},
    {"topic_category": "Self Improvement","topic": "Mindfulness Meditation"},
    {"topic_category": "Fitness & Wellness","topic": "Yoga Practice"},
    {"topic_category": "News Themes","topic": "Tesla Earnings"}
  ]
}

Distribution fixe découverte :

10 topics « Learning » :
Data Science, Blockchain Technology, Machine Learning, Cloud Computing, Stock Trading, Digital Photography, Creative Writing, Culinary Arts, World History, Game Development

10 topics « Self Improvement » :
Mindfulness Meditation, Financial Planning, Relationship Building, Time Management, Stress Reduction, Public Speaking, Emotional Intelligence, Personal Branding, Habit Formation, Conflict Resolution

10 topics « Fitness & Wellness » :
Yoga Practice, Cycling Outdoors, Weight Training, Swimming Laps, Pilates Class, Hiking Trails, Rock Climbing, Boxing Fitness, Dance Cardio, Running Club

20 topics « News Themes » :
Tesla Earnings, iPhone Release, Metaverse Development, Semiconductor Shortage, Cybersecurity Threats, Beyonce Album, Grammy Awards, Marvel Movies, Netflix Series, Coachella Festival, Lakers Playoffs, NFL Draft, Champions League, World Series, Kentucky Recruiting, Bitcoin Price, Inflation Report, Fed Meeting, Google Stock, Hollywood Strike

Total : 50 topics exactement, régénérés périodiquement pour maintenir la fraîcheur.

Les bases de données locales : le cache intelligent

Le Daily Hub utilise plusieurs bases SQLite pour le stockage local :

ContentInterest.db :

  • Stocke les intérêts Nephesh
  • Format clé-valeur via SqliteKeyValueCache
  • Clé de dédup : dedupe_key_nephesh_content_interest
  • Parsing string → double pour les scores

NewTopic.db :

  • Stocke les 50 nouveaux topics
  • Rotation périodique
  • Clé de dédup : dedupe_key_new_topic

Mécanisme de fallback :
si la récupération échoue, le système génère des intérêts par défaut via un builder qui applique des scores standards.

L'intégration avec l'écosystème Google

La synchronisation des entités via Google Profile Pages

Le flux de données :

Jour J - 10h : l'utilisateur clique "Follow" sur un éditeur dans Discover
  → redirection vers profile.google.com/cp/[ENTITY_MID]
  → l'entité KG est ajoutée au profil utilisateur

Jour J - 18h : le batch de mise jour s'exécute
  → l'entité apparaît dans AIP_TOP_ENTITIES
  → synchronisation avec les Google Profile Pages

Jour J+1 - 00h : régénération des prompts Daily Hub
  → l'éditeur est inclus dans la liste des top interests
  → pondération selon le score d'engagement

Jour J+1 - 6h : ouverture du Daily Hub
  → les contenus liés à cette entité ont un boost de scoring
  → affichage prioritaire dans les cartes pertinentes

Les types d'entités recommandables

Le système distingue deux catégories d'entités :

recommendationEntityTypes :

RECOMMENDATION_TVM (TV/Movies)
RECOMMENDATION_ENTERTAINMENT_VIDEO
RECOMMENDATION_EBOOK
RECOMMENDATION_AUDIOBOOK
RECOMMENDATION_PERSON
RECOMMENDATION_ARTICLE

continuationEntityTypes :

CONTINUATION_TVM
CONTINUATION_ENTERTAINMENT_VIDEO
CONTINUATION_RESTNT_RESERVATION
CONTINUATION_TRANSPORTATION_RESERVATION
CONTINUATION_SHOPPING
CONTINUATION_EBOOK

Le contexte temporel et spatial

Un élément important du Daily Hub est sa conscience du contexte :

Temporal awareness :

Heure actuelle injectée : "Consider the current time 4 PM"
Phases de la journée :
  - morning (4h-12h)
  - afternoon (12h-18h)
  - evening (18h-22h)
  - night (22h-4h)
Événements calendrier : "No scheduled events for the remainder of the day"

Spatial awareness :

Localisation : "San Jose, Santa Clara County, California, United States"
Météo : "No available weather forecast" (quand indisponible)
Temps de trajet : "Commute time Home-Work: empty"

Impact sur les recommandations :
le prompt "DistilledContext" génère un résumé de 50 mots maximum qui évalue :

  • le niveau d'occupation de la personne
  • les créneaux libres pour activités courtes (<1h) ou longues (>1h)
  • l'état émotionnel probable selon le planning : "They might feel relaxed and have the flexibility"

Les mécanismes de scoring avancés

Le score de confiance multiniveau

Chaque élément dans Daily Hub reçoit trois niveaux de scoring :

  1. Score d'embedding : similarité cosinus entre l'embedding utilisateur (Nephesh) et l'embedding contenu
  2. Score d'entité : boost si l'entité est dans AIP_TOP_ENTITIES
  3. Score temporel : multiplication par le facteur AmbientRanking

Le système combine ces trois scores pour obtenir la pertinence finale de chaque élément.

Les raisons de l'échec temporaire

Problème 1 : la désynchronisation des systèmes

Nephesh : mise à jour en batch toutes les 24h
AIP_TOP_ENTITIES : rafraîchissement en continu
TAPAS : agrégation sur fenêtre glissante de 7 jours
AmbientRanking : calcul en temps réel

Résultat : des incohérences temporelles qui génèrent des recommandations décalées.

Problème 2 : l'explosion combinatoire

Avec 50 new topics × 100+ top entities × 6 catégories d'actualité × 4 phases journalières, le système doit gérer des millions de combinaisons possibles. Les prompts Gemini deviennent trop complexes et génèrent des résultats imprévisibles.

Problème 3 : la qualité des recommandations

Les retours utilisateurs collectés sur les forums et réseaux sociaux rapportent des suggestions inadaptées :

  • "Perfect belly dance finger cymbals" pour un profil tech/SEO
  • Vidéos YouTube avec des avatars IA de faible qualité
  • Topics génériques comme "Analyze game engine capabilities" sans rapport avec les intérêts réels

Ces témoignages d'utilisateurs, recueillis notamment sur Reddit et Twitter, illustrent les difficultés du système à générer des recommandations pertinentes malgré la complexité de son architecture.

L'architecture complète : vue d'ensemble

 

Le cycle de vie d'une recommandation

Étape 1 : collecte des signaux (T-24h)

- Interactions Discover, YouTube, Search compilées
- Calcul des embeddings Nephesh mis à jour
- Entités KG extraites et scorées
- Synchronisation avec Google Profile Pages

Étape 2 : préparation du contexte (T-1h)

- Récupération du profil TAPAS
- Chargement des TOP_ENTITIES depuis AIP
- Extraction du contexte temporel/spatial
- Vérification des restrictions (no banking, no shopping)

Étape 3 : génération Gemini (T-0)

- Construction du prompt avec les 100+ top interests
- Appel à gemini-2.5-flash-lite
- Parsing du JSON de réponse
- Validation des contraintes de format

Étape 4 : scoring Ambient (T+10ms)

- Application des fenêtres de validité
- Calcul du score temporel
- Tri par pertinence finale

Étape 5 : affichage (T+100ms)

- Rendu des cartes selon le score
- Tracking des interactions
- Mise à jour des signaux pour le cycle suivant

Les optimisations cachées

Le système de déduplication

dedupe_key_nephesh_content_interest
dedupe_key_new_topic

Cela évite les doublons lors des mises à jour batch et maintient la cohérence des données.

Le cache multiniveau

L1 Cache : SQLite local sur device (ContentInterest.db, NewTopic.db)
L2 Cache : AppSearch pour les MemoryDocument avec index sémantique
L3 Cache : serveur pour les embeddings et entités KG

Les embeddings hiérarchiques

Document complet : contentEmbeddings
Chunks de texte : chunkEmbeddings
Entités : embedding simple
Cette hiérarchie permet des comparaisons à différentes granularités selon le besoin.

Conclusion : un système trop ambitieux... pour l'instant

Le Daily Hub révèle l'ambition démesurée de Google : créer un assistant qui non seulement comprend vos intérêts, mais anticipe vos besoins selon le moment de la journée, votre localisation, votre planning, et même votre état émotionnel probable.

L'architecture à trois couches (Memory, Personnalisation, Orchestration) est techniquement impressionnante mais souffre de problèmes de coordination qui expliquent la suspension du service. Les prompts Gemini montrent une remarquable tentative de générer du contenu personnalisé, mais la qualité des outputs reste insuffisante.

Ce qui frappe dans cette analyse, c'est la convergence de tous les systèmes Google vers cette hyperpersonnalisation : les entités Knowledge Graph deviennent centrales via les Google Profile Pages, les embeddings comportementaux s'affinent, et l'IA générative tente d'orchestrer le tout.

Daily Hub n'est pas un échec : c'est un prototype public qui révèle la direction que prend Google. Quand les problèmes techniques seront résolus, nous aurons affaire à un système capable d'anticiper nos besoins avec une précision remarquable. La question n'est plus "si" mais "quand" : et au vu de l'accélération observée depuis mi 2025, la réponse pourrait être : plus tôt qu'on ne le pense.

Les découvertes de Damien Andell nous offrent une fenêtre rare sur cette transformation en cours. Le Daily Hub suspendu aujourd'hui pourrait bien être, demain, le nouveau paradigme de notre interaction avec l'information numérique.