3,583 papers
arXiv:2609.05978 74 5 сент. 2026 г. FREE

VibeCheck: пятимерная рубрика + перекрёстная проверка агентов без самооценки

КЛЮЧЕВАЯ СУТЬ
Тесты запускались без ошибок и даже проходили проверку — но внутри было пусто: только "не пустое значение", без крайних случаев. VibeCheck позволяет находить такие скрытые проблемы в любом AI-контенте, не только в коде. Метод разбивает общий вопрос "хорошо получилось?" на пять конкретных критериев и запрещает модели оценивать свою же работу — только чужую. Итог — конкретный список проблем вместо размытой общей оценки.
Адаптировать под запрос

TL;DR

VibeCheck — метод оценки контента, который создаёт ИИ, через пять отдельных критериев качества плюс перекрёстную проверку, где каждый агент оценивает работу других, но никогда — свою собственную. В оригинале метод применили к юнит-тестам кода, но логика годится для любой оценки AI-сгенерированного материала.

Главная находка: то, что "работает" — не значит "качественно". Тесты запускались без ошибок и даже проходили проверку, но при детальном разборе оказывались пустыми: проверяли только "не пустое значение", забывали крайние случаи, тянули общие данные между тестами, из-за чего результаты могли меняться от запуска к запуску. Поверхностная проверка ("выполнилось / не выполнилось") пропускает ровно те проблемы, которые вскрываются глубже. То же самое легко происходит с любым AI-текстом: план звучит убедительно, но не проверен по частям.

Суть метода — заменить один общий вопрос "хорошо получилось?" на рубрику из пяти конкретных критериев, и заставить оценивать не автора самого себя, а других — по схеме "исключи себя из проверки своей же работы" (leave-one-out).


🔬

Схема метода

ШАГ 1: Генерация контента → строгий промпт с ограничениями (не придумывать, не менять исходники) → чистый результат без пояснений
ШАГ 2: Перекрёстная оценка (отдельные запросы к другим агентам/чатам) → каждый оценщик проверяет ТОЛЬКО чужие результаты, не свои
ШАГ 3: Оценка по 5 критериям (0-5 баллов каждый) + список конкретных проблем + уверенность оценщика → в формате структурированного отчёта
ШАГ 4: Усреднение оценок от нескольких независимых оценщиков → финальный балл + список слабых мест

Все шаги — отдельные запросы (к разным чатам или к одному чату с явным разделением ролей).


🚀

Пример применения

Задача: Маркетолог просит три разные нейросети (или три отдельных чата) написать текст для рекламной рассылки нового банковского продукта. Все три текста звучат убедительно — но какой реально сработает?

Промпт (для оценки каждого варианта):

Ты — строгий оценщик маркетинговых текстов.
Тебе дан контекст (описание продукта, аудитория, тон бренда) и один текст рассылки.
Оцени текст ТОЛЬКО на основе контекста, не придумывай преимущества, которых нет в описании продукта.

Ты ОБЯЗАН:
- Проверить, есть ли в тексте конкретные факты или только общие фразы
- Оценить, закрывает ли текст типичные возражения клиента (цена, надёжность, простота)
- Найти риски: обещания, которые продукт не подтверждает
- Указать, что мешает читателю дочитать до конца
- Дать конкретные правки

Рубрика (0-5 баллов по каждому):
- R1 Конкретность (факты vs общие слова)
- R2 Убедительность аргументов
- R3 Покрытие возражений клиента
- R4 Соответствие тону бренда
- R5 Читаемость и структура

Выведи отчёт: баллы по каждому пункту, найденные проблемы, конкретные правки, итоговая оценка, твоя уверенность в оценке (0-100%).

КОНТЕКСТ ПРОДУКТА: {вставить описание}
ТЕКСТ ДЛЯ ОЦЕНКИ: {вставить один из трёх вариантов}

