Ни один агент не должен проверять свою собственную работу

Вы просите Claude проверить ваш код. Он говорит, что код выглядит чистым. Конечно, так и есть. Он сам написал этот код пять минут назад. Вы попросили автора оценить свою работу, и он поставил себе «отлично».

AI-ревью кода работает. Оно дает сбой, когда вы просите автора проверить свою собственную работу. Качество обеспечивается архитектурой, в которой ни одна роль не проверяет саму себя.

Исследования 2024 года показывают наличие предвзятости к собственным результатам (self-preference bias). Модель оценивает свои собственные результаты выше, чем результаты других моделей аналогичного качества. Модель узнает свой собственный стиль и отдает ему предпочтение.

Цикл «напиши, а затем проверь то, что только что написал» сломан. Вы получаете не ревью, а оправдание. Агент уже решил, что код хорош. Повторный запрос лишь подтверждает это решение.

Следуйте этим правилам, чтобы создавать лучшие рабочие процессы для агентов:

  • Рецензент никогда не должен быть автором. Используйте другое семейство моделей для рецензирования, чтобы разорвать узнавание стиля.
  • Используйте чистый контекст. Рецензент не должен видеть исходный промпт для реализации или ограничения, установленные автором.
  • Уберите идентификацию. Не говорите рецензенту, кто написал код. Личность автора провоцирует предвзятость.
  • Избегайте избыточного обнаружения ошибок (over-flagging). AI-рецензенты часто выдумывают проблемы, чтобы казаться полезными. Из-за этого вы перестаете к ним прислушиваться.

Используйте «правило квитанции» (receipt rule), чтобы избежать ложных срабатываний. Каждое найденное замечание должно сопровождаться доказательством, прежде чем вы его увидите.

Если рецензент заявляет о риске SQL-инъекции, он должен предоставить:

  • grep пользовательского ввода.
  • трассировку потока запроса.

Если значение является константой, отклоните замечание. Если оно поступает из HTTP-запроса, оставьте его. Сначала доказательство, затем суждение.

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

Истина рождается из противоречий, а не из самодекларации.

Создайте систему, в которой роли никогда не пересекаются:

  • Автор пишет код.
  • Тестировщик пишет тесты, основываясь только на спецификации.
  • Рецензент не писал код.
  • Объективные проверки, такие как линтинг и тесты, должны быть пройдены до того, как код увидит человек или LLM.

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

Source: https://dev.to/ohugonnot/no-agent-grades-its-own-homework-8lb

Optional learning community: https://t.me/GyaanSetuAi