Ловушка декогеренции: кода с ИИ-агентами на 30% больше, ревью дольше на 49%

По рабочему документу Гарвардского университета, который цитирует Нейт Мейвин в эссе The Decoherence Trap: после внедрения ИИ-агентов кода стало на 30% больше без роста числа завершённых задач, а ревью пул-реквестов замедлилось на 49%.

ИИ-агенты для разработки обещали кратный рост продуктивности; на практике пока заметнее всего вырос объём кода. По данным рабочего документа Гарвардского университета (анализ 718 компаний; working paper от 4 августа 2026 года ещё не прошёл рецензирование), который цитирует Нейт Мейвин в эссе The Decoherence Trap, после внедрения ИИ-агентов разработчики стали писать на 30% больше кода, время код-ревью выросло на 49%, возвратов на доработку стало почти вдвое больше, однако измеримого роста числа завершённых задач исследователи не обнаружили.

Рамку, объясняющую этот разрыв, предложило инженерное эссе The Decoherence Trap, опубликованное 14 октября 2026 года. Его автор вводит термин «декогеренция» — накопление в одной системе локально верных, но взаимно несовместимых или дублирующих друг друга моделей предметной области. Каждая такая модель в отдельности проходит тесты и выглядит разумно; вместе они превращают кодовую базу в лабиринт, где цена любого изменения определяется переводом между моделями и защитой от побочных эффектов.

  • Кода больше, результата столько же: по данным рабочего документа Гарвардского университета, который цитирует Нейт Мейвин в своём эссе, после внедрения агентов кода стало на 30% больше без роста числа завершённых задач, а ревью пул-реквестов замедлилось на 49%.
  • Декогеренция привязана к изменениям: рассогласованная система, которую десять лет никто не трогает, остаётся ровно настолько же рассогласованной; деградацию разгоняет частота правок, само время безвредно.
  • Агент — ускоритель процесса: модель видит локальный контекст задачи, проходит существующие тесты и добавляет переходники с новыми абстракциями там, где инженер стал бы выравнивать общую модель предметной области.

Худшая форма техдолга: здание с самодельными стыками

Автор эссе различает три вида технического долга. Инфраструктурный долг — это отсутствие нужных инструментов, тестов или конвейеров автоматизации; долг технического прогресса — естественное устаревание кода по мере того, как в индустрии появляются более удачные паттерны и библиотеки. Оба укладываются в классическую схему осознанных компромиссов, которые команда выбрала и записала, либо естественного износа. Третий вид — долг декогеренции (распада связности): разные части системы написаны из несовместимых предположений об общей модели предметной области; именно его автор считает худшей формой и связывает с ситуациями, где старое заменяют по частям. Показывает он это на офисном здании. Трубы, заложенные при строительстве, со временем деградируют, и их надо менять. Вариант первый — закрыть здание и заменить всё разом: дорого и неудобно, зато по завершении получается цельная система. Вариант второй — обновлять по этажу за раз. Вариант третий — латать по мере прорывов: самый дешёвый на старте и самый популярный.

Через несколько лет здание получает лоскутное покрытие из старых труб, новых труб и рукотворных стыков. Каждый стык — отдельный набор сил и свойств, понятный тому сантехнику, который его собрал, а если повезло — оставившему записи. Пока вода течёт, вопросов нет. Вопрос появляется, когда владельцу нужен пристрой, для которого придётся поднять давление во всей системе. Для однородной сети расчёт — рутина; для смеси двух систем с неизвестным числом самодельных соединений любой стык может изменить ответ, включая тот, что на другом конце здания. Система держится, но предсказать поведение системы при изменениях требует несравнимо больше усилий и анализа — в этом и есть отличие декогеренции от обычного износа.

Декогеренция — безоговорочно худшая форма технического долга.
Автор эссе The Decoherence Trap (maevyn.codes)

Эссе связывает это с кораблём Тесея: деревянный корабль можно заменить стальным по доске, если уметь строить каждую промежуточную итерацию — полукорабль-полуэсминец вряд ли окажется боеспособным. В софте промежуточные состояния никто не проектирует; они получаются сами из серии локальных ремонтов. Дополнительный множитель — вторая миграция, начатая до конца первой: связки между парадигмами умножаются, и сложность становится комбинаторной. Лабиринт растёт до размеров, где даже лучшие инженеры проходят его правильно в диапазоне от 80 до 90% случаев, а потом делают неверный поворот.

Растёт с числом правок, и агенты тут ускоритель

Ключевое свойство декогеренции: она привязана к изменениям и безразлична ко времени. Система, которую перестали трогать на десять лет, столько же лет не деградирует в этом смысле: рассогласованность остаётся прежней. Каждое изменение, внесённое без оглядки на общую модель, чуть-чуть поднимает вероятность того, что следующее изменение добавит ещё больше сложности. Отсюда экспоненциальный характер роста: небольшой темп накопления успевает раскрутиться до неуправляемого раньше, чем команда что-то заметит.

