Почему агент не должен проверять сам себя
Отдельный проверяющий агент выглядит лишней тратой токенов и проверку хочется поручить тому же агенту, который писал код. На самом деле это работает плохо.
Модель, которая только что написала решение, лояльна к собственному результату. Свои допущения она уже приняла за правду и дальше их подтверждает, ошибки в них не ищет.
Так появляется паттерн maker-checker. Один агент, maker, делает работу. Второй, checker, проверяет её по заранее заданным критериям и его роль в том, чтобы придираться.
Valmeekam, Marquez и Kambhampati замерили это на задачах планирования, работа называется "Can Large Language Models Really Improve by Self-critiquing Their Own Plans?" (arXiv 2310.08118). Проверяющий внутри той же модели даёт заметную долю ложных срабатываний, то есть уверенно принимает неверный план.
Выигрывает структурированная проверка: рубрика с критериями, тесты, правила проекта, отдельный проверяющий. Checker смотрит на конкретный результат. Тесты и линтер прошли, поведение совпало с ожидаемым. Оценка "нравится или нет" сюда не относится.
Тут как всегда есть НО. Второй агент, это лишние токены и время. На мелкой и обратимой задаче отдельный чекер, это перебор. Разделять роли стоит там, где ошибка стоит дорого.
Источник:
https://arxiv.org/pdf/2310.08118
Post #2026
773
- 👍 7
- 🔥 2
- ❤🔥 1
- 😁 1
- 🎉 1
- 💯 1