Uncategorized

Шесть раундов независимого тестирования: укрепление Sensbench AI Builder

За последнюю неделю независимая третья сторона провела шесть раундов глубокого, adversarial-тестирования Sensbench AI Builder и Sensbench MCP (Model Context Protocol) сервера. Их задача была проста: попытаться сломать его. Они генерировали проекты, компилировали прошивки, повторяли одинаковые промпты, ковырялись в кэшах, подключали реальные MQTT-брокеры и проверяли наш биллинг. Вот что произошло, что мы исправили и как теперь выглядят цифры.

Как проводились тесты

Каждое утверждение ниже было проверено в реальной среде:

  • Реальная компиляция — каждый сгенерированный скетч компилировался на нашем реальном тулчейне arduino-esp32 (сборка ESP-IDF), а не через линтер или фейковый пропуск.
  • Реальный MQTT — сгенерированные скетчи Home Assistant прошивались в симулятор, подключались к реальному публичному MQTT-брокеру и прогонялись от начала до конца: mosquitto_pub ON → колбэк устройства → импульс реле → публикация состояния обратно. Discovery-сообщения захватывались на homeassistant/switch/…/config.
  • Семантика кэша — одинаковые промпты, семантически разные промпты, изменения платы и ограничений воспроизводились, чтобы убедиться, что кэшированные ответы соответствуют только точному запросу, который их создал.
  • Сверка биллинга — каждая генерация и компиляция сверялась с квотным реестром: успешные списаны, попадания в кэш бесплатны, неудачные компиляции бесплатны.

Раунд первый: честное число было 20%

Первый раунд был унизительным. Из пяти сгенерированных проектов четыре не скомпилировались — включая открыватель гаражных ворот, один из самых распространенных реальных запросов. Ошибки были классическими ошибками новичков в C++: вспомогательные функции использовались до объявления, самодельные стековые протоколы, отсутствующий include библиотеки. Вердикт был справедливым: “конвейер реален, но генератор ненадежен.”

Что мы изменили

Вместо споров мы встроили защитные механизмы в сам конвейер:

  • Автоматическая инъекция прототипов — тулчейн компиляции не выполняет шаг авто-прототипов Arduino, поэтому мы теперь автоматически вставляем прототипы функций в правильное место перед каждой компиляцией.
  • Внутренняя самопроверка компиляции — каждый сгенерированный проект компилируется внутренне, прежде чем показать пользователю. Если он не компилируется, ошибка компилятора отправляется обратно, и модель генерирует заново, до двух раз. Пользователи видят только проверенные результаты.
  • Зрелые библиотеки вместо самодельных стеков — MQTT теперь использует проверенную библиотеку PubSubClient; модели явно запрещено реализовывать протокол MQTT с нуля.
  • Проверки полноты требований — компиляции недостаточно. Если промпт запрашивает Home Assistant MQTT, код должен фактически содержать работающий MQTT-клиент с логикой подписки/публикации/колбэка — локальное демо, замаскированное под реальную вещь, отклоняется и генерируется заново.
  • Кэш только проверенных — кэш ответов хранит только проекты, прошедшие проверки компиляции и требований. Повторение популярного промпта всегда возвращает проверенную сборку.
  • Правила реальности симулятора — сгенерированные скетчи теперь по умолчанию используют реальное имя точки доступа симулятора, доступный по умолчанию MQTT-брокер, двунаправленную обработку ON/OFF, сохраненное начальное состояние для Home Assistant и точные типы датчиков (геркон остается герконом).

Цифры сейчас

  • Начальный процент прохождения реальных запросов: 1 из 6.
  • Процент прохождения после исправлений, в ходе повторных независимых раундов: 6 из 6 последовательных компиляций + реальная MQTT-логика — включая ответы из кэша.
  • Семантическое тестирование кэша: 6 запросов, без несоответствий. Одинаковые промпты возвращают байт-в-байт идентичный код; измененные промпты, платы или ограничения всегда генерируют свежий код.
  • Сквозной MQTT: устройство → брокер → подписка в стиле Home Assistant → команда → импульс реле → публикация состояния, все подтверждено через реальный брокер, включая аутентифицированные брокеры.
  • MCP-сервер: 8/8 инструментов протестированы от начала до конца; квотный биллинг сверен точно (успешные списаны, попадания в кэш и сбои бесплатны).

Что мы все еще открыто признаем

Честные ограничения, которые мы задокументировали во время тестирования:

  • Интеграция с Home Assistant по умолчанию — ручной MQTT (конфиг discovery публикуется, но настройка авто-discovery HA зависит от вашей конфигурации MQTT в HA).
  • Песочница симулятора имеет белый список исходящих — некоторые публичные брокеры доступны (например, broker.emqx.io), другие нет. Проверьте нашу документацию, что работает.
  • Выбор оборудования соответствует запросу семантически, а не всегда буквально — модель может выбрать эквивалентный класс датчика; мы отмечаем это в примечаниях сгенерированного плана.

Зачем публиковать это

Любой может опубликовать демо-видео. Мы вместо этого опубликовали полную дугу: провальные раунды, исправления и повторные тесты — с воспроизводимой методологией. Если вы хотите попробовать сломать это сами, AI Builder бесплатен для одной сборки в день, а симулятор работает полностью в вашем браузере. MCP-сервер доступен с реальным учетом квот. Приносите свой промпт, свой брокер, свой скептицизм.

— Команда Sensbench

Leave a Reply

Your email address will not be published. Required fields are marked *