Le 15 mai 2026, Elon Musk a publié sur X le code source complet du nouvel algorithme qui gère le fil principal « Pour toi ». Ce dépôt GitHub (xai-org/x-algorithm, sous licence Apache 2.0) est une première mondiale : jamais une grande plateforme n’avait ouvert à ce point les coulisses de son moteur de recommandation. Concrètement, quand vous ouvrez X, un « chef d’orchestre » appelé Home Mixer (écrit en Rust) sélectionne environ 1 500 messages candidats, les enrichit avec des métadonnées (auteur, médias, statut Premium, etc.), applique des filtres, puis les note grâce à un modèle d’intelligence artificielle nommé Phoenix. Phoenix, un transformeur inspiré de Grok (le modèle d’IA de xAI), prédit pour vous personnellement la probabilité que vous fassiez 15 à 19 actions différentes sur chaque tweet : like, réponse, repost, temps passé à lire (dwell), clic, suivi de l’auteur… mais aussi les actions négatives (blocage, mute, signalement). Il calcule ensuite un score final et trie les messages du plus intéressant au moins intéressant.

Transparence de X : un grand pas en avant… mais pas encore total
X est aujourd’hui largement plus transparent que TikTok, Instagram, Facebook ou YouTube, qui ne publient jamais leur code. Ici, on voit l’architecture complète, le modèle Phoenix (même une mini-version que l’on peut tester soi-même), tous les filtres et la formule de scoring. X s’engage même à mettre à jour le dépôt tous les 4 semaines. C’est inédit et louable : développeurs, chercheurs et utilisateurs peuvent vérifier, proposer des améliorations et comprendre pourquoi leur contenu marche ou pas.

Ce qui manque encore : les poids exacts (combien vaut vraiment une réponse ?), les seuils précis des filtres (âge max du tweet, etc.) et les configurations finales utilisées en production. Ces détails restent dans des fichiers internes non publiés.
La raison principale est probablement d’empêcher les spammeurs de truquer le système et conserver un avantage concurrentiel. Il en résulte que l’on comprend le « pourquoi » général, mais on ne peut pas auditer 100 % des décisions en temps réel. C’est mieux que le secret total des autres, mais ce n’est pas encore la transparence totale promise.

Les ratios cachés : la formule et les calculs que l’on peut deviner
Même si les chiffres exacts restent secrets (les poids ou weights ne sont pas publiés dans le code ouvert), la communauté et les analyses du code permettent de deviner une hiérarchie claire, comme un concours où chaque action vaut des points différents.
La formule est claire et publique dans le fichier weighted_scorer.rs : Score final = Σ (poids_i × probabilité d’action_i)

Réponses > Reposts > Likes > Liens externes
Une réponse (reply) vaut probablement 5 à 10 fois plus qu’un simple « like », car elle crée une vraie conversation. Un repost (repartage) pèse lourd car il diffuse le message. Un like compte, mais moins. Un lien vers un site extérieur ? Il est souvent enterré en bas du fil, car l’algorithme prédit que tu y passeras moins de temps.
- Phoenix prédit que tu as 10 % de chance de répondre (P(reply) = 0,10).
- Si le poids d’une réponse vaut environ 13,5 (estimation communautaire basée sur l’analyse du code et des versions antérieures), cette réponse contribue +1,35 au score.
- Une simple probabilité de like à 50 % (P(like) = 0,50) avec un poids de seulement 0,5 ne contribue que +0,25.

Règle facile à retenir pour tous : l’algorithme récompense ce qui retient vraiment l’attention humaine. Une seule réponse vaut environ 27 fois plus qu’un like. Un repost pèse environ 20 fois plus qu’un like. Une réponse de l’auteur lui-même à un commentaire peut valoir jusqu’à 150 fois un like. Le temps passé à lire (dwell) et le clic sur le profil comptent très fort. Les liens externes purs sont souvent enterrés parce que l’algorithme prédit un faible temps de lecture.
En résumé : l’algorithme ne récompense pas la quantité de likes, mais la qualité de l’engagement humain. Il faut donc écrire des posts qui poussent vraiment à répondre ou interagir (questions ouvertes, débats respectueux), proposer des textes ou vidéos longs qui font rester longtemps dessus, et éviter les pubs avec un simple lien. Si votre tweet crée des conversations, il monte tout seul. Si beaucoup de gens le bloquent, le mutent ou cliquent « pas intéressé », le score plonge (les poids négatifs sont très lourds, parfois -75 à -369 pour un blocage ou un signalement).
L’invisibilisation algorithmique : ce qui ressemble à un « shadowban » et comment l’éviter
Oui, il existe une invisibilisation algorithmique (souvent appelée shadowban). Ce n’est pas un bouton « cacher/invisibiliser ce compte » actionné manuellement par un humain (rien de tel n’apparaît dans le code ouvert), mais un effet automatique du score : si votre tweet obtient un score trop bas, il n’apparaît presque plus dans les fils « Pour toi » des autres utilisateurs. Les causes principales identifiées
- Trop de signaux négatifs (blocages, mutés, signalements, « pas intéressé »).
- Trop de posts identiques ou trop fréquents (le Author Diversity Scorer te pénalise pour éviter la répétition).
- Du contenu qui génère peu d’engagement réel (liens externes purs, spam).
- Détection automatique de spam, violence ou sujets très controversés par le service Grox (compréhension de contenu).

Comment l’éviter ? Soyez authentique, en créant de la valeur d’engagement, en incitant au dialogue, en postant au bon moment (quand votre public est connecté), en diversifiants les sujets et formats. Il faut à tout prix éviter les liens purs et durs au début d’un post. Les abonnés Premium bénéficient d’un coup de pouce visible qui s’élargit chaque trimestre. En résumé : il faut penser « conversation utile » plutôt que « je balance un lien ».

Exemple concret : pourquoi @xazalbert et @france_soir perdent souvent en visibilité
Nous avons fait l’analyse sur deux comptes français souvent cités comme exemples de « déclassement » : @xazalbert (journaliste) et @france_soir (média mainstream avec une ligne éditoriale alternative).

Selon les mécanismes du code, leur visibilité baisse probablement parce que :
- Leurs posts contiennent fréquemment des liens vers leur propre site (pénalité « liens externes » : faible dwell prédit).
- Les sujets traités sont très polarisants (santé, politique, actualité controversée) qui génèrent beaucoup de signaux négatifs (signalements ou « pas intéressé » de la part d’une grande partie de l’audience grand public).
- Leur audience est parfois très engagée… mais concentrée sur une bulle : le filtre de diversité d’auteurs et les prédictions de Phoenix voient alors un engagement « faible » sur le reste de la plateforme.

En conséquence, même avec des milliers de vues initiales, les tweets de ces deux comptes sortent rapidement du top des recommandations. Ce n’est pas forcément une censure manuelle, mais un effet mécanique du score : l’algorithme privilégie le contenu qui plaît largement et crée des échanges positifs. Ces comptes doivent adopter plus de formats longs sans lien immédiat, poser des questions ou répondre aux commentaires pourrait aider à remonter.
Retrouvez le décryptage vidéo de l’article :
(1) Annexe technique détaillée (pour les curieux)
Services et composants principaux :
- Home Mixer : le chef d’orchestre en Rust. Il coordonne tout le pipeline (sourcing, hydratation, filtres, scoring, sélection).
- Thunder : système ultra-rapide pour les posts « in-network » (de tes abonnements). Utilise Kafka et une base en mémoire pour récupérer les tweets récents en millisecondes.
- Phoenix : le modèle principal (transformeur Grok-based). Deux parties :
- Phoenix Retrieval (two-tower model) : recherche les posts hors réseau par similarité vectorielle.
- Phoenix Ranking (avec le « candidate isolation ») : prédit les probabilités d’actions sans que les posts se « voient » entre eux. Mini-modèle fourni (~3 Go).
- Grox (ou grox/) : service de compréhension de contenu. Classifie le spam, la violence, les catégories, et applique les règles de modération (PTOS).
- Candidate Pipeline : framework réutilisable qui définit les étapes (Source, Hydrator, Filter, Scorer, Selector).
- Scorers :
- Weighted Scorer : la formule principale (sum poids × probas).
- Author Diversity Scorer : réduit la visibilité des auteurs qui postent trop souvent.
- OON Scorer : ajuste les posts hors réseau.
- Filtres (avant et après scoring) : AgeFilter, AuthorSocialgraphFilter (bloqués/mutés), MutedKeywordFilter, PreviouslySeenPostsFilter, VFFilter (spam/violence), DropDuplicatesFilter, etc.

Le code est sous licence Apache 2.0 : il est téléchargeable, pour analyse et on peut même faire tourner la mini-version sur une ordinateur personnel. Les poids exacts et le modèle de production complet restent privés, mais l’architecture est désormais compréhensible par tous.
En conclusion, cet open-source change la donne : on passe d’un mystère total à une boîte presque transparente. Il reste des zones d’ombre importantes (les poids et configs), mais les règles du jeu sont désormais accessibles.