Секте свидетелей Done в agentic workflow посвящается
Продолжим про бенчарки агентской разработки. Попался на глаза разбор по SWE-bench Verified.
Исследователи сравнили submit rate и resolve rate. Оказалось, что агент почти всегда способен сформировать и отправить изменение. Но заметно реже это изменение действительно закрывает проблему.
И это, если честно, совсем не удивительно. Метрика «я сделаль» никогда не была равна метрике «пользователь получил рабочий фикс».
Более того, одна из самых неприятных категорий ошибок получила название silent semantic failure. Это когда агент несколько раз подряд воспроизводит одно и то же неправильное решение и каждый раз уверен что задача выполнена. То есть проблема не только в том, что агент ошибся. Проблема в том, что он убежден, что он прав.
Еще из интересного. Агент часто предпочитает внести изменения, даже когда правильным решением было не менять код вообще.
Получается ловушка. Высокий submit rate не является метрикой приносимой пользы. Это всего лишь показатель того, что агент склонен что-то сделать. Опытный разраб на живой системе предпочел бы трогать минимум кода, а лучше не трогать вообще, если можно выкрутиться по другому.
Но ведь мы раньше не верили на слово джунам. Сообщение 'Починил, проверил' было поводом пойти открыть diff, убедиться, что CI зеленый, а не просто нажать на мерж. Так и агент это участник процесса, а не система контроля. Его Done всего лишь гипотеза, которую нужно проверить. Self-report агента не является доказательством.
А вот из того, как мы выстроим доказательства, критерии приемки и строится настоящая инженерия агентных систем. И эта инженерия не про то, как грозить модели пальчиком в промпте. И не про бесконечную гонку за новыми моделями. А про то, что нужно думать не только о том, что подать модели на вход, но и о том, как проверить то, что она выдала на выходе. Когда она сказала Done.
Продолжим про бенчарки агентской разработки. Попался на глаза разбор по SWE-bench Verified.
Исследователи сравнили submit rate и resolve rate. Оказалось, что агент почти всегда способен сформировать и отправить изменение. Но заметно реже это изменение действительно закрывает проблему.
И это, если честно, совсем не удивительно. Метрика «я сделаль» никогда не была равна метрике «пользователь получил рабочий фикс».
Более того, одна из самых неприятных категорий ошибок получила название silent semantic failure. Это когда агент несколько раз подряд воспроизводит одно и то же неправильное решение и каждый раз уверен что задача выполнена. То есть проблема не только в том, что агент ошибся. Проблема в том, что он убежден, что он прав.
Еще из интересного. Агент часто предпочитает внести изменения, даже когда правильным решением было не менять код вообще.
Получается ловушка. Высокий submit rate не является метрикой приносимой пользы. Это всего лишь показатель того, что агент склонен что-то сделать. Опытный разраб на живой системе предпочел бы трогать минимум кода, а лучше не трогать вообще, если можно выкрутиться по другому.
Но ведь мы раньше не верили на слово джунам. Сообщение 'Починил, проверил' было поводом пойти открыть diff, убедиться, что CI зеленый, а не просто нажать на мерж. Так и агент это участник процесса, а не система контроля. Его Done всего лишь гипотеза, которую нужно проверить. Self-report агента не является доказательством.
А вот из того, как мы выстроим доказательства, критерии приемки и строится настоящая инженерия агентных систем. И эта инженерия не про то, как грозить модели пальчиком в промпте. И не про бесконечную гонку за новыми моделями. А про то, что нужно думать не только о том, что подать модели на вход, но и о том, как проверить то, что она выдала на выходе. Когда она сказала Done.