«Она написала мне идеальную документацию. Триста страниц. Теперь я не понимаю не только код, но и документацию»
Код работает. Тесты проходят. А читать его невозможно. «Я бы написал это иначе» — думает каждый, кто открывал результат работы LLM-агента. Или другая сторона той же монеты: модель выдала исчерпывающий документ, в нём есть всё — а в голове после прочтения не остаётся ничего.
Мы привычно называем это «низким качеством». Плохо обучили. Недотюнили. Промпт кривой. Но давайте присмотримся: качество ли это?
В обсуждениях проблем LLM обычно звучат два объяснения. Первое — данные: модель воспроизводит мусор, на котором училась. Второе — целевая функция: модель оптимизирована на корректность и предсказание следующего токена, а не на понятность. Оба объяснения верны. И оба не объясняют главного.
Есть третий слой, о котором говорят редко: человек и LLM мыслят принципиально по-разному. Не «лучше» и «хуже» — по-разному устроенными механизмами. И значительная часть того, что мы называем плохим качеством, — это не дефект, а несовпадение двух когнитивных архитектур, которые пытаются обмениваться результатами мышления через узкий канал текста. Назовём это несовпадение когнитивной асимметрией.
Эта статья — про третий слой. Каждое её звено проверялось по живому научному корпусу OpenArx, включая отдельный, целенаправленный поиск опровержений. Там, где литература подтверждает, — приведены работы и цифры. Там, где данные расходятся, — расхождение показано честно. А две гипотезы по ходу проверки изменили свой статус, и об этом — в конце.
Начнём с человека.
Возьмите задачу посложнее и поймайте себя на процессе. Вы не думаете «обо всём сразу». В каждый момент в фокусе вашего внимания — несколько образов-понятий. Классическая оценка Миллера — семь плюс-минус два. Более поздняя и более честная оценка Коуэна — четыре плюс-минус один. Назовём это актом мышления: операция над тем, что сейчас в фокусе.
У фокуса два жёстких свойства. Первое: статус бинарный. Образ либо в фокусе, либо нет — «наполовину в фокусе» не бывает. Второе: сама операция — тоже образ-понятие, и она тоже занимает место. Сравниваете два варианта архитектуры? В фокусе уже три сущности: два варианта и само сравнение. На детали осталось два слота.
Звучит как приговор. С таким крошечным окном невозможно спроектировать систему, написать книгу, разобраться в чужом проекте. Однако человек всё это делает. За счёт чего?
За счёт второй половины конструкции. Каждый образ в фокусе не висит в пустоте — он вшит в постоянную память, практически безграничную по объёму. И мышление работает циклом: достать нужное из постоянной памяти, вытеснив лишнее из фокуса; совершить акт; результат сам, без усилия, записывается обратно; достать следующее. Шаг за шагом, по четыре-пять абстракций за раз, человек строит модель любой сложности. Она не помещается в фокус целиком — и не должна. Она лежит в постоянной памяти, а фокус ходит по ней, как луч фонарика по тёмному складу.
Причём связи в этой памяти бывают двух родов. Ассоциативные, семантические — по сходству и смежности: они подбрасывают в фокус неожиданных соседей и делают мышление креативным. И ортогональные — независимые структурные оси вроде «часть — целое», «причина — следствие», «общее — частное». Осознанную полноту понимания модели обеспечивают именно они: по ортогональным связям её можно обойти систематически, ничего не пропустив. Ассоциации дарят находки, ортогональность — гарантию охвата.
Запомним формулу: у человека — узкие, многочисленные акты мышления с накоплением. Это медленно. Это требует усилий и концентрации внимания. Но это не имеет потолка по сложности итоговой модели.
Теперь LLM. И здесь всё устроено наоборот, буквально зеркально.
Никаких четырёх-пяти слотов. Внимание трансформера — это многослойная карта поверх всего контекстного окна сразу. Каждый слой смотрит на контекст под своим углом, выхватывая свой аспект связей; слои громоздятся друг над другом, образуя иерархию внимания. За один проход модель связывает десятки взаимозависимых сущностей — то, что человеку физически недоступно ни при какой тренировке. Если модель задачи влезает в окно, LLM «видит» её целиком, одномоментно, со всеми связями.
Но у этой широты есть цена, и она ровно там, где у человека сила. У LLM нет записываемой постоянной памяти. Контекстное окно — это и операционная память, и постоянная, слитые в одном месте. Веса? Веса — это обобщённое знание, «умение ездить на велосипеде». В них нельзя записать новую модель по ходу работы: на инференсе веса не меняются. Всё, что модель «поняла» за сессию, живёт только в окне — и умирает вместе с ним. Всё, что в окно не попало, для модели не существует.
Зеркальная формула: у LLM — широкие, немногочисленные акты без накопления.
Человек — последовательный построитель неограниченной модели. LLM — параллельный обработчик ограниченной модели. Граница между «операционным» и «постоянным» у них проходит в разных местах — и из этой разницы вырастает всё остальное.
Стоп. Внимательный читатель уже возражает: так у LLM что, вообще нет предела ширины? Сколько угодно сущностей за раз?
Нет. Предел есть. Но он другой природы — и эта разница важнее самого предела.
У человека предел дискретный и архитектурный: слоты. Либо влез, либо нет. У LLM предел непрерывный и функциональный. Внимание в трансформере — нормированный бюджет: сумма весов внимания равна единице, и этот бюджет делится между всеми элементами контекста. Можно делить его сколь угодно мелко — слотов нет. Но чем больше взаимозависимых сущностей модель должна удерживать различимыми, тем тоньше слой внимания достаётся каждой. В какой-то момент распылённое внимание перестаёт работать: энтропия карты внимания растёт, сигнал тонет, точность обваливается.
Это не единственный механизм. Второй — геометрический: семантически похожие сущности лежат рядом в векторном пространстве и при извлечении «слипаются». Отсюда контринтуитивный факт: при высокой семантической плотности память модели схлопывается уже на пяти фактах — формально меньше человеческих слотов. Предел зависит не только от количества сущностей, но и от их похожести. Исследователи описывают это как нарушение требования ортогональности: надёжной памяти нужны независимые ключи, а семантические эмбеддинги независимыми быть не могут — обучение нарочно кладёт похожее рядом. Вспомните ортогональные связи человека из §2: у него на них держится полнота понимания, у модели такой опоры нет.
И третий механизм — самый показательный. Модель не умеет забывать. Человек под нагрузкой интерференции — когда похожие элементы в памяти начинают мешать друг другу и новое путается со старым — выходит на плато: он активно «отвязывает» устаревшие ассоциации и держится. LLM такого механизма не имеет — её точность монотонно сползает к нулю, и даже прямая инструкция «игнорируй предыдущее значение» не помогает. Причём проявляться этот мягкий, непрерывный предел может обманчиво жёстко: при последовательном потоке помех точность держится почти идеально до порога, специфичного для конкретной модели, — а потом обрушивается ступенькой.
Итого: предел человека — жёсткий, маленький, одинаковый. Предел LLM — выше, эластичнее, но плавающий: он зависит от модели, от похожести сущностей, от структуры контекста. Поэтому на графике человек — линия, а LLM — область.
Тезис: «рост числа одновременно удерживаемых сущностей ведёт к деградации даже внутри окна».
Self-Attention Limits Working Memory Capacity of Transformer-Based Models — Gong, Zhang (arXiv: 2409.10715). N-back-эксперимент: точность коррелирует с величиной внимания на целевой позиции; с ростом нагрузки энтропия карты внимания растёт — внимание «размазывается». Предел задаёт дефицит внимания, а не объём хранилища.
How Focused Are LLMs? — Hou et al. (arXiv: 2511.00763). «Обрыв точности» на характерном масштабе N* ≈ 10–100 взаимозависимых элементов — далеко в пределах окна. Причина — all-to-all связность self-attention: локальные ошибки распространяются глобально.
Attention Is Not Retention: The Orthogonality Constraint — Zahn et al. (arXiv: 2601.15313). Надёжная память требует ортогональных ключей, но семантические эмбеддинги ортогональными быть не могут — обучение кластеризует похожие концепты. При высокой семантической плотности (ρ>0.6) память схлопывается уже на N=5 фактах. Авторы подчёркивают: это «геометрическая неизбежность», не баг, чинимый масштабом.
Unable to Forget — Wang, Sun (arXiv: 2506.08184). Проактивная интерференция: модель извлекает старые, уже перезаписанные значения. Человек под интерференцией выходит на плато, LLM — монотонный спад к нулю; «interference overrides recency and instruction». При последовательных помехах — ступенька на пороге, специфичном для модели.
Честная оговорка. Beyond Exponential Decay (Arbuzov et al., arXiv: 2505.24187): деградация неравномерна — ошибки концентрируются в 5–10% «ключевых токенов» и частично восстановимы ансамблированием. Предел реален и воспроизводим, но он вероятностный и смягчаемый (масштаб модели, CoT, структура входа), а не абсолютный барьер.
Сведём картину. Два устройства, и сила каждого — ровно там, где слабость другого.
Пока модель задачи влезает в окно, LLM превосходит человека в разы — а если учесть ещё и скорость обработки, то на порядок. Она видит систему из десятков связанных сущностей целиком, там, где человек вынужден дробить на узкие акты, медленно и с риском растерять связи по дороге. Любой, кто скармливал модели целый модуль кода и получал точный разбор взаимозависимостей за секунды, знает это чувство.
Но как только модель задачи перестаёт влезать в окно — преимущество не уменьшается, оно исчезает. LLM режет систему на части, рассматривает каждую как автономную и теряет связи между частями. Селективная выборка — grep, поиск по эмбеддингам — собирает композит под размер окна, но алгоритмическая выборка неполна: неучтённая зависимость превращается в ошибку решения. Человек на той же задаче медленнее в каждом акте, но он способен построить и удерживать модель любого размера — у него для этого есть постоянная память.
Человеку не хватает ширины акта, LLM — накопления. Дефициты симметричны с почти издевательской точностью.
Здесь обычно следует возражение: «Но LLM же пишет совершенно по-человечески! Структурирует, оформляет, разбивает на разделы. Значит, мыслит она как мы?»
Нет. И это, возможно, самое важное место статьи.
Модель пишет понятные людям тексты и модульный код, потому что училась на человеческих текстах и человеческом коде. Это статистика, а не свойство архитектуры. Внутри неё нет ничего, что прижимало бы её к человеческой ширине: «понятность для читателя с фокусом в четыре-пять абстракций» — мерка, которой модель не видит и увидеть не может. Она воспроизводит форму человеческих артефактов, как воспроизводит стиль Хемингуэя, — не нуждаясь в том, для чего эта форма существует.
И как всякая привычка, не подкреплённая внутренней потребностью, она держится ровно до тех пор, пока условия похожи на те, в которых её выучили. Пока контекст напоминает обучающие данные — модель пишет «по-человечески». Дальше мы увидим, что происходит, когда перестаёт напоминать.
🔬 Доказательная база: человекоподобность — артефакт обучения (29 за / 3 против / 18 нейтрально)Механизм: «структуры не имеют человеческой формы по природе».
Revisiting the Impact of Pursuing Modularity for Code Generation — Kang, Seo, Kim (arXiv: 2407.11406). Ключевая работа: «modularity is not a core factor for improving the performance of code generation models… LLMs do not exhibit a preference for modular code». Модульность существует для человеческого восприятия — у модели нет к ней внутренней тяги.
Beyond Human-Readable (корпус OpenArx, docId b909e3b8). Поворот с другой стороны: LLM хорошо соблюдает SOLID потому что обучена на нём; человекочитаемость — частично артефакт обучения, и уход к «агент-оптимальным» структурам грозит «distributional drift».
Comprehension Without Competence — Zhang (arXiv: 2507.10624). Структурный, а не только «про данные», аргумент: «not a limitation of scale, training data, or prompting… artificial and biological intelligence may operate under fundamentally different principles».
What do language models model? (docId 086837c6). Трансформеры «лучше понимать как моделирующие корпус», а не человеческие когнитивные способности.
Чтобы увидеть, чего именно не хватает под этой привычкой, посмотрим, как человеческий лимит отпечатывается в вещах, которые человек создаёт. Отпечаток этот настолько привычен, что мы его не замечаем — как рыба не замечает воду.
Сначала отсечём лишнее. Справочник нас не интересует. Справочник — сборник случайного доступа: нашёл по индексу, открыл страницу, получил ответ. Внутренней модели он не строит и не требует — и с ним человек и LLM работают одинаково хорошо. Нас интересуют артефакты с внутренней системой знаний. Те, которые должны быть поняты.
Чистый случай такого артефакта — учебник. Подумайте, что это вообще такое. Автор однажды прошёл предметную область своим узким фокусом: шагами по четыре-пять абстракций, от крупного к мелкому, всегда один конкретный аспект — в понятной иерархии аспектов. И записал маршрут. Читатель открывает книгу и проигрывает этот маршрут заново, шаг за шагом собирая в голове ту же модель, что была у автора. Учебник — это законсервированный путь мышления, рассчитанный на проигрывание таким же узким сознанием. Порядок глав — не оформление. Порядок глав и есть содержание.
Код устроен сложнее. Он не предназначен для последовательного чтения в первую очередь, у него нет начала и конца. Чтобы понять чужой код, человек идёт от самых крупных блоков к самым мелким, восстанавливая структуру уровень за уровнем. Но вот что важно: каждый уровень человеческого кода — функция, модуль, подсистема — «продавлен» через то же самое узкое горлышко. Создавая его, разработчик в каждый момент удерживал лишь несколько сущностей — иначе он просто не мог. Поэтому чужой человеческий код понять трудно, но можно. Даже абстракции, которые остались в голове архитектора и в код не попали, другой человек способен восстановить или переизобрести. Они ведь тоже были человеческого размера — обязаны были влезать в чью-то голову.
Даже вырожденные случаи подтверждают правило. Записанный «поток сознания» — несистемный, с дырами в покрытии, местами косноязычный — всё равно воспринимаем другим человеком, потому что произведён через тот же лимит. Сложный граф знаний, проходя через человеческое сознание, на выходе всё равно даёт линейный, усвояемый текст. А код, который годами правили разные люди, в разное время, с неполным пониманием общей архитектуры? Да, он может выползти за человеческий предел — избыточная связность накапливается. И посмотрите, что тогда происходит: его перестают поддерживать. Его рефакторят или переписывают с нуля — потому что построить внутреннюю модель его работы дороже, чем написать заново. Экосистема человеческих артефактов сама стягивает их обратно под лимит.
Теперь возьмём артефакт LLM и поищем в нём этот отпечаток.
Его там нет. Артефакт LLM — слепок не маршрута, а карты. Модель не шла по предметной области шагами — она связала всё одновременно, широким фронтом. Записанного пути в её тексте нет, потому что пути не было. Линейный порядок её текста — мимикрия под учебник, та самая выученная привычка из предыдущего раздела, а не след построения модели. Это широкая карта, расплющенная в строку. Локально каждый абзац гладок и грамотен. Но глобальной дидактической топологии — какой аспект сейчас рассматривается, в какой иерархии, что читатель уже держит в фокусе, а что ему пока рано, — нет. Вот, кстати, и точное объяснение знакомого симптома: длинный текст LLM «содержит всё», но не усваивается. В нём нечего проигрывать.
С кодом то же самое, уровнем глубже. Каждая функция по отдельности читается — этому модель научилась на человеческом коде. Но межуровневая структура не проходила ни через какое горлышко. В ней свободно возникают связи, которые человек не создал бы — не из принципа, а просто потому, что не удержал бы в голове. И здесь главное отличие от запутанного человеческого кода: утраченные абстракции в LLM-коде не восстановить, потому что их не существовало. Не было головы, в которую они обязаны были влезать. Реализация без модели в её основе.
Замыкает картину ещё одно наблюдение: LLM не производит отпечаток ещё и потому, что сама в нём не нуждается. Любой артефакт она читает как справочник — случайным доступом по всему окну сразу. Учебник и справочник для неё неразличимы: маршрут ей не нужен, и сама потребность, которой маршрут служит, ей незнакома. Учебники пишет только тот, кто сам учится последовательно.
🔬 Доказательная база: корректно ≠ воспринимаемо (симптом — 30 за / 8 против / 12 нейтрально; механизм — 29/3/18)Assessing the Quality and Security of AI-Generated Code — Sabra, Schmitt, Tyler (arXiv: 2508.14727). 4 442 Java-задачи через SonarQube: «no direct correlation between a model’s functional performance (Pass@1) and the overall quality» — корректность и качество эмпирически развязаны. И механистическая фраза, на которой держится вся статья: «at inference time the accumulating complexity of a given method is not tracked» — накапливающуюся сложность модель на инференсе не отслеживает.
“I Would Have Written My Code Differently” (docId a3c8c4de). Название говорит само: новички систематически не понимают LLM-код.
Challenges and Paths Towards AI for Software Engineering (docId 5a9cd8e8). «LLM written solutions are often more complex than human-written counterparts… LLMs prefer to repeat existing code instead of making use of abstractions» — модель предпочитает повторить код, а не вынести абстракцию.
Hierarchical Evaluation of Software Design Capabilities (docId 6dbd9a9d). На задачах про связность N классов модели делают «cognitive shortcutting» — то есть полный граф взаимозависимостей не держит и сама модель.
Контраргументы (8 из 30+8). Atlassian, HULA (arXiv: 2501.11264): код их агента «comparable in readability to human-written code». Ряд работ (docId c3303dba, d9fa5b7c) — по статическим метрикам LLM-код даже лучше человеческого. Граница применимости: на уровне одиночного сниппета с хорошим промптом симптом слаб; он обостряется на уровне архитектуры и итеративной эволюции (см. блоки в §9). И важно: статические метрики ≠ человеческое понимание — Scalabrino проверил 121 метрику, ни одна сильно не коррелирует с пониманием (docId ca8da438).
Всё описанное выше — это ещё лучший случай: свежая сессия, чистый контекст, похожий на обучающие данные. В долгой работе становится хуже. И это доказанный и измеренный факт.
Первый контур дрейфа — внутри сессии. Контекст реальной работы — эклектика, то есть смешение разнородного: куски кода, обрывки обсуждений, документы разных стилей, результаты поиска. И главное — собственные прошлые ответы модели. Эклектика при этом заразна: подавая разнородный промпт на вход, мы сами провоцируем модель, притягиваем её к такому же разнородному ответу на выходе. Исследователи дали этому имя: загрязнение контекста. Модель «перечитывает» свои ответы и начинает опираться на них как на образцы для подражания — ошибки, случайные ходы и стилистические артефакты размножаются от реплики к реплике. Убеждения модели за одну долгую сессию тихо сдвигаются: в измерениях — на четверть, а у некоторых моделей и на половину позиций. И деградация начинается задолго до физического предела окна: в одном измеренном случае — на сорока тысячах токенов при окне в сто двадцать восемь тысяч.
Здесь нужна честность, и она интереснее простого «всё пропало». Когда мы целенаправленно искали опровержение этого механизма, корпус раскололся ровно пополам: двадцать одна работа за разгон деградации, двадцать одна — против. Половина исследований наблюдает не лавину, а выход на ограниченное равновесие: дрейф есть, но он стабилизируется и поддаётся контролю при хорошей гигиене контекста. Важно только понимать, что гигиена контекста — не то, что модель делает сама. Сама по себе она имеет тенденцию к дрейфу; равновесие достигается внешними инструментами и дисциплиной того, кто ведёт сессию. Значит, внутрисессионный дрейф — устойчивая тенденция модели, которую можно компенсировать извне.
Но есть второй контур, и вот у него равновесия не видно. Вспомните: у LLM нет записываемой постоянной памяти. А теперь посмотрите на большой проект, который разрабатывается с участием агентов. У системы «человек + LLM» постоянная память всё-таки есть — это сама кодовая база. Артефакт. Единственное место, куда результаты широких актов модели записываются насовсем.
И вот как работает этот контур. Модель проектирует архитектуру широким фронтом — без горлышка, без отпечатка. Результат, уже немного отклонившийся от человеческой нормы, фиксируется в коде. Следующая сессия начинается не с чистого листа — она читает этот код как данность, как образец, и надстраивает над ним. Дрейф не обнуляется между сессиями — он сохраняется в артефакте и становится фундаментом следующей итерации. Назад этот механизм не крутится — здесь почти буквально работает второй закон термодинамики: предоставленная самой себе, сложность только растёт, и чтобы вернуть её под контроль, нужно целенаправленно вложить энергию извне — провести рефакторинг. Сам по себе он не случается. Каждый оборот цикла фиксирует достигнутый уровень запутанности и строит поверх него.
Оговорюсь сразу: само различение двух контуров — авторская интерпретация расхождения в литературе. Работы, которые наблюдают равновесие, изучали многоходовые диалоги — первый контур, где дрейф компенсируется внешними инструментами. Работы, которые наблюдают монотонную деградацию, изучали итеративную эволюцию кода — второй контур, где подобных компенсаций пока не существует. Похоже, литература спорит сама с собой просто потому, что измеряет разные режимы. Прямого исследования, которое сравнило бы оба режима в одном эксперименте — на одних и тех же моделях, задачах и метриках, — мы в корпусе не нашли. Зато моё собственное прошлое это различение подтверждает: в более ранних проектах я не раз терял контроль именно так — в какой-то момент уже не мог построить в голове модель архитектуры кода, и каждая следующая итерация делала задачу только тяжелее. Сейчас я контролирую сложность другим способом — но об этом в следующей статье.
🔬 Доказательная база: дрейф внутри сессии (39 за / 6 против / 12 нейтрально)Тезис: самогенерируемый контекст ухудшает связность. Отдельная проверка на опровержение «разгона»: раскол 21/21/10.
Do LLMs Benefit From Their Own Words? — Huang et al. (arXiv: 2602.24287). Вводит термин «context pollution»: «models over-condition on their previous responses, introducing errors, hallucinations, or stylistic artifacts that propagate across turns» — наблюдается «even in GPT-5.2». Та же работа показывает и обратное: на заметной доле реплик удаление истории ассистента качеству не вредит — самогенерируемый контекст не всегда ядовит, иногда просто избыточен.
Accumulating Context Changes the Beliefs of Language Models — Geng et al. (arXiv: 2511.01805). «Belief profiles of models may silently change as context accumulates»: GPT-5 — сдвиг 54.7% убеждений за 10 раундов, Grok 4 — 27.2% после чтения противоположной позиции. Сдвиг переносится в выбор инструментов агентом.
Episodic-Semantic Memory Architecture — Milosevic (arXiv: 2605.17625). «Cognitive event horizon at approximately 40,000 tokens… well before the physical context limit (128,000 tokens)».
Контраргумент (главный по этому звену). Drift No More? Context Equilibria in Multi-Turn LLM Interactions — Dongre et al. (arXiv: 2510.07777): «stable, noise-limited equilibria rather than runaway degradation… a controllable equilibrium phenomenon rather than inevitable decay». Прямое опровержение сильной формы тезиса — поэтому в тексте он ослаблен до «управляемого риска».
Архитектурный уровень.
SlopCodeBench — Orlanski et al. (arXiv: 2603.24755). Агентский код в 2.2 раза многословнее эталона из 48 open-source-репозиториев; эрозия структуры растёт в 80% траекторий. Ключевая фраза: «human code stays flat while agent code deteriorates with each iteration» — человеческая база от итерации к итерации остаётся плоской по сложности, агентская деградирует с каждой. И: «prompt-side interventions shift the intercept but not the slope» — промптом сдвигается точка старта, но не наклон деградации.
EvoClaw — Deng et al. (arXiv: 2603.13428). «Responsibility Boundary Misplacement» — логика размещается на чужом уровне абстракции; качество падает с >80% на изолированных задачах до ≤38% при непрерывной эволюции системы.
Quantitative Analysis of Technical Debt in LLM Architectures — Slater (arXiv: 2512.04273). Вводит «Hallucinated Coupling» — связность, которой не должно существовать: система «runs correctly but violates fundamental separation of concerns». У Llama 3 — 80% архитектурных нарушений (нелегальные циклические зависимости). Важная деталь: у GPT-5.1 — 0%, то есть симптом зависит от модели и частично лечится RLHF — но механизм, который его порождает, никуда не девается.
Beyond the ‘Diff’: Agentic Entropy (docId 2b9c0670). Агенты «optimize for local correctness while drifting from global architectural intent» — мост от асимметрии к архитектуре, названный прямо.
Перечитайте фразу из SlopCodeBench: человеческий код от итерации к итерации остаётся плоским по сложности. Почему? Люди что, дисциплинированнее? Прилежнее? Каждый, кто видел живых программистов, знает, что нет.
Причина проще и глубже. У человека есть то, чего у модели нет: рост сложности вызывает у него боль. Он ощущает её почти физически.
Узкий предел человека — это не только слабость, которой мы посвятили начало статьи. Это ещё и встроенный регулятор. Когда система, с которой работает человек, подползает к границе его четырёх-пяти абстракций, он это чувствует как нарастающий дискомфорт: «голова пухнет», «я перестаю понимать, что тут происходит». И этот дискомфорт принуждает: упростить. Обобщить. Унифицировать. Вынести абстракцию. Отрефакторить. Человек делает это невольно — не потому что прочёл книгу о чистом коде, а потому что иначе физически не может продолжать думать. Узкое горлышко работает принудительным архиватором сложности. Вот почему человеческая кодовая база от итерации к итерации не тяжелеет: её держит в рамках эта самая боль.
У LLM регулятора нет. Её предел — высокий, мягкий и, главное, неощущаемый. Накапливающуюся сложность она не отслеживает — вот цитата из исследования: «at inference time the accumulating complexity of a given method is not tracked». Тяги к абстракции у неё нет: ей статистически проще повторить код, чем обобщить его. Дискомфорта нет ни на человеческом масштабе сложности — мы видели в §6, что человеческая мерка ей невидима, — ни на её собственном. Момент, когда сложность переваливает уже её предел, она тоже не замечает: исполнительного контроля над вниманием у неё нет, внимание просто тихо распыляется, и качество уходит без единого сигнала тревоги.
Рефакторинг в агентной разработке случается только по внешней команде. А команду должен дать тот, кто видит проблему.
И здесь система теряет последний предохранитель. Потому что тот, кто должен дать команду, — человек — увидеть проблему уже не может.
Слово «не может» здесь выбрано не для драматизма. Это самый проверенный факт во всей статье: когда мы прогоняли это звено через корпус, соотношение получилось сорок работ за и одна против. Причём сами авторы этих работ проверяли механизм жёстко, в контролируемых экспериментах: людей предупреждали, что ИИ часто ошибается. Прямо просили искать ошибки. Платили деньги за каждую найденную. Критические дефекты всё равно оставались ненайденными. Усилие и мотивация контролировались — значит, дело не в лени и не в самоуверенности. Когда сложность вывода переваливает за когнитивный предел проверяющего, проверка отказывает структурно.
Дальше механика разворачивается сама. Человек, который не может проверить, не перестаёт нажимать «approve» — он начинает нажимать его механически. В литературе для этого уже есть термин: human-in-the-loop превращается в «procedural placeholder» — формальную заглушку на месте контроля. Возникает разрыв между способностями системы и пониманием оператора, и он растёт: производительность с ассистентом улучшается, внутренняя модель происходящего у человека деградирует. А дальше петля: проверки проходят гладко, доверие растёт, вместе с доверием растут нагрузка и квоты, времени на проверку остаётся всё меньше — и проверки делаются ещё глаже. Продольные измерения показывают, как с ростом сложности задач и опоры на ИИ точность человека сползает с 95% к 48% — при этом его уверенность растёт. Уверенность и правота расходятся на десятки процентных пунктов.
И финальный штрих, ради которого всё это рассказано. Со стороны система выглядит отлично. Подмена компетентности ассистентом производит видимость стабильной компетентности — потеря понимания не видна ни самому человеку, ни наблюдателю. Сбой приходит не плавным спадом, который можно было бы заметить и остановить, а сменой режима: вчера всё работало, сегодня посыпалось, и реконструировать «где мы свернули не туда» уже некому.
Сложите два последних раздела. Модель не чувствует свой предел — у неё нет датчика. Человек не видит свой — точка потери понимания лежит за пределами того самого понимания. В системе «человек + LLM» нет ни одного компонента, который заметит момент, когда качество начало уходить. Узнают по последствиям.
🔬 Доказательная база: петля потери контроля (40 за / 1 против / 11 нейтрально)Ядро: «сложность превышает ёмкость -> проверка деградирует -> петля» — 40/1/11; «не может, а не не хочет» — 26/1/13.
Non-programmers Assessing AI-Generated Code — Virk, Liu (arXiv: 2508.06484). Решающий якорь: «The challenge is not simply a lack of technical knowledge… Nor can the failure be attributed to overconfidence: participants were warned that the AI frequently errs, were directly prompted to identify mistakes, and were monetarily incentivized to do so».
Position: Human-Centric AI Requires a Minimum Viable Level of Human Understanding — Lin et al. (arXiv: 2602.00854). Вводит Capability-Comprehension Gap и Cognitive Integrity Threshold: ниже порога «oversight becomes nominal… the human-in-the-loop becomes a procedural placeholder». И механизм невидимости: «Substitution masks cognitive drift… produces the appearance of stable competence… Regime change rather than gradual decline».
Agency and Architectural Limits — Sarma (arXiv: 2602.23239). Петля названа явно («Convergence Crisis»): «Degradation… operates as a self-reinforcing feedback loop… organizations are incentivized to increase quotas… accelerating the degradation».
AI, Metacognition, and the Verification Bottleneck — Huemmer et al. (arXiv: 2601.17055). Продольно: точность 95.2% -> 81.0% -> 66.7% -> 47.8% с ростом сложности и опоры на ИИ; разрыв «уверенность–результат» до 34.6 п.п.
Human Supervision as an Information Bottleneck — Rodriguez Dominguez (arXiv: 2602.23446). Формальный результат: недостаточный человеческий канал надзора даёт «strictly positive excess-risk floor», который не убирается масштабом модели.
Граница (искали опровержение отдельно: 27 за / 10 против / 5 нейтрально — но «за» это в основном предложения, «против» — эмпирика). Confirmation bias: A challenge for scalable oversight — Recchia et al. (arXiv: 2507.19486): «no overall advantage for the tested protocols… participants become more confident in the system’s answers… even when those answers are incorrect». Эмпирика комплементарности скромна: +0.4 п.п. против ИИ в одиночку (docId 7d228f8b); показ ИИ-объяснений и уверенности ведёт к over-reliance (docId b29ad4bd). Инструменты надзора — частичная и пока ненадёжная митигация.
Всё это звучало бы как теоретическая страшилка, если бы не наблюдалось ежедневно — у вас, у меня, в любой команде, которая всерьёз работает с агентами.
Корректный, но непонятный код — мы уже знаем, что корректность и понимаемость статистически развязаны, поэтому «тесты зелёные» ничего не говорит о том, сможет ли команда жить с этим кодом дальше. Архитектура, которая ощутимо тяжелеет с каждой итерацией агента. Кодовые базы, для которых исследователи придумали точный диагноз: технически здоровые, но когнитивно непрозрачные для собственной команды. У этого состояния есть имя — долг понимания, comprehension debt, — и есть ранние симптомы: сопротивление изменениям, неожиданные результаты правок, медленный онбординг новичков. Заметьте: долг живёт не в коде. Он живёт в головах команды — точнее, в том, чего в этих головах больше нет.
И зеркальный симптом, с другой стороны канала: ревью, на котором человек одобрил то, чего на самом деле не понял. Он проверил добросовестно — по кусочкам в четыре-пять сущностей, как умеет. И пропустил ошибку во взаимосвязи, которую не удержал. «LLM написала, человек одобрил, никто не понял» — это не анекдот, это рабочий режим индустрии прямо сейчас.
А документы? Отчёты, которые «содержат всё», техзадания на сорок страниц, сгенерированная документация, которую никто не дочитал? Тот же канал, другая поверхность. Карта, расплющенная в строку, — во всех её проявлениях.
🔬 Доказательная база: долг понимания (13 за / 0 против / 36 нейтрально)Следствие: «непостижимое оценивается как неподдерживаемое». Единственное звено цепочки без единого противоречия в корпусе.
Comprehension Debt in GenAI-Assisted Software Engineering Projects — Ahmad (arXiv: 2604.13277). 621 дневник, 207 участников: «a codebase may be technically sound while being cognitively opaque to its developers… CD resides in the collective cognition of development teams rather than in the codebase itself».
From Technical Debt to Cognitive and Intent Debt (docId 3aeb4260). Диагностические сигналы: сопротивление изменениям, неожиданные результаты, медленный онбординг, потеря транзактивной памяти команды.
Needle in the Repo (docId b7e23848). «Maintainability should be treated as a first-class evaluation target rather than assumed to follow from test-passing behavior».
Если симптомы настолько повсеместны — почему о причине почти не говорят?
Потому что её не видят инструменты, которыми индустрия меряет прогресс. Бенчмарки меряют корректность: pass@k, доля решённых задач. А корректность, как мы выяснили, с понимаемостью не коррелирует. Метрики показывают «всё хорошо» — и формально не врут. Структурный распад просто лежит вне их поля зрения: авторы SlopCodeBench формулируют это прямо — функциональные бенчмарки «не видят структурную деградацию». Сто двадцать одна классическая метрика сложности кода была проверена на корреляцию с человеческим пониманием — ни одна не показала сильной связи. Мы измеряем то, что легко измерить, и не измеряем то, что важно.
А когда проблему всё-таки замечают, причину ищут привычно — в данных и обучении. «Плохо обучили — дообучим, почистим корпус». Это доминирующее объяснение, и в нём есть правда: систематический обзор ста четырнадцати исследований показывает, что многие дефекты кода — действительно следствия неухоженных обучающих данных. Но смотрите, что это объяснение объясняет, а что нет. Оно объясняет, почему вывод модели отклоняется от человеческой нормы. Оно не объясняет, почему сама норма — понятность для существа с фокусом в четыре-пять последовательно сменяемых абстракций — структурно невидима для модели как цель. Идеально чистые данные сделают мимикрию точнее. Они не установят внутрь модели человеческое горлышко и не дадут ей почувствовать, где оно у читателя. Данные — про отклонение от нормы. Асимметрия — про то, почему норма не является для модели нормой.
🔬 Доказательная база: конкурирующее объяснение (10 за / 6 против / 33 нейтрально)«Причина в данных и целях обучения, не в когнитивном несоответствии» — доминирующий взгляд, но не закрывающий вопрос.
Bridging Generation and Training — He et al. (arXiv: 2605.05267). Систематический обзор 114 исследований, сильнейшая формулировка конкурирующего взгляда: «these issues largely manifest as downstream symptoms of data issues… direct consequences of inadequately curated training data».
Verifier Warnings Do Not Improve Comprehensibility Prediction (docId ca8da438). Scalabrino: 121 метрика, ни одна сильно не коррелирует с человеческим пониманием кода.
Rethinking Code Complexity Through the Lens of LLMs (docId e1bd47a4). После контроля длины «classical metrics exhibit no consistent correlation» — классические метрики не схватывают то, что чувствует читатель.
Хорошо. Причина названа. Что с ней делать?
Сначала — чего делать не стоит, потому что два очевидных хода ведут в тупик.
Первый очевидный ход: подождать окно побольше. Не сработает. Большее окно отодвигает границу «влезает / не влезает», но не создаёт ни накопления, ни регулятора. Деградация, как мы видели, наступает на десятках тысяч токенов при окне в сотни тысяч — проблема не упирается в размер окна уже сейчас. Второй очевидный ход: почистить данные, дообучить. Тоже нет: чистые данные укрепляют привычку мимикрии, но не устанавливают ограничитель. Норма останется внешней меркой, которую модель не видит.
Третий ход кажется самым логичным: раз модель мыслит «не по-человечески» — заставить её мыслить по-человечески. Ограничить до наших четырёх-пяти абстракций за шаг. Этот путь стоит отсечь с особой тщательностью, потому что он соблазнителен.
Снаружи — промптом, форматом вывода, внешней надстройкой — этого не сделать: ширина внимания зашита внутри самой модели. Внимание — непрерывный бюджет, размазанный по всему окну, и слотов, которые можно было бы «обрезать до пяти», в нём нет: жёсткий лимит абстракций чужероден этой архитектуре так же, как человеку чужероден одновременный охват пятидесяти сущностей. Заложить такой лимит можно только в саму архитектуру — на этапе проектирования и обучения, по сути создав другую модель. Но допустим даже, что это удалось. Вернитесь к рисунку 1 и представьте, что это означает: отрезать весь фиолетовый купол правее зелёного пика. Что остаётся? Область, где LLM выдаёт 0.8 против человеческой единицы. Мы получим дорогую, медленную, слегка недотягивающую имитацию человека — собственноручно стерилизовав единственное, ради чего всё затевалось: способность видеть систему из десятков связанных сущностей целиком и сразу.
Вывод неудобный: когнитивная асимметрия никуда не денется. Она не дефект, который чинят, — она конструктивное свойство двух разных архитектур. Решение — не в её устранении.
Если выравнивание вниз — тупик, остаётся другое: достроить каждой стороне то, чего ей не хватает, и согласовать их на стыке. Два направления, и оба — про компенсацию, а не про ограничение.
Первое: дать LLM аналог того, что у человека встроено. Датчик боли. Инструменты самоконтроля, которые отслеживают накапливающуюся сложность — ту самую, которую сейчас «не отслеживает никто», — сигналят о распылении внимания и принуждают модель делать то, что человек делает невольно: сжимать, обобщать, выносить абстракции, не дожидаясь внешней команды. Подчеркну разницу: не ограничитель ширины, а регулятор сложности. Человеку регулятор достался бесплатно, в комплекте с узким горлышком. Модели его придётся строить снаружи.
Второе: мост понимания между двумя ширинами. Модель мыслит широко — и пусть мыслит: это её сила, мы только что отказались её резать. Но на стыке с человеком её широкая модель должна проецироваться в человеческую ширину. Порциями по четыре-пять абстракций. Маршрутом — как в учебнике, где порядок и есть содержание. Деревом, которое разворачивается по запросу читателя, а не вываливается целиком. А человеческие правки должны собираться обратно — из узких актов в широкую модель. Каждый работает в своей природной ширине; согласование живёт в канале между ними.
Как именно устроены такие инструменты — отдельное исследование, которое сейчас идёт. Это тема следующей статьи. Здесь важно было другое: правильно поставить проблему. Потому что пока мы называем её «низким качеством», мы будем чинить не то.
Напоследок — про метод, потому что он сам по себе иллюстрирует тему.
Эта статья началась с гипотезы, целиком собранной в одной голове, — то есть прошедшей через то самое горлышко в четыре-пять абстракций. Каждое её звено затем прогонялось через научный корпус OpenArx: режим find_evidence, независимая оценка каждого фрагмента литературы как подтверждающего, противоречащего или нейтрального — и отдельные, целенаправленные запросы на поиск опровержений. Не «найти статьи, которые согласны», а «измерить, насколько устоявшимся является каждое утверждение, и вытащить контраргументы на свет».
Два звена изначально были чистыми авторскими гипотезами — и проверка обошлась с ними по-разному. Гипотеза о петле потери контроля подтвердилась почти единогласно: сорок работ за, одна против, включая готовые термины, которые литература уже придумала для описания именно этого механизма. А вот гипотеза о неизбежном разгоне дрейфа раскололась ровно пополам — двадцать одна работа на двадцать одну. Раскол разрешился, когда стало видно, что внутри гипотезы сшиты два разных вопроса. Дрейфует ли модель сама по себе, если ничего не делать? Да, дрейфует. Удаётся ли сдержать дрейф внешними инструментами? Да, иногда удаётся. В финальном тексте гипотеза живёт в этой уточнённой форме — тенденция модели плюс возможность внешней компенсации — вместе с авторским различением двух контуров. Один и тот же метод усилил одно звено и скорректировал другое. В этом и разница между подбором подтверждений и проверкой.
Все соотношения, работы и цитаты из блоков выше — оттуда. Корпус живой и открытый: openarx.ai.
И в этом, если присмотреться, — маленькая иллюстрация всей статьи. Гипотеза родилась в одной голове и прошла через узкое горлышко в четыре-пять абстракций. Проверку — обход десятков работ, оценку каждой, поиск опровержений — взял на себя агент, опираясь на корпус. Человек задал направление и принял решения, агент сделал объём. Это ровно тот режим «человек + агент + знание», ради которого OpenArx и строится: не «ИИ напишет за вас статью», а другой способ работать с тем, что уже накоплено. Что такое OpenArx и зачем оно — я разбирал отдельно: подробная статья на Habr. Если коротко — открытая инфраструктура научного знания для AI-агентов; корпус, через который проверялась эта статья, доступен и вам: openarx.ai.
Когнитивная асимметрия — не фигура речи, а конструктивный факт: человек и LLM — два по-разному устроенных мыслящих механизма, и различие проходит по самым основаниям — где живёт память, какой ширины акт мышления, что ощущается, а что нет. Стоит это принять, и разрозненные странности совместной работы складываются в одну картину: чуждость формально корректных артефактов, тихое накопление сложности, бессилие добросовестной проверки — это следствия одного несовпадения, а не набор отдельных недоработок.
Отсюда три вывода. Асимметрия не рассосётся с очередным релизом моделей — она встроена в архитектуры обеих сторон, и стратегия «подождать модель получше» против неё не работает. Устранить её, подогнав одну сторону под другую, нельзя без потери смысла самой затеи. А значит, единственная продуктивная постановка задачи — не воевать с асимметрией, а оркестровать её: пусть каждая сторона мыслит так, как умеет лучше всего, а согласование возьмут на себя инструменты на стыке.
Мы привыкли спорить, кто умнее — человек или LLM. Вопрос поставлен неверно: их интеллекты устроены по-разному, и главные потери сегодня происходят не внутри голов — ни биологических, ни кремниевых, — а в канале между ними. Канал и предстоит строить.