Результат: Модель выдаст структурированный отчёт по каждому из пяти критериев с конкретными баллами, списком слабых мест (например: "текст обещает кэшбэк, но не указывает условия — риск претензий"), предложенными правками и уровнем своей уверенности в оценке. Если прогнать так все три текста через оценку двумя разными моделями (каждая оценивает чужие тексты, не свой), получите более честную картину, чем субъективное "нравится/не нравится".


🧠

Почему это работает

LLM склонны давать поверхностную общую оценку — "выглядит хорошо" — потому что не проверяют каждый аспект отдельно, если их не попросить явно. Это то же самое, что спросить человека "как тебе фильм?" вместо "как тебе сценарий, актёрская игра, монтаж, музыка отдельно?" — второй вопрос вытаскивает куда больше деталей.

Сильная сторона LLM — она хорошо ищет конкретные недостатки, если дать чёткий список, что искать (это как разница между "проверь код" и "проверь: работает ли без ошибок, есть ли проверка на пустые данные, повторяется ли код").

Метод использует эту сильную сторону дважды: рубрика заставляет искать проблему в каждом измерении по отдельности, а правило "не оценивай своё" убирает известную слабость — модели склонны хвалить свой же текст выше, чем чужой (даже без злого умысла, просто потому что видят логику своего решения "снаружи").

Рычаги управления: - Число критериев в рубрике → можно сократить до 3 для простых задач, экономия времени - "Без объяснений" в промпте генерации → убери, чтобы видеть логику черновика - Confidence score (уверенность оценщика) → полезен, когда сравниваешь несколько оценок и хочешь понять, где модель сама не уверена - Diagnostic signals (конкретные проблемы + предложенные правки) → можно заменить на любой список типичных ошибок для своей задачи


📋

Шаблон промпта

ГЕНЕРАЦИЯ:
Тебе дан контекст: {описание задачи/проекта/продукта}.
Создай {что создать} со следующими ограничениями:
- Используй только информацию из контекста, не придумывай факты
- Следуй существующему стилю/формату
- Сфокусируйся на {конкретных требованиях}
Выведи только результат, без пояснений.

ОЦЕНКА (отдельный запрос, другой чат/модель):
Ты — строгий оценщик {тип контента}.
Тебе дан контекст и один результат для проверки.
Оцени результат ТОЛЬКО на основе контекста, не додумывай за автора.

Ты ОБЯЗАН:
- {критерий проверки 1}
- {критерий проверки 2}
- {критерий проверки 3}

Рубрика (0-5 баллов каждый):
- R1 {критерий 1}
- R2 {критерий 2}
- R3 {критерий 3}
- R4 {критерий 4}
- R5 {критерий 5}

Выведи: баллы по каждому пункту, найденные проблемы, конкретные правки, итоговый балл, твоя уверенность (0-100%).

КОНТЕКСТ: {вставить}
РЕЗУЛЬТАТ ДЛЯ ПРОВЕРКИ: {вставить}

🚀 Быстрый старт — вставь в чат:

Вот шаблон оценки VibeCheck: пятимерная рубрика + честная проверка без самооценки.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, какие именно пять критериев важны для твоей задачи и что считать проблемой — потому что рубрика работает только если критерии конкретные, а не общие ("хорошо/плохо").


⚠️

Ограничения

⚠️ Нужно несколько независимых источников. Если один и тот же чат генерирует и оценивает — правило "не оценивай себя" не работает, смысл теряется.

⚠️ Метод находит проблемы, но не решает их сам. Рубрика показывает, где слабое место, но исправление — отдельный шаг.

⚠️ Согласие оценщиков может быть иллюзией. Если несколько LLM основаны на одной базовой модели, их совпадающие оценки могут говорить не о правильности, а о том, что у них общий "взгляд на вещи" — это не гарантия объективности.


🔍

Как исследовали

Исследователи взяли 15 студенческих репозиториев на Python и JavaScript и заставили три ИИ-редактора кода (Kiro, Antigravity, Cursor) — все на одной модели Claude Sonnet 4.5 — генерировать юнит-тесты по одному и тому же строгому промпту: только по репозиторию, без внешних предположений. Baseline — та же модель Claude без обёртки редактора.