Именно поэтому агенты действуют как ускоритель. Модель получает локальный контекст задачи, прогоняет существующие тесты, видит зелёный цвет и закрывает задачу. Тесты проверяют поведение кода здесь и сейчас; при этом расхождение с общей моделью системы остаётся для них невидимым. По модели Мейвина, явные инварианты вроде «список уже отсортирован» или «значение не бывает пустым» позволяют упрощать алгоритмы; когда же код пишется изолированно, без понимания этих общих допущений, тесты отдельных функций проходят зелёным, хотя архитектурная связность распадается. Несовместимость агент добирает переходниками, новыми абстракциями и тихими допущениями — каждое из них скрытая связь, которую никто не записал. Люди делают то же самое, особенно под давлением сроков, подчёркивает автор эссе; отличие агентов в скорости и числе рук.

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

Автор собрал симуляцию, где кодовая база — граф, а действует абстрактный разработчик: актор, реализующий фичу обходом случайного участка графа с его мутацией. Режима два: аккуратная разработка с рефакторингом и спешная разработка без удержания общей структуры; поведение задаёт коэффициент связности, где низкий означает спешку, быстрые решения и простые патчи без учёта контекста, а высокий — долгую вдумчивую работу со шансом даже упростить систему. ИИ-агенты в этой модели — фактор, многократно ускоряющий спешную локальную генерацию кода. Ход замедляют три вещи: число связей узла в графе (контекст соседей приходится подтягивать хотя бы частично), переходы между парадигмами (каждое переключение требует заново понять обе стороны и стык) и длина пути — актор читает и перечитывает всё больше, в пределе до размера всей системы.

Картина получается знакомой. Актор с низкой связностью сначала быстрее закрывает первые задачи, чем аккуратный коллега: патчи дешёвые, ходы короткие. Затем граф деградирует, обходы дорожают, и стоимость каждой новой фичи уходит в вертикальный рост, тогда как кривая аккуратной разработки остаётся пологой. Между режимами — «золотая зона»: немного доминирующих парадигм, достаточно подвижности для изменений и никакого перфекционизма. Стратегия работает и в обратную сторону: связная система с полуспешной разработкой деградирует медленно, а потом резко проваливается в ловушку; рассогласованная система с целенаправленным выравниванием ускоряется по мере восстановления. Автор честно оговаривает: веса в симуляции произвольные, и строгим доказательством она не служит. При этом симуляция наглядно иллюстрирует механизм: такая кривая возникает из простых локальных правил, когда сегодняшние изменения меняют возможности завтрашних.

Относительная стоимость фичи по мере накопления изменений при высокой и низкой связности; схема по мотивам симуляции из эссе The Decoherence Trap

Полевые данные: Гарвард, Carnegie Mellon и 33 780 коммитов

Симуляция остаётся моделью, но полевые измерения говорят в ту же сторону. Рабочий документ Гарвардского университета (working paper Фионы Чен и Джеймса Страттона от 4 августа 2026 года; работа ещё не проходила рецензирование) по 718 компаниям, внедрившим агентов для написания кода: на 30% больше выданного кода, измеримого прироста завершённых задач нет, время ревью пул-реквестов выросло на 49%, почти вдвое выросла доля возвратов на доработку — по данным, которые приводит Нейт Мейвин в своём эссе.

Исследование Университета Карнеги — Меллона по проектам с открытым кодом, внедрившим Cursor (Хао Хе, Кортни Миллер, Шьям Агарвал, Кристиан Кестнер, Богдан Василеску; конференция MSR, 2026): по пересказу Мейвина, авторы работы зафиксировали кратковременный всплеск числа коммитов после подключения агентов, за которым через два месяца последовали спад выпуска новых функций и рост сложности кода; исследователи связывают последующее замедление именно с накопленной сложностью. Массовый анализ коммитов с участием ИИ-ассистентов (Юэ Лю с соавторами, препринт arXiv:2603.28592) охватил 33 780 коммитов: в зависимости от конкретного ассистента от 7,5 до 14,8% коммитов вносили хотя бы одну проблему качества кода (code smell или ошибку), причём 22,7% отслеженных проблем сохранялись в последних изученных версиях репозиториев.

Исследование Материал Итог
Гарвардский университет, рабочий документ, август 2026 718 компаний, внедривших агентов Кода на 30% больше, задач столько же, ревью дольше на 49%, возвратов почти вдвое больше
Университет Карнеги — Меллона, конференция MSR, 2026 Проекты с открытым кодом с Cursor Кратковременный всплеск коммитов, затем спад выпуска функций; замедление связывают с накопленной сложностью
Препринт arXiv:2603.28592, 2026 33 780 коммитов с участием ИИ-ассистентов От 7,5 до 14,8% коммитов с проблемой качества кода; 22,7% проблем сохранились в репозиториях

На этом фоне лозунги уровня «увольнять за код без ИИ» смотрятся одинаково странно с обеих сторон: сторонники и критики агентной разработки любят цифры без указания базы сравнения — мы разбирали этот спор на примере заявления разработчика Telegram.

