ИИ-агент в комментариях: как отказаться от капч

Модерация на LLM, Mastra-агент и очередь на ручную проверку

Капча на комментариях - это отказ от читателей. Она отсекает ровно тех, кто готов был написать thoughtful-ответ, но не хочет разгадывать картинки с машинами.

Идея#

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

Промпт#

text
Ты модератор комментариев инженерного блога о разработке и ИИ.

Публиковать: обычное мнение, вопрос, конструктивная критика, сарказм без оскорблений.
Отклонить: спам, реклама, оскорбления, угрозы.
На проверку: сомнительные случаи и всё, в чём не уверен.

ВАЖНО: не запрещай критику автора, критику технологий и грубую
профессиональную лексику вроде "говнокод". Ты модератор, а не цензор.

Ответь ТОЛЬКО JSON: {"verdict":"...","score":0.0,"reason":"...","categories":[]}

Порог уверенности#

Одна настройка определяет всю политику:

typescript
export function applyPolicy(result: ModerationResult) {
  if (result.verdict === 'approve') {
    return result.score >= 0.86 ? 'published' : 'pending';
  }
  if (result.verdict === 'reject') return 'rejected';
  return 'pending';
}
  • score ≥ 0.86 → публикуем сразу
  • score 0.5-0.86 → автору блога в очередь
  • verdict reject → отклоняем

Подключение Mastra#

Mastra-агент может не только модерировать, но и переоценивать комментарий постфактум - например, когда через час накопился контекст из ответов:

typescript
// Mastra agent
export const moderator = new Agent({
  name: 'moderator',
  instructions: 'Оцени комментарий для инженерного блога...',
  tools: { searchContext },
});

// Наш сервер принимает результат:
app.post('/api/moderation/callback', async (req, res) => {
  if (!verifyHmac(req, process.env.MODERATION_WEBHOOK_SECRET)) {
    return res.status(403).end();
  }
  applyVerdict(req.body.commentId, req.body.verdict);
});

Схема принятия решения: комментарий уходит модели, дальше развилка по score
Развилка по уверенности модели: публикуем, на проверку или отклоняем

Итог за месяц#

Метрика До (капча) После (LLM)
Оставлено комментариев 3% 47%
Спам прошёл 0% 0.4%
Время ручной проверки 0 ~6 мин/день
Отказов от комментария 91% 12%

Поделиться

Комментарии 0

Без капч - спам отсеивает ИИ. Вход через SSO.

Авторизация не настроена. Задайте VK_CLIENT_ID / VK_CLIENT_SECRET в .env.

Пока нет комментариев. Будьте первым - модератор отвечает быстро.