Перейти к содержимому

Как работает петля обратной связи тем

Проблема: без обратной связи контент-платформа продолжает писать то, что писала всегда, — насыщая победителей до каннибализации и вечно кормя мёртвые темы. Петля это закрывает: заработавшее внимание получает больше; доказанно мёртвое паркуется; а защищённая доля всегда уходит неизвестному.

Слой 1 — от поискового сигнала к вердиктам тем

Заголовок раздела «Слой 1 — от поискового сигнала к вердиктам тем»

Данные поисковой консоли (уже собранные — петля не добавляет нового харвеста) еженедельно агрегируются в перформанс тем: статьи на тему, показы, клики и главная метрика — показы на статью. Ночной проход пересобирает состояние темы до запуска Collect:

earns impressions + clicksnever crawledimpressions, position toodeep for clicksyield collapsessignal returnsno_datastarnot_indexedstar_fardead"not indexed" "dead"—\ndifferent problem,different fix

Вердикты уважают инерцию сигнала — три отдельные константы, которые часто путают: статьи моложе окна зрелости не голосуют вовсе; самые свежие несколько дней поисковых данных исключены (лаг отчётности); а сами смены политики ограничены по частоте интервалом управляемости.

75%25%Selection shares (concept)Exploit — above-median yield [75]Explore — protected floor [25]

Политика — подчёркнуто не жёсткий сплит: exploit берёт темы с урожайностью выше медианы; explore — это защищённая минимальная доля: новые и недосэмплированные темы получают её, даже когда exploit мог бы заполнить весь батч. Насыщение закэплено (тема, уже плотно покрытая в недавнем окне, перестаёт принимать кандидатов), мёртвые темы паркуются оптом тем же defer-механизмом, что у гейта дублей, а неклассифицируемые кандидаты проходят без суда — намеренно исключены из медианы, чтобы дыры словаря не маскировались под сигнал урожайности. Сторож тревожится, если слишком большая часть недельного выпуска приземляется в мёртвые темы.

Всё крутится без деплоев: пер-контрактные оверрайды политики каскадируются над флотовыми дефолтами над кодовыми, правятся через owner-gated тул; словари тем версионированы и append-only.

Поверхность записи петли в прод намеренно крошечная: один шаг внутри Collect, поставленный сразу после тематического дедупа и прямо перед экспорт-гейтом — то же бутылочное горло, которое каждый кандидат и так проходит. Квотный механизм не может увеличить ночной бюджет контракта; он только перераспределяет внутри него.

Слой 4 — близнец: никогда не платить дважды

Заголовок раздела «Слой 4 — близнец: никогда не платить дважды»

Родственный механизм сторожит противоположный провал — регенерацию уже сгенерированного. Измерено до фикса: почти половина сабмитов генерации были повторами, и подавляющее большинство повторов снова падало на тех же гейтах. Теперь исторический предохранитель при создании прогона отказывает generate-рану по источнику, который уже однажды успешно прошёл (с явным овверайдом для намеренной регенерации), а статьи, упавшие на гейтах, сидят в карантине, а не в петле ретраев. Два механизма — философские близнецы на разных швах: петля решает, что писать, предохранитель гарантирует, что за написанное не платят дважды.

Петля остра ровно настолько, насколько остр словарь тем — детерминированный маппер slug-в-тему с нулём LLM-вызовов, а значит, новым семействам тем нужны записи словаря прежде, чем петля их увидит. И квотные фичи едут за калибровочными флагами, чьё прод-состояние движется по мере настройки: скоринг и телеметрия работают всегда; enforcement включается осознанно — в согласии с правилом платформы «задеплоено = включено».

Секция тем ночного отчёта показывает каждое бакет-решение последнего прогона; перформанс и состояния тем queryable по контракту через домен analytics.

Спеки: SPEC-125 (петля), SPEC-126 (подавление регенерации + карантин), SPEC-118 (общий defer-механизм), SPEC-096 (источник сигнала).