Прозрачность и защита данных

WhyBee отвечает на вопросы детей 3–14 лет. Мы строим продукт на трёх принципах: безопасность раньше ответа, родитель — заказчик, ребёнок — пользователь и минимизация данных. Эта страница честно и проверяемо описывает, какие данные и куда уходят.

Ответы генерирует ИИ

AI-disclosure.

Ответы формирует искусственный интеллект (модель Claude от Anthropic), а не человек, и ИИ может ошибаться. В детском интерфейсе ребёнок узнаёт об этом на понятном для его возраста языке; безопасному использованию ИИ посвящены отдельные детские обучающие материалы.

Что уходит в Anthropic — и что не уходит никогда

Это исчерпывающий allow-list. Он не «обещание в тексте»: список закреплён кодом и проверяется тестами (ниже раздел «Как это закреплено»).

Уходит

  • Текст вопроса
    то, что ребёнок реально спросил; ребёнок технически может сам назвать имя в вопросе — это неустранимо и зафиксировано в политике. Один и тот же текст вопроса уходит в несколько независимых вызовов: генерацию ответа, пре-модерацию (классификатор), независимую пост-модерацию и извлечение тем интересов.
  • Уровень (возрастная полоса)
    одно из 4 значений — wonder / explorer / thinker / scholar. Точный возраст и год рождения НЕ уходят. Уходит и в генерацию, и в пост-модерацию (чтобы проверка знала целевую полосу).
  • Безопасные ходы беседы
    предыдущие вопросы и ответы той же беседы — для связного диалога и контекстной модерации. Только пост-модерированные ходы (заблокированные никогда не записываются).
  • Темы интересов
    список тем (например «динозавры», «космос») — без сырых текстов и без имени; те же темы уходят в недельное родительское письмо.
  • Описания родительских стоп-тем
    если родитель задал кастомные темы «не обсуждать» (например развод или болезнь близкого), их текстовые описания уходят в промпт, чтобы модель их избегала (KQA-033). Идёт только описание темы — не имя ребёнка, не личность родителя и не внутренний id темы из базы: классификатор видит темы под порядковыми номерами (1, 2, …), а не по UUID (§10.1). Уходит и в классификатор, и в пост-модератор — оба обязаны проверять эти темы.
  • Сгенерированный ответ (на независимую пост-модерацию)
    прежде чем ответ дойдёт до ребёнка, он сам уходит отдельным вызовом к Anthropic — независимому пост-модератору с собственным системным промптом (§3.5), чтобы prompt-injected генератор не мог проверить сам себя. Уходит текст ответа и его части (совет «попробуй», размышление, заметка родителю) — без имени и идентификаторов.
  • Режим ответа
    метка режима (classic/lab) уходит в пост-модератор, чтобы проверка применяла правила нужного режима. Значение — фиксированная метка, не свободный текст и не PII. (На пути генерации тот же режим лишь выбирает шаблон промпта и в него не интерполируется.)
  • Флаг ранее заблокированных вопросов беседы
    классификатору передаётся только БУЛЕВ факт, что более ранний вопрос этой беседы уже блокировался (§3.2) — чтобы поймать перефразирование сразу после блока. Сам заблокированный текст не уходит никогда, намеренно, ради приватности ребёнка.
  • Язык родительского письма
    локаль родителя (uk/ru/en) уходит в недельный дайджест, чтобы письмо было на его языке. В ответе ребёнку язык модель берёт из самого текста вопроса — отдельным полем он не передаётся.
  • Счётчик вопросов за неделю
    агрегированное число отвечённых за неделю вопросов — для недельного письма родителю. Без текстов вопросов и без имени.

Не уходит никогда

  • Имя ребёнка
    имя подставляется в родительские письма на нашей стороне, в промпт не попадает.
  • Год рождения
    в промпт уходит только возрастная полоса из 4 значений, не сам год.
  • E-mail родителя
    контакт родителя не передаётся субпроцессору LLM.
  • Идентификатор аккаунта (auth_uid)
    идентификатор входа родителя не покидает наш контур в промпте.
  • Любые сырые UUID из базы
    идентификаторы ребёнка/родителя/запроса; в Batches API custom_id — непрозрачный per-batch идентификатор, а не UUID ребёнка.
  • Голос и аудио
    детское аудио не покидает устройство (on-device STT); голосовые данные в промпт не уходят.

Как это закреплено — проверяемые доказательства

Allow-list держится архитектурой, а не договорённостью. Любой может проверить исходники:

Сверх этого: узкая сигнатура запроса к LLM (§5) не несёт объекта ребёнка, и это закреплено binding-тестом — любое новое поле в запросе к модели обязано быть объявлено в allow-list «уходит» или помечено транспортным, иначе CI краснеет. Сама эта страница тоже покрыта тестами, которые валят CI, если её allow-list разойдётся с arch-тестом или CI-гардами. Страница обязана оставаться честной по построению.

Субпроцессоры

Третьи стороны, обрабатывающие данные, связанные с ребёнком. Каждый проходит DPA-фильтр.

