SkillMem 0.12: проверка 16 инвариантов памятью MCP двумя моделями
В версии 0.12 разработчики записали 16 инвариантов MCP‑памяти и провели 10‑дневный стресс‑тест двумя независимыми моделями, обнаружив критические расхождения, включая ошибку Windows с NUL‑терминалом.
Что изменилось в SkillMem 0.12
В предыдущей версии 0.11 команда запустила 40 раундов «ИИ‑ревьюеров», которые проверяли код и находили баги, но каждый ревьюер имел своё представление о «правильном» решении. В 0.12 подход был переориентирован: вместо субъективных ревьюеров разработчики зафиксировали шестнадцать инвариантов, которые должна соблюдать MCP‑память. Инварианты описывают фундаментальные свойства: атомарность операций, отсутствие «протечки» данных, корректную работу с нулевыми байтами и т.п.
Как проводилось тестирование
- Формализация – каждый из 16 пунктов был записан в виде формального условия, проверяемого автоматически.
- Выбор моделей – две модели из разных лабораторий (одна открытая, другая проприетарная) получили доступ к тест‑сценариям и 10 дней на поиск контрпримеров.
- Критерий успеха – засчитывалась только находка, где модель смогла воспроизвести нарушение инварианта в реальном исполнении.
Результаты
- За 10 дней обе модели совместно нашли 9 уникальных контрпримеров.
- Самый громкий баг: Windows интерпретировала строку
NULкак терминал, а не как обычный символ, что нарушало инвариант «корректное чтение/запись нулевых байтов». - Другие проблемы включали неверную очистку кэша после
memcpyи расхождения в обработке переполнения индексов. - Стоимость тестов составила около $12 000 на вычислительные ресурсы и оплату лицензий моделей.
Что осталось открытым
Команда сознательно оставила в «Known issues» несколько менее критичных несоответствий, которые планируется решить в следующем минорном релизе. Документация по каждому найденному контрпримеру опубликована в открытом репозитории проекта.
Куда двигаться дальше
SkillMem 0.12 демонстрирует, как инвариант‑ориентированное тестирование может выявлять скрытые дефекты, недоступные обычным ревью. Планируется расширить набор инвариантов до 25 и привлечь третьи модели‑генераторы для более широкой проверки.
Для разработчиков AI‑систем тестирование через фиксированные инварианты — новый уровень надёжности, особенно в системах с низкоуровневой памятью. Такой подход позволяет обнаружить неочевидные баги, как ошибка с `NUL` в Windows, и снизить риск продакшн‑отказов. Однако стоимость и необходимость доступа к нескольким мощным моделям делают процесс дорогим, так что небольшие команды могут искать более экономичные варианты «модель‑в‑петле».


