ИИ-агент молча доставляет сломанный код: измеряем silent false-accepts (17/50 -> 0/50 на пре-регистрированном бенчмарке)

Внедрение AI в SDLC

Архитектурные паттерны
Методы и техника разработки ПО
Алгоритмы и их сравнение

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

Архитекторы, тимлиды и платформенные/DevEx-инженеры, которые уже пустили AI-агентов в свой пайплайн - или готовятся и хотят заранее знать цену ошибки. Инженеры по качеству и владельцы CI, отвечающие за то, что попадает в main. Все, кто строит внутренние оценки (evals) и хочет, чтобы их числам можно было верить. Знаний по ML не требуется: доклад про измерение и контроль допуска, а не про обучение моделей. Достаточно опыта code review и работы с CI.

Тезисы

AI-агенты пишут всё больше кода, а ревью незаметно превратилось из инспекции в выборочную проверку. Главный риск при этом - не "агент не справился с задачей". Главный риск - "агент уверенно отдал неверный фикс, и никто не заметил".

У этой величины есть имя - silent false-accept rate, и её почти никто не публикует. Бенчмарки агентов меряют способность решить задачу, а не склонность молча отгрузить сломанное.

Я её измерил. Два контура на одной и той же дешёвой модели, 50 замороженных held-out задач SWE-bench Lite, правила подсчёта закоммичены в git ДО того, как появился результат (пре-регистрация). Без независимой проверки: 17 из 50 неверных фиксов ушли молча - 34%. С независимым verdict-слоем (scope- и regression-проверки плюс приёмочный тест, написанный вслепую к фиксу, в изолированном контейнере): 0 из 50, точный тест Фишера p ≈ 3×10⁻⁶.

Цена метода - в том же заголовке, а не в сноске: 24 доставленных верных исправления против 33, и каждое - с честным флагом "проверить не смог, нужен человек"; ни разу слой не поручился уверенно. Разберу, почему это консерватизм, а не фокус; все пять ложных блокировок с корнями - включая случай, где обе руки выдали байт-в-байт одинаковый патч, и в контуре с проверкой он был заблокирован, а без проверки принят; случай, где агент переписал существующий тест под свой же неверный вывод; и как устроена пре-регистрация, после которой числам оценки можно верить.

Унесёте три вещи: почему тест, написанный тем же контуром, что и правка, - не проверка; паттерн admission-контроля "answer or escalate" (tri-state вердикт вместо да/нет) для своего CI; чеклист пре-регистрации внутреннего eval. Всё воспроизводимо: сырые артефакты и скрипт пересчёта опубликованы, число пересчитывается одной командой без зависимостей.

Дмитрий Колесников

Glowbyte (уволился)

Дмитрий Колесников - Principal/Solution Architect, 11+ лет
банковских и регулируемых систем (AML, платежи; микросервисы, event-driven, K8s).
Автор verdict-layer-framework и patchward - открытой методологии и
пре-регистрированного бенчмарка доверия к AI-коду.

Видео

Другие доклады секции

Внедрение AI в SDLC