Кількісна оцінка надлишковості коду ШІ-агентів за допомогою AST-Grep та метрик ерозії
Бенчмаркінг показав, що ШІ-агенти створюють код із удвічі вищою вербозністю та архітектурною ерозією, ніж у людських репозиторіях. Ітеративні цикли агентів накопичують невдалі абстракції, через що показник успішності у строгих тестах падає до нуля.

Вплив: Високий
Чому це важливо
Тести для нового коду перевіряють його функціональну правильність, але не помічають деградацію архітектури. Через швидку генерацію коду моделями структурна ентропія непомітно накопичується, доки навіть передові агенти не починають зазнавати невдач.
TL;DR
- 01Код від ШІ-агентів має приблизно вдвічі вищу вербозність та архітектурну ерозію порівняно з репозиторіями, написаними людьми.
- 02Провідні моделі демонструють 0% успішних проходжень у суворих багатоетапних тестах зі скиданням контексту між чекпоїнтами.
- 03Використання LLM як судді для оцінки якості коду залишається нестабільним і за точністю нагадує генератор випадкових чисел.
Ключові факти
- Вербозність коду агентів
- 0.33 ± 0.10 (проти 0.15 ± 0.06 у людей)
- Ерозія коду агентів
- 0.68 ± 0.20 (проти 0.31 ± 0.17 у людей)
- Вербозність у вайб-проєктах
- До 0.40
- Ерозія у вайб-проєктах
- До 0.75
- Успішність у строгих багатоетапних тестах
- 0% серед провідних моделей міркування
Кількісний вимір надлишковості у вайб-кодингу
Хоча мовні моделі генерують синтаксично правильний код, що проходить базові тести, ітеративна робота веде до вибухового зростання рядків коду. Дослідник Себастьян з Earendil перевірив метрики бенчмарку SlopCodeBench, відмовившись від ненадійного підходу LLM-як-суддя, оцінки якого часто нагадують генератор випадкових чисел.
Вербозність та ерозія функцій
SlopCodeBench виділяє дві ключові математичні метрики кодової деградації:
- Вербозність (Verbosity): частка рядків дублікатів та спрацювань
ast-grepвідносно загальної кількості рядків (LOC). Для коду людей середній показник становить 0.15 ± 0.06, тоді як для коду агентів — 0.33 ± 0.10. - Ерозія (Erosion): концентрація маси кодової бази у складних функціях із цикломатичною складністю
CC(f) > 10. Маса функції визначається якmass(f) = CC(f) * sqrt(SLOC(f)). Для коду агентів показник становить 0.68 ± 0.20, що вдвічі перевищує людські репозиторії (0.31 ± 0.17).
Чому ітеративні агенти ламаються на довгих дистанціях
У SlopCodeBench агенти проходять кілька раундів інструкцій зі скиданням контексту між чекпоїнтами, що імітує реальний процес програмування. Погані архітектурні рішення нашаровуються, і в результаті навіть топові моделі міркування отримують 0% успішних завершень за суворими критеріями. Це демонструє, що самі агенти не здатні впоратися зі сміттєвим кодом, коли невдалі абстракції накопичуються від раунду до раунду.
Спробуй за 2 хвилини
mass = cc * (sloc ** 0.5)
erosion = sum(f.mass for f in funcs if f.cc > 10) / sum(f.mass for f in funcs)python
✓ Коли використовувати
- Використовуйте формули ерозії та аналіз на базі AST для перевірки стану кодових баз, де активно застосовується ШІ-генерація.
✕ Коли НЕ варто
- Не покладайтеся на прямі оцінки від LLM-суддів за шкалою від 1 до 10 для вимірювання чистоти коду.
Що зробити сьогодні
- Відстежуйте дельту кількості рядків коду (LOC) у PR від агентів як перший індикатор розростання зайвих абстракцій.
- Контролюйте цикломатичну складність та масу функцій для виявлення архітектурної ерозії.
Джерела