AI Vibe Craft
← Назад к AI Vibe News

Редакция 6 июля 2026 г.

Разборы

Чем мощнее LLM-инспектор в agent loop, тем больше он режет валидную работу

Чем мощнее LLM-инспектор в agent loop, тем больше он режет валидную работу.

Соло-разработчик, который вешает на агентный цикл LLM-проверку качества, часто выбирает «самую умную» модель — и получает обратный эффект: инспектор начинает отбрасывать нормальные артефакты. эксперимент zxpmail сравнил три уровня инспекторов на одних восьми сценариях и показал классический компромисс precision–recall: локальный Ollama с моделями до 4B пропускает часть мусора, зато не режет половину валидного; API-grade GLM-5.2 ловит весь мусор, но отклоняет три четверти легитимных выходов. Для ру-соло без отдельного QA-бюджета вывод практичный: закладывайте ручную проверку ложных отклонений и смотрите на полную confusion matrix, а не на один столбец «0% false positives».

Phase gate в agent loop не заменяет смысловой контроль

Строковые phase gates — дешёвый первый слой в агентном пайплайне. Они проверяют «задача формально закрыта», но не читают содержимое. В серии экспериментов автора phase gate пропускал все восемь сценариев: четыре валидных (research brief, черновик ~2000 слов, файлы глав, test log с «42 passed») и четыре мусорных — от «I am a little duck, quack quack» до «0 passed (no tests collected), exit 0».

Phase gate даёт 50% false-positive на мусоре и 0% ложных отклонений валидного — иллюзия детерминизма без quality signal.

Поверх gate автор добавляет LLM quality inspector: задача — поймать мусор, не срезая легитимную работу. Каждый сценарий гоняется три раза на модель с majority vote — сглаживание шума при temperature 0, которое в предыдущей части серии давало лишь 70% консистентности open-ended выхода. Lexical overlap как прокси семантики ошибался в 50% случаев; embedding-порог на Qwen3-embedding тоже провалился — cosine diff между synonymy и antonymy всего 0.026. Третий пост серии — ответ на pushback «возьми нормальную модель вместо qwen3:0.5b».

Три модели-инспектора: локальный Ollama против API

Сравнение параметризовано переменными окружения в скрипте harness-verify-test.py из репозитория github.com/zxpmail/blog (agent-determinism-illusions/scripts):

# Ollama, default
VERIFY_MODEL=qwen3:0.5b

# Ollama, 4.3B
VERIFY_MODEL=gemma3:latest

# API-grade
VERIFY_MODEL=glm-5.2
VERIFY_BASE_URL=...
VERIFY_API_KEY=...
Инспектор False-positive False reject валидного Нестабильность vote
Только phase gate 50% 0%
qwen3:0.5b (Ollama, 0.5B) 25% 50% 2/8
gemma3:latest (Ollama, 4.3B) 25% 50% 0/8
GLM-5.2 (API) 0% 75% 0/8

False-positive монотонно падает с ростом модели. qwen3 и gemma3 упираются в 25% и оба пропускают кейс G4 — «exit 0, 0 passed (no tests collected)»: формально тесты «прошли», семантически пусто. GLM-5.2 читает смысл и ловит «no tests collected».

Сильный инспектор: ноль мусора, три четверти валидного под нож

GLM-5.2 отклонил 3 из 4 валидных выходов — research brief, first draft и chapter files. Прошёл только test log с явным «42 passed». Слабые локальные модели режут валидное в ~50% случаев, но оставляют четверть мусора на выходе.

Автор называет это «0% false positive mirage»: метрика «ноль ложных срабатываний на мусоре» без столбца false rejection вводит в заблуждение — раньше он сам так ошибся с DeepSeek. Сильный инспектор закрывает дыру phase gate, но переносит риск на ложные флаги по хорошей работе агента.

Для vibe-coding workflow это значит: rules и чек-листы в IDE не спасут, если финальный LLM-gate калиброван только на «не пропустить мусор». Нужна явная политика эскалации — что делать, когда инспектор отклонил draft, который человек считает годным.

Цепочка слоёв для соло-разработчика с агентом

Модель автора — три уровня, ни один не решает задачу целиком:

  1. Phase gate — бесплатно, но 50%+ мусора проходит.
  2. LLM quality gate — снижает FP, вводит false rejections; выбор точки на кривой — Ollama ≤4B против API-grade.
  3. Human review — ловит false rejections; без него сильный инспектор съест большую часть полезного output агента.

Локальный стек (Ollama, qwen3 или gemma3) и API-инспектор — не «хуже/лучше», а разные компромиссы. Соло без выделенного ревьюера, который каждый вечер перечитывает отклонённые черновики, разумнее закладывать время на разбор false rejections, чем гнаться за нулём на столбце false-positive.

Воспроизвести сравнение можно тем же harness: восемь сценариев, три итерации на сценарий, majority vote — и смотреть обе оси таблицы, а не только «ловит ли мусор».


Источники

  • zxpmail, «I tested 3 models as AI agent quality inspectors: the stronger the model, the more valid work it rejects» — Dev.to (опубликовано 2026-07-05, доступ 2026-07-06)
  • Скрипт воспроизведения: https://github.com/zxpmail/blog — agent-determinism-illusions/scripts/harness-verify-test.py