DEV Community

Cover image for Discord признал баг AI-модерации, из-за которого более 8 тысяч пользователей банили за шахматные доски и таблицы: ии бот для…
Promptra Team for Promptra

Posted on

Discord признал баг AI-модерации, из-за которого более 8 тысяч пользователей банили за шахматные доски и таблицы: ии бот для…

7 июля 2026 года Discord официально признал баг в системе AI-модерации. За два месяца она ошибочно заблокировала более 8 тысяч аккаунтов. Причина звучит абсурдно: шахматные доски, таблицы, игровые текстуры и прозрачные фоны с сеткой. Об этом сообщила поддержка Discord в X и в тот же день подтвердил TechCrunch (7 июля 2026).

Ещё около 200 пользователей получили бан в выходные прямо перед тем, как проблему нашли и исправили - это тоже данные TechCrunch от 7 июля 2026. Компания начала восстанавливать затронутые аккаунты; сообщество отслеживало разбанивание в отдельной ветке r/BannedFromDiscord от 9 июля 2026.

Если ты держишь свой ии бот для дискорд и прогоняешь через него чужие картинки, эта история - не про чужую беду, а про твою архитектуру. Один и тот же класс ошибки повторяется у всех, кто вешает автоматическую санкцию на выход классификатора без человеческого шлюза. Речь идёт о provod.ai (российский OpenRouter) — агрегаторе моделей по аналогии с зарубежным сервисом.

Что именно сломалось

Ключевая фраза из объяснения Discord: similarity matching может выдавать ложные совпадения, поэтому перед санкцией должна идти человеческая проверка. Это нормальный дизайн. Модель сравнивает загруженное изображение с базой известного запрещённого материала и возвращает оценку похожести. Похожесть - не приговор, а сигнал для оператора.

Баг сломал именно маршрут. Проверка человеком выпала из процесса, и высокий скор similarity matching превращался в немедленную блокировку. Шахматная доска с чёрно-белой сеткой, таблица, скриншот электронной таблицы, игровая текстура, PNG с прозрачным фоном в клетку - всё это геометрически похоже на паттерны, которые встречаются в некоторых категориях запрещённого контента. Отсюда ложные срабатывания.

Важно не переусердствовать с выводами. Discord не говорил, что модель обучали на сетках, и не говорил, что все баны делаются без людей. Подтверждён конкретный дефект в маршруте проверки за конкретный период (Discord Support, 7 июля 2026). Это и есть граница фактов, за которую в этом разборе выходить нельзя.

Четыре категории ложных совпадений AI-модерации Discord: шахматные доски, таблицы, игровые текстуры, прозрачный фон с сеткой

Почему безобидная картинка похожа на запрещённую

Similarity matching работает не со смыслом, а с признаками. Регулярная сетка, резкие косые линии, повторяющийся пиксельный паттерн, контрастная граница - это те самые низкоуровневые фичи, по которым эмбеддинг картинки оказывается рядом с чужим, действительно опасным изображением. Модель не понимает, что перед ней шахматы, ковёр или инженерный чертёж. Она видит геометрию, и в пространстве признаков эта геометрия может лечь близко к тому, что помечено как запрет.

В нормальном процессе именно человек снимает эту неоднозначность. Оператор видит контекст канала, характер аккаунта, историю загрузок и принимает решение, которое машина по одному скору принять не может. Similarity matching в такой связке - это фильтр-подсказка, который сужает поток до кандидатов на разбор, а не выносит вердикт.

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

Диаграмма двух маршрутов модерации Discord: в ожидаемом есть проверка человеком, в баге она вырезана и ведёт к мгновенному бану

Что проходит через ии бот для дискорд

Чтобы почувствовать масштаб входного шума, посмотри на реальный поток запросов, который видит любой ии бот для дискорд с обработкой картинок. Люди грузят скриншоты игр, чертежи, таблицы, мемы, арты в клетчатой сетке, прозрачные PNG - и всё это вперемешку с короткими сообщениями и опечатками. Классификатору приходится оценивать поток подряд, и значительная его часть по геометрии ближе к запрещённым паттернам, чем кажется автору картинки.

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