Шахматы и шрифтовые гарнитуры: задачи со строгой метрикой и задачи на целостность дизайна

Граница применимости выводится из того, где вообще можно проверить связность. В замкнутых мирах с малым набором правил и мгновенной обратной связью модели работают отлично: шахматы и го, StarCraft и Dota, изолированные алгоритмические задачи, самодостаточные утилиты. Правила мира совпадают с критерием победы, поэтому улучшение можно мерить бесконечно, не выходя из дата-центра, — классический пример AlphaZero, выучившего стратегию исключительно на партиях внутри виртуальной доски. Противоположный полюс из эссе — проектирование шрифта (typeface design): Мейвин противопоставляет шахматы, где есть однозначное правило победы и алгоритм побеждает человека, проектированию гарнитуры, где важна визуальная и концептуальная согласованность всех глифов — целостность дизайна, которую строгой метрикой не выразить.

Связность софта так не измеряется. Пример из эссе — футуры: идея заглушки для будущего значения появилась в 1970-х, первая реализация в MultiLisp датируется 1985 годом, в Java футуры добрались только в 2004-м, а популярными стали в 2010-х с цепочками промисов в JavaScript и Task в C#. Ценность абстракции проявилась лишь тогда, когда её опробовали в меняющихся контекстах: десктопы, веб, мобильные устройства, облака. Такой тест нельзя прогнать внутри песочницы — нужно ждать новых сценариев от мира или выпускать софт и наблюдать его эволюцию. Отсюда вывод эссе: модель может писать быстрый и компактный код сверх человеческого уровня, оставаясь в пузыре дата-центра, но улучшать связность софта без обратной связи из реального мира она не способна — нечего измерить.

Агент внутри репозитория живёт в псевдозамкнутом мире: тесты зелёные, линтер молчит, задача закрыта. Архитектурная связность живёт в открытом мире, и расхождение с ней агент не видит в принципе. Недавний случай, когда агент OpenAI скачал закрытые данные и умолчал об этом, добавляет ещё одно измерение доверия: автономный контур без внешней проверки расходится с реальностью и по качеству, и по поведению.

Предельная форма риска получила в эссе имя «декогерентный коллапс». Система разрастается до размеров, когда поддерживать её могут только агенты, — и тут выясняется, что вернуть ей архитектурную связность агенты не способны: для удержания связности крупной системы, по модели Мейвина, потребовалось бы обобщение и формирование компактных абстракций на уровне человека или выше. Команда заперта в модели разработки, которая деградирует при любых усилиях; восстановление, по оценке автора, может занять годы и десятилетия, и всё это время выпуск новых функций резко замедлится. Здесь же коренится условный экономический аргумент: по мнению Мейвина, если окажется, что удержание связности требует на порядки больше вычислений, чем локальная генерация кода, то подписка за $200 в месяц перестанет покрывать реальные вычислительные затраты. Отсюда настороженность автора к экспериментам вроде агентоцентричного дистрибутива Omarchy: размывание общих основ ради коротких выигрышей он сравнивает с подсечно-огневым земледелием.

Практические выводы для техлида

Эссе остаётся эссе; чек-лист ниже — практический вывод редакции на основе разобранных исследований и модели Мейвина: пять правил для команд, которые уже работают с агентами.

  • Ревью на инварианты предметной области. Тесты проверяют поведение, инварианты — смысл: единицы измерения, границы модулей, единые схемы контрактов, правила именования. Пул-реквест агента должен отвечать на вопрос, какую общую модель он расширяет, а там, где появилась дублирующая абстракция, — вопрос, зачем она нужна рядом со старой.
  • Запрет дублирующих адаптеров. Новый переходник между подсистемами — сигнал к выравниванию общей модели. Правило уровня архитектурного гайда сдерживает лоскутность надёжнее индивидуального мастерства.
  • Отказ от метрики объёма кода. Строки и число коммитов награждают именно ту разработку, которая плодит рассогласованность. Полезнее измерять завершённые задачи, время цикла ревью и долю возвратов на доработку.
  • Постоянный бюджет на связность. Корпоративный цикл из эссе — деградация, большая чистка, релизы, сворачивание чистки на полпути, снова деградация — разрывается небольшим регулярным бюджетом на выравнивание вместо периодических авралов.
  • Одна миграция за раз. Второй переход до конца первого превращает парные связки парадигм в комбинаторику всех порядков. Завершай текущую миграцию, потом начинай следующую.

Два финальных тезиса эссе обнадёживают прагматика. Декогеренция меняется только вместе с системой, значит выход из ловушки доступен всегда: остановить экспансию и начать выравнивание; самая дорогая часть — первая. И процессы, улучшающие связность, давно изобретены: открытый код за пару десятилетий собрал больше связной инфраструктуры, чем корпоративные стеки до него. Формула Кори Доктороу, на которую опирается автор, проста: за рулём остаётся человек, машина должна быть машиной.

Источники

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

admin
30 июня 2018

Шаблоны проектирования в Python: для стильного кода

Многие шаблоны проектирования встроены в Python из коробки, а другие очень ...