Каждый набор тестов затем оценивали три других агента по правилу leave-one-out — никто не проверял свою же работу — по пятибалльной рубрике из пяти измерений.

Главный вывод: тесты почти всегда запускались (высокая "runnability"), но проваливались по глубоким критериям — слабые проверки, пропущенные крайние случаи, общие данные между тестами. Это подтвердилось и для трёх редакторов, и для baseline-модели — значит, проблема не в конкретном инструменте, а в самой природе того, как модель генерирует "рабочий, но неглубокий" результат.

Любопытная деталь: согласие между оценщиками было неравномерным — Cursor и Kiro совпадали с базовой моделью чаще, а Antigravity — заметно реже, хотя все работают на одной модели. Значит, обёртка (как редактор организует контекст) сама по себе влияет на качество оценки, а не только базовая модель.


📋 Дайджест исследования

Ключевая суть

Тесты запускались без ошибок и даже проходили проверку — но внутри было пусто: только "не пустое значение", без крайних случаев. VibeCheck позволяет находить такие скрытые проблемы в любом AI-контенте, не только в коде. Метод разбивает общий вопрос "хорошо получилось?" на пять конкретных критериев и запрещает модели оценивать свою же работу — только чужую. Итог — конкретный список проблем вместо размытой общей оценки.

Принцип работы

Не спрашивай "хорошо?" — спрашивай отдельно про каждый из пяти пунктов. Каждый агент оценивает только чужую работу — никогда свою. Это как слепая рецензия в научных журналах: рецензент не видит автора и не может хвалить сам себя.

Почему работает

LLM оценивает поверхностно — говорит "выглядит хорошо", если не попросить копать по каждому аспекту отдельно. Это как спросить "как тебе фильм?" вместо "как сценарий, актёрская игра, монтаж — отдельно?". Второй вопрос вытаскивает больше деталей. Модели хвалят свой текст выше чужого — даже без злого умысла, просто видят логику своего решения изнутри. Правило "не оценивай себя" убирает эту слабость.

Когда применять

Оценка AI-контента → тексты, код, планы, тесты — везде где "выполнилось" не значит "качественно". Особенно полезно, когда сравниваешь несколько вариантов от разных моделей. НЕ подходит, если у тебя только один чат без разделения ролей — правило "не оценивай себя" развалится.

Мини-рецепт

1. Сгенерируй: строгий промпт без пояснений, с запретом придумывать факты
2. Раздели роли: оценивает другой чат или модель — никогда та же, что генерировала
3. Задай рубрику: пять конкретных критериев, баллы 0-5, не "хорошо/плохо"
4. Собери отчёт: баллы плюс список проблем, правки и уверенность оценщика (0-100%)
5. Усредни: если оценщиков несколько — финальный балл это среднее

Примеры

[ПЛОХО] : Оцени, хороший ли текст рассылки
[ХОРОШО] : Оцени текст по 5 критериям (0-5 каждый): конкретность фактов, убедительность, покрытие возражений клиента, соответствие тону бренда, читаемость. Ты не автор этого текста — оценивай только на основе контекста. КОНТЕКСТ: {вставить}. ТЕКСТ: {вставить}
Источник: VibeCheck: Assessing the Quality of LLM-Generated Unit Tests: A Multi-agent Empirical Study across Heterogeneous Repositories
ArXiv ID: 2609.05978 | Сгенерировано: 2026-09-09 04:24

Проблемы LLM

ПроблемаСутьКак обойти
Общий вопрос об оценке даёт поверхностный ответПросишь модель оценить контент в целом — "как получилось?". Получаешь общее "выглядит хорошо". Детали пропускаются: крайние случаи, скрытые ошибки, слабые места. Модель не разбирает контент по частям, если её не попросили явноРазбей оценку на 5 конкретных критериев с баллами 0-5 по каждому. Проси искать конкретные проблемы отдельно по каждому пункту, а не выносить общий вердикт
Модель необъективна к своей же работеЕсли попросить модель оценить то, что она сама создала, оценка получается завышенной. Модель видит логику своего решения "снаружи" и не замечает изъяны — без злого умысла, просто искажение восприятияПусть оценивает другой агент или другая модель. Никогда не давай автору оценивать собственный результат — правило "исключи себя из проверки своей работы"