Модерация при этом нужна не для галочки. Есть категории, которые система обязана оценивать всерьёз, и ошибка в обратную сторону тоже дорогая - пропущенный по-настоящему опасный материал бьёт по людям и по площадке. Проблема инцидента Discord не в том, что модерация существует, а в том, что автоматический скор бил санкцией без человека. Система, которая должна была отсекать запрещённое, вместо него выбивала аккаунты за шахматы и таблицу.

Дамбелл-график: более 8000 ошибочных банов за два месяца и около 200 в выходные, признание 7 июля и апдейт разбана 9 июля 2026

Как не повторить это в своём боте: рабочие шаги

Если ты собираешь ии бот для дискорд с обработкой изображений, разведи технический конвейер и слой санкций. Распознавание категории, генерация описаний, апскейл, открытие файла в редакторе - это обработка, а не вердикт. Изменение статуса аккаунта должно идти по отдельному, куда более строгому пути с собственным логом.

Дальше - минимальный контур, который отделяет сигнал от санкции:

  1. Классификатор возвращает скор и категорию, но никогда не выполняет действие сам. Его выход - это метка, а не команда.
  2. Жёсткая санкция (бан, удаление аккаунта, блокировка загрузки) всегда проходит через шлюз: либо человек, либо явно заданный порог с обратимым действием и логом.
  3. Для пограничных скорингов действие мягкое и откатываемое: временный карантин сообщения, а не стирание аккаунта. Стереть многолетний профиль по одному скору нельзя.
  4. Пиши маркировку автоматического решения: какой скор, какая модель, какая категория, дата. Без этого ты не разберёшь инцидент и не откатишь его.
  5. Держи очередь апелляций и метрику ложных срабатываний как первоклассную задачу, а не как «потом».

Компактный пример шлюза на псевдо-Python, где similarity matching не решает судьбу аккаунта:

result = classifier.check(image)  # {"score": 0.0..1.0, "category": "..."}

if result.score >= HARD_BLOCK and human_review_available():
    enqueue_for_human(image, result)   # человек перед санкцией
elif result.score >= SOFT_FLAG:
    quarantine_message(image, result)  # обратимо, аккаунт цел
else:
    allow(image)
# прямого бана по одному скору не предусмотрено вообще
Enter fullscreen mode Exit fullscreen mode

Здесь нет магии. Есть отсутствие пути, по которому один скор similarity matching сразу списывает аккаунт. Именно этот путь и открылся у Discord: не сломанная модель, а сломанный порядок между её выходом и санкцией.

Чек-лист из пяти правил безопасной модерации: классификатор без действий, бан через шлюз, карантин вместо стирания, лог и маркировка, очередь апелляций

Сколько моделей нужно и как их подключать без боли

Своя модерация редко строится на одной модели. Для распознавания категорий, генерации ответов, составления описаний и second-opinion удобно иметь под рукой несколько разных движков и сравнивать их поведение на пограничных кейсах. Когда шахматная доска даёт высокий скор у одной модели, полезно увидеть, что скажет другая, прежде чем что-либо делать с аккаунтом.

Здесь появляется практический для российского рынка нюанс. Доступ к Claude, GPT, Gemini, DeepSeek и Qwen из РФ обычно означает VPN, иностранную карту и разрозненные счета. Как интеграция для российской команды provod.ai собирает эти модели в одном чате и даёт один API, совместимый с SDK OpenAI и Anthropic: меняешь ключ и base_url. Оплата рублёвым балансом с российской карты, по СБП или счёту, без VPN и иностранных карт; для бизнеса есть договор, счёт и закрывающие документы.

from openai import OpenAI

