Вы просите модель написать код. Потом, не меняя контекст, говорите: «А теперь проверь, всё ли здесь правильно.» Она находит пару мелких замечаний, что-то косметически поправляет и в итоге говорит: «В целом решение корректное.»
Честно говоря, было бы странно ожидать другого.
Модель не перечитывает код «свежим взглядом». Она продолжает тот же разговор, в котором уже построила гипотезу, что это решение хорошее. Проверка превращается не в независимое ревью, а в продолжение собственной цепочки рассуждений.
Я столкнулся с этим, когда гонял локальные модели на собственном харнессе. Я проверял их на десяти сценариях, и долго не мог понять, почему результаты выглядят прилично, а реальной работы почти нет.
Ответ оказался неприятно простым.
Модель сначала генерировала решение, а потом сама же его подтверждала.
После разделения контекстов качество выросло заметно.
- Одна роль только строит решение и вообще ничего не знает о том, что его потом будут проверять.
- Вторая получает только готовый результат и задачу его сломать. Без истории диалога, без объяснений, без «я уже думал над этим».
- Третья вообще работает отдельно — она смотрит только на источники и пытается найти противоречия между ними и тем, что получилось.
И здесь, как мне кажется, важен один момент.
Это не история про дорогие агентные платформы. Это можно сделать даже тремя отдельными окнами ChatGPT, если у каждого будет своя роль и свой контекст. Чем независимее эти роли друг от друга, тем больше шансов, что одна действительно поймает ошибку другой.
Попробуйте вспомнить свою последнюю задачу.
Сколько раз вы просили модель проверить то, что она сама только что и написала?
Дискуссия