СубпроцессорРольПолучаетНе получаетХранение
Anthropic PBC Генерация ответов (LLM Claude) и постмодерация. текст вопроса, возрастную полосу, ходы беседы, темы интересов, описания родительских стоп-тем; на независимую пост-модерацию — сгенерированный ответ и его части, режим ответа и флаг ранее заблокированных вопросов беседы; для недельного письма — локаль, темы и счётчик вопросов. имя, год рождения, e-mail, идентификаторы, голос. инпуты и аутпуты интерактивного API (вопрос-ответ и модерация) — до 30 дней (формальная политика Anthropic; фактический дефолт снижен до 7 дней с 2025-09-14, финальная сверка — по подписанному DPA); результаты Message Batches для недельного дайджеста (только обезличенные агрегаты — темы и счётчик, без текста вопросов) — удаляем сразу после забора (верхняя граница — до 29 дней). Ничего не используется для обучения (коммерческие условия); заключён DPA. Исключение поверх этих окон: контент, помеченный автоматическими trust&safety-системами Anthropic (например заблокированный небезопасный вопрос), может храниться до 2 лет, а классификационные скоры — до 7 лет; это применяется поверх ZDR/DPA и вне нашего контроля.
ZDR не требуется: PII не попадает в промпты by design — поля выбирает код по allow-list §10.1. Одно уточнение к «by design»: тема интересов — единственное поле, которое формулирует модель, а не код. Ей запрещено называть имя частного лица (KQA-057), и при недоступном извлечении тема — «misc», а не слово из вопроса; но этот запрет живёт в промпте, а не в проверке кода, поэтому для темы «by design» означает правило модели. Для недельного письма это и есть весь текст, который уезжает: текста вопроса там нет. Covered Models Anthropic (например Fable 5 / Mythos 5) требуют обязательной 30-дневной ретенции без ZDR — мы на них не работаем.
Провайдер e-mail (выбор в процессе) Доставка родительских уведомлений. e-mail родителя, категорию события, счётчики, темы интересов и текст недельного письма (рассказ, собранный из тем и счётчиков). текст вопроса и текст ответа, идентификатор ребёнка и его возрастную полосу — родитель видит их только в приложении, за auth. по условиям выбранного провайдера (DPA-фильтр).
конкретный провайдер выбирается при запуске родительского контура (Ф3). Тема — короткий ярлык, который формулирует модель; ей запрещено называть имя частного лица — вместо «Александра» она обязана вернуть то, о чём вопрос («слёзы»), а если ничего другого в вопросе нет — «misc» (KQA-057). Недоступное извлечение больше не берёт слово из вопроса: фолбэк отдаёт «misc», то есть теряет запись карты интересов, а не публикует слово ребёнка (§4.3). Оговорка честности: запрет живёт в промпте, а не в валидаторе — отличить имя сестры от «Марса» может только модель, читающая вопрос, поэтому остаточный риск ошибки модели остаётся. Имена публичных и вымышленных фигур, места и планеты запретом не покрыты: это настоящие интересы, ради которых карта и существует.
Провайдер push (APNs / FCM) (выбор в процессе) Доставка push-уведомлений. push-токен устройства и текст самого уведомления: для эскалации — статический шаблон-предупреждение (без имени ребёнка и без текста вопроса), для дайджеста — обобщённое «готов новый обзор» без тем и счётчиков. текст вопроса и текст ответа, темы интересов, счётчики, идентификатор и возрастную полосу ребёнка — детальный дайджест родитель видит только в приложении, за auth. по условиям платформенного провайдера.
push-токен, факт активности и текст обобщённого уведомления — данные, связанные с ребёнком, поэтому провайдер перечислен как субпроцессор. Конкретная активация push-доставки фиксируется при запуске родительского контура (Ф3) и проходит DPA-фильтр — до этого провайдер помечен «выбор в процессе», как и e-mail-провайдер (§10.5).

COPPA / GDPR-K

ЧЕРНОВИК: юридические формулировки ожидают ревью юриста (R4)

Продукт спроектирован под требования защиты данных детей (COPPA в США, GDPR-K в ЕС). Минимизация данных: о ребёнке мы храним только имя и год рождения; персональные данные не попадают в LLM-промпты by design.

Родительское согласие

Аутентифицируется только родитель. Точка согласия — регистрация первого ребёнка: без активного родительского согласия детские функции недоступны.

Честная оговорка: текущая чекбокс-аттестация согласия сама по себе не является verifiable parental consent по стандарту COPPA (FTC требует более строгих методов). Это осознанная MVP-заглушка; целевой метод — предмет юридического решения (R4). Мы не заявляем большего, чем реально закреплено.

Возраст ребёнка

Возрастную полосу задаёт родитель; отдельной верификации возраста ребёнка нет — это следствие минимизации данных, а не пробел. IP сознательно не фиксируется (сам по себе PII).

На какие документы Anthropic мы опираемся

Редакции, проверенные при оценке допустимости детского сценария (R3). Указаны даты версий, которые мы читали.

Права родителя и хранение

Никакой рекламной слежки: скрытых поведенческих профилей сверх карты интересов, которую родитель видит явно, нет.

Материалы для семей

Мы предоставляем детям уровневые обучающие материалы о безопасном использовании ИИ (что такое ИИ-помощник, что он может ошибаться, что личные секреты рассказывать не нужно); родительская версия — в родительской зоне.