Методы

МетодСуть
Пятимерная рубрика + перекрёстная проверка без самооценкиРаздели процесс на генерацию и оценку. Генерацию делает один агент. Оценку — другой (другой чат/модель), причём никто не проверяет свою же работу. Оценщик получает контекст и результат, ставит баллы 0-5 по 5 конкретным критериям, перечисляет найденные проблемы, даёт правки и указывает свою уверенность (0-100%). Несколько оценщиков — усредняем баллы. Почему работает: конкретный список критериев заставляет искать недостатки по каждому измерению отдельно, а запрет на самооценку убирает искажение "хвалю своё". Когда применять: любая задача где AI создаёт контент и важна честная оценка (код, тексты, планы). Когда не работает: если весь процесс идёт в одном чате без разделения ролей — правило "не оценивай себя" теряет смысл

Тезисы

ТезисКомментарий
Явный список критериев находит больше проблем, чем общий вопросМодель хорошо ищет конкретные недостатки, если знает что именно искать. Общий вопрос "хорошо получилось?" включает только поверхностную проверку. Список из 5 конкретных пунктов заставляет проверить каждый аспект отдельно. Применяй: вместо "оцени качество" пиши "оцени по пунктам A, B, C, D, E, каждый от 0 до 5"
Модель оценивает чужую работу критичнее собственнойКогда модель проверяет свой же результат, она видит только логику своего решения и не замечает слабых мест. Когда проверяет чужой результат — критичнее, потому что не привязана к собственной логике. Применяй: для честной оценки всегда используй другую модель или другой чат в роли оценщика, никогда — автора
📖 Простыми словами

VibeCheck: Assessing the Quality ofLLM-Generated Unit Tests: A Multi-agentEmpirical Study across Heterogeneous Repositories

arXiv: 2609.05978

Нейросети чудовищно плохи в самокритике: если спросить модель, нормальный ли результат она выдала, она почти всегда ответит «всё супер». LLM мыслят поверхностно и оценивают общий «вайб», а не реальное качество. Метод VibeCheck ломает эту слепоту через мультиагентную перекрёстную проверку: он заставляет разные модели оценивать работу друг друга по пяти четким критериям, полностью запрещая им судить самих себя.

Это как попросить студента проверить собственный диплом — естественно, он влепит себе «отлично», даже если внутри сплошная вода. Но если раздать эти работы другим студентам, вручить им чек-лист и сказать «топите конкурентов», наружу мгновенно вылезет вся скрытая халтура. Безжалостный взаимный аудит работает в разы лучше любых попыток призвать модель к совести.

Что конкретно работает: декомпозиция критериев вместо размытых вопросов и нулевое саморецензирование. Если спросить «как тебе текст?», нейросеть выдаст банальщину. Но если заставить ее оценить отдельно логику, фактуру, читаемость и граничные случаи у соседа, включается точечный критический анализ. Модель перестает вежливо кивать и начинает реально искать слабые места.

Исследователи тестировали подход на юнит-тестах для кода, но принцип универсален. Генерируешь маркетинговую рассылку, сложный отчет или скрипт продаж — создай три независимых агента и заставь их жестко отрецензировать варианты друг друга. Ты моментально отсеешь мусор и увидишь, какой вариант реально сработает, а какой просто «звучит убедительно».

Короче: хватит верить модели, которая уверяет, что сделала всё идеально — это верный путь в иллюзию качества. Реальный контроль дает только перекрёстная слепая проверка. Тот, кто внедрит такой мультиагентный фильтр, получит рабочий результат, а остальные так и будут пускать в релиз красиво упакованный брак.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с