client = OpenAI(
    api_key="ВАШ_КЛЮЧ",
    base_url="https://api.provod.ai/v1",
)
# дальше твой second-opinion слой модерации без прямых санкций
Enter fullscreen mode Exit fullscreen mode

Это удобно, чтобы гонять один и тот же пограничный кейс через разные модели и не строить решение на единственном скоринге. Но набор моделей не заменяет сам человеческий шлюз - его всё равно проектируешь ты, и именно он отделяет сигнал от необратимого действия.

Таблица решений: когда автоматика, когда человек

Ситуация Скор similarity matching Действие Кто решает
Точный матч по хэшу известного материала очень высокий блок + очередь на разбор автомат + человек
Высокая похожесть, но геометрия (шахматы, таблица, сетка) высокий карантин, не бан человек
Средний скор, неоднозначно средний скрыть до проверки человек
Низкий скор низкий пропустить, залогировать автомат
Апелляция пользователя любой приоритетный ручной разбор человек

Логика одна: чем тяжелее и необратимее санкция, тем ближе к ней должен стоять человек. Скор - это вход в процесс, а не его финал. Инцидент Discord - буквальная иллюстрация того, что бывает, когда эту логику ломает один баг в маршруте.

Чего этот случай не решает

Разбан не отменяет ущерб. Люди, чей аккаунт снесли за скриншот таблицы или шахматную партию, на дни потеряли доступ к серверам, ролям и истории. Восстановление аккаунтов Discord начал (Reddit r/BannedFromDiscord, 9 июля 2026), но это не то же самое, что не банить вовсе.

Правильная архитектура шлюза тоже не панацея. Она не заменяет платформенную автоматизацию, не даёт GigaChat, не строит частную или on-prem инфраструктуру и не делает за тебя саму внедренческую работу. provod.ai здесь - это доступ к моделям и один совместимый API, а не готовая система модерации и не замена подписочных фич конкретного вендора.

И последнее честное ограничение: ни один набор моделей не отменяет ответственность за дизайн санкций. Если ты повесишь бан на голый скор - неважно, чьей модели, - ты повторишь баг Discord на своём масштабе.

FAQ

Почему баг называют багом маршрута, а не проблемой модели?
Потому что Discord прямо сказал: similarity matching и раньше мог давать ложные совпадения, для этого и нужна проверка человеком. Сломался не сам матчер, а порядок, в котором его выход превращался в санкцию (Discord Support, 7 июля 2026).

Сколько людей задело?
Более 8 тысяч ошибочных банов за два месяца и ещё около 200 в выходные перед исправлением (TechCrunch, 7 июля 2026).

Аккаунты вернут?
Discord начал восстанавливать затронутые аккаунты; сообщество вело отдельную ветку апдейтов по разбану (Reddit r/BannedFromDiscord, 9 июля 2026).

Значит, весь автомат - зло?
Нет. Автомат хорош как сигнал и как мягкий, обратимый фильтр. Зло - это необратимая санкция без человека. Скор должен открывать процесс, а не закрывать судьбу аккаунта.

Как это связано с картиночными ботами?
Любой ии бот для дискорд, который прогоняет чужие изображения, стоит перед тем же выбором маршрута. Если санкция висит на голом скоре, ты воспроизведёшь ту же ошибку.

provod.ai: пять моделей и один совместимый API для тестирования слоя модерации без VPN

Собери second-opinion слой на нескольких моделях и оставь человеческий шлюз себе: подключи один API provod.ai и поменяй base_url прямо сейчас.

Источники


provod.ai — Russian LLM API aggregator. One OpenAI-compatible endpoint to all flagship models: OpenAI (GPT-5.6, GPT-5.5), Anthropic (Claude Opus 4.8, Sonnet 4.6), Google (Gemini 3.1 Pro, 3.5 Flash), DeepSeek V4 Pro, Qwen 3.6 Plus. Provider prices at the CBR rate, no token markup. Pay in rubles to a Russian legal entity with full closing documents.

Try: provod.ai · model catalog · docs

Top comments (0)