13 августа 2026 года X опубликовала крупное обновление репозитория xai-org/x-algorithm — того самого, где лежит код ленты «Для вас». По оценке TechCrunch, открытая кодовая база выросла примерно в 10–15 раз относительно предыдущих выкладок. Главное отличие от прошлых релизов: вместе с кодом наконец опубликованы числовые веса ранжирования — коэффициенты, которые превращают предсказания модели в итоговую позицию поста в ленте. Лицензия — Apache 2.0.
Параллельно в настройках приложения появился раздел «Under the hood» («под капотом»), из которого пользователь может выгрузить JSON с метками, применёнными к его аккаунту и постам за прошедший месяц. Проще говоря — инструмент, который отвечает на вопрос «меня что, шедоубанят?» не догадками, а данными платформы.
Что именно лежит в репозитории
Это не «алгоритм» одним файлом, а несколько взаимодействующих сервисов. По документации проекта лента собирается так:
- Home Mixer — оркестратор. Он запускает конвейер: подтягивает контекст запроса, собирает кандидатов, обогащает их данными, прогоняет фильтры, считает оценки и выбирает финальный набор.
- Thunder — in-memory хранилище (данные держатся в оперативной памяти ради скорости) свежих постов от аккаунтов, на которые вы подписаны. Это источник «in-network»-кандидатов.
- Phoenix — поиск и ранжирование постов от тех, на кого вы не подписаны («out-of-network»), плюс сама модель-ранжировщик. Это трансформер; в документации предыдущих версий указывалось, что архитектура портирована из языковой модели Grok-1, а хендкрафтовые признаки и большая часть эвристик убраны в пользу обучаемого представления.
- SimClusters — второй источник out-of-network-кандидатов, работающий на кластеризации сообществ.
- Candidate Pipeline — каркас, на котором всё это собрано.
Отдельно от ранжирования работает система меток (labeling): она непрерывно анализирует аккаунты и контент и навешивает ярлыки, которые затем используются на этапе visibility-фильтрации. Важная деталь архитектуры: ранжирование и фильтрация видимости — разные вещи. Сначала пост может получить высокий скор, а потом быть срезан фильтром — или наоборот, спокойно пройти фильтры, но проиграть по скору.
Веса: сколько «стоит» каждое действие
Итоговая оценка поста считается по простой формуле, которую репозиторий приводит явно:
Final Score = Σ (weight_i × P(action_i))
Модель предсказывает вероятность каждого действия (лайк, ответ, репост, цитата, клик, дочитывание, а также негативные реакции), эти вероятности умножаются на коэффициенты и складываются. Сами коэффициенты лежат в файле home-mixer/params/param.rs. Вот ключевые из них.
Позитивные сигналы
- Шеринг через «копировать ссылку» — 20,0
- Ответ — 5,0; если автор и читатель подписаны друг на друга, к ответу добавляется бонус +15,0 (итого те же 20)
- Цитата — 5,0; отправка в личные сообщения — 5,0
- Подписка на автора после просмотра поста — 4,0
- Обычный шеринг — 2,0
- Репост — 1,0
- Лайк — 0,5
- Клик по посту — 0,4; переход по внешней ссылке — 0,2
- Раскрытие фото или запуск видео — 0,05
- Клик по профилю и время «залипания» (dwell) — 0,0, то есть в текущей конфигурации не влияют
Негативные сигналы
- Жалоба (report) — −234,0
- Мьют автора — −58,8
- «Не интересно» — −43,2
- Блокировка автора — −31,2
Первое, что бросается в глаза: лайк — самый дешёвый из «настоящих» сигналов, а платформа явно поощряет то, что стоит человеку усилий и репутации — развёрнутый ответ, цитату, отправку поста знакомому в личку. Второе: негативные веса на два порядка больше позитивных. Это не случайность, а сознательная асимметрия — модерационный сигнал должен перебивать шум вовлечённости.
Почему «один репорт = 468 лайков» — неверное прочтение
Как только веса разошлись по сети, появилась эффектная арифметика: −234 делим на 0,5 — получаем, что одна жалоба стирает 468 лайков. Разработчики X специально добавили в документацию августовского обновления оговорку: веса умножаются на предсказанные вероятности, а не на количество событий. Модель не считает, сколько лайков собрал пост, — она оценивает, с какой вероятностью конкретный читатель совершит каждое действие. Поэтому «−234» не вычитается из накопленных лайков; он умножается на вероятность жалобы, которая для нормального поста близка к нулю и заметной становится только для контента, который модель и так считает проблемным.
Практический вывод из этого спокойнее, чем вирусная формула: одна жалоба от случайного читателя не «убивает» пост. Но если модель видит, что для вашей аудитории вероятность жалоб, мьютов и «не интересно» устойчиво повышена, отрицательный вклад начинает доминировать — и вытащить это лайками действительно почти невозможно.
Помимо самой суммы, к оценке применяются три корректировки: затухание для автора, который часто попадается в одной ленте (author diversity decay), понижающий множитель для постов не из подписок и, наоборот, бустинг показов для новых авторов.
«Under the hood»: как проверить метки своего аккаунта
Вторая часть релиза — инструмент прозрачности в самом приложении. В настройках появился раздел «Under the hood», где можно выгрузить JSON-файл с агрегированной статистикой: какие метки применялись к аккаунту и его постам за прошлый календарный месяц. Условия на момент запуска:
- нужно не менее 10 постов за последний месяц;
- пилот раскатывают на аккаунты, зарегистрированные не менее года назад, полный доступ обещают позже.
Файл — машинный, читать его вручную неудобно. X прямо предлагает нетехническим пользователям скормить JSON языковой модели вместе с ссылкой на репозиторий и попросить объяснить. Вице-президент по продукту Кит Коулман сформулировал цель так: пользователь должен получить ответ на вопросы «меня шедоубанят?» и «почему я вижу этот пост?». По его словам, «люди будут довольно шокированы тем, что мы это выкладываем».
Что осталось закрытым
Полной прозрачности не случилось, и компания этого не скрывает. Не опубликованы:
- промпты, по которым Grok классифицирует контент и предсказывает нарушения правил — их придержали, чтобы модерацию не обходили;
- часть правил botmaker;
- обученные веса самой модели и обучающие данные — в репозитории есть код обучения и генератор синтетических данных для proof-of-concept, но не боевая модель.
Стоит помнить и историю вопроса: первый выпуск кода состоялся в январе 2026 года, но тогда числовых коэффициентов в нём не было — именно их отсутствие критиковали исследователи. Промежуточное обновление вышло в мае. Августовский релиз закрывает главную претензию, хотя вопрос интеграции рекламы в ранжирование по-прежнему документирован слабо.
Почему это важно
Для разработчика рекомендательных систем это редкий случай, когда продакшен-конвейер крупной платформы можно читать целиком, а не по научным статьям: видно, как устроен candidate sourcing, где стоят фильтры, как разнесены ранжирование и visibility, как выглядит конфигурация весов в реальном сервисе. Репозиторий уже собрал около 27,5 тыс. звёзд и 4,7 тыс. форков, а внешние исследователи, по данным TechCrunch, сумели самостоятельно запустить скоринг Phoenix.
Для тех, кто ведёт аккаунты компании или проекта, ценность практическая. Веса дают приоритеты, которые раньше приходилось угадывать: ответы и пересылки в личку весят кратно больше лайка, внешняя ссылка приносит совсем немного, а любой контент, провоцирующий жалобы и мьюты, обходится дороже, чем кажется. А инструмент выгрузки меток впервые превращает разговор о теневом бане из области ощущений в проверяемый факт.
Не менее важен и прецедент. Публикация коэффициентов — это добровольная сдача части «коммерческой тайны» ради проверяемости: теперь заявления платформы о нейтральности ленты можно сверять с кодом. В августовское обновление, к слову, попал и код фильтрации, связанный с соблюдением требований к выборам в Бразилии — то есть регуляторная логика тоже стала видимой. Насколько за этим последуют другие площадки — вопрос открытый, но планка прозрачности поднялась.
Частые вопросы
В открытом репозитории xai-org/x-algorithm на GitHub, файл home-mixer/params/param.rs. Там лежат константы вроде FavoriteWeight (0,5), ReplyWeight (5,0), ShareViaCopyLinkWeight (20,0) и негативные — ReportWeight (−234,0), MuteAuthorWeight (−58,8), NotInterestedWeight (−43,2), BlockAuthorWeight (−31,2). Код опубликован под лицензией Apache 2.0.
Нет, это неверное прочтение. Веса умножаются на предсказанную моделью вероятность действия, а не на число реальных событий. Разработчики добавили эту оговорку прямо в документацию августовского обновления. Отрицательный вес становится значимым, только когда модель считает вероятность жалоб и мьютов для конкретного показа реально высокой.
В настройках приложения появился раздел «Under the hood», откуда можно выгрузить JSON с метками, применёнными к аккаунту и постам за прошлый календарный месяц. Нужно минимум 10 постов за месяц; на старте функцию раскатывают на аккаунты старше года. Файл можно разобрать самостоятельно или передать языковой модели вместе со ссылкой на репозиторий.
Промпты, по которым Grok классифицирует контент и предсказывает нарушения правил, часть правил botmaker, а также обученные веса модели и обучающие данные. В репозитории есть код обучения и генерация синтетических данных, но не боевая модель. Интеграция рекламы в ранжирование по-прежнему задокументирована слабо.
Источники
- 1.xai-org/x-algorithm — Algorithm powering the For You feed on X (GitHub, Apache 2.0)https://github.com/xai-org/x-algorithm
- 2.home-mixer/params/param.rs — константы весов ранжированияhttps://raw.githubusercontent.com/xai-org/x-algorithm/main/home-mixer/params/param.rs
- 3.X open sources its ranking algorithm, letting users see if they've been 'shadowbanned' — TechCrunch, 13.08.2026https://techcrunch.com/2026/08/13/x-open-sources-its-ranking-algorithm-letting-users-see-if-theyve-been-shadowbanned/
- 4.X Open-Sources Recommendation Algorithm On GitHub And Launches In-App Shadowban Checker — ETV Bharat, 14.08.2026https://www.etvbharat.com/en/technology/x-algorithm-open-source-shadowban-transparency-tool-x-elon-musk-enn26081404733
- 5.X's algorithm source code drops: what it reveals about the platform's feed mechanics — PPC Landhttps://ppc.land/xs-algorithm-source-code-drops-what-it-reveals-about-the-platforms-feed-mechanics/



