Управление контекстом и структурой: фундаментальные механизмы зрелой AI-разработки
О переходе от случайных удачных генераций кода к устойчивой работе с моделями
43 открытий682 показов
Привет! Меня зовут Сергей Востриков, я руковожу направлением Маркет и интеграций в Битрикс. Моя команда развивает решения для разработчиков тиражных решений и индивидуальных кастомизаций. Сегодня я хочу рассказать о сдвиге, который уже произошёл внутри разработки — о переходе от случайных удачных генераций кода к устойчивой работе с моделями как с полноправными участниками процесса.
AI сегодня умеют куда больше, чем просто выдавать куски кода. Они планируют действия, разбивают задачу на шаги, держат в голове текущий контекст и предлагают рабочие архитектурные решения. По некоторым навыкам это уже разработчик уровня middle-plus: хорошо знает библиотеки, понимает паттерны и уверенно пишет рабочий функционал.
Из-за этого кажется, что AI можно использовать как универсальный инструмент. Написал запрос — получил приложение. На практике всё работает иначе. AI-агент видит только то, что попало в его окно внимания, и опирается на переданный контекст. Он не читает проект целиком и не «помнит» всё, что происходило раньше, поэтому качество результата напрямую зависит от формулировки задачи и структуры входных данных.
При этом AI-агент закрывает сразу несколько ролей. Он пишет код, проверяет ошибки, комментирует архитектуру, обновляет документацию. По сути, это коллега, который подключён к проекту и готов быстро выполнить часть работы. Но даже ему нужны правила: спецификации, чёткие требования и понятный процесс. Если их нет — получается разовый удачный ответ, который не повторяется и не масштабируется.
Поэтому главная задача сейчас — научиться работать с AI как с частью команды.
Вайбкодинг или «детская» разработка
Вайбкодинг напоминает самый ранний опыт работы с конструктором, когда ты ещё ребёнок. В детстве мы собирали модели по интуиции, не думая о схеме и прочности. Главное — видеть результат здесь и сейчас. Вайбкодинг работает по тому же принципу. Формулируешь задачу одной фразой и быстро получаешь работающий фрагмент — игру, форму, обработчик данных или небольшой сервис. Модели уверенно закрывают технические пробелы, подбирают библиотеки, расставляют файлы и связывают их между собой. Достаточно объяснить, что должно происходить на экране и как реагировать на действия пользователя.
Такой режим обеспечивает ощутимую скорость. Можно за вечер собрать MVP, проверить гипотезу, показать прототип команде или клиенту. В задачах с коротким циклом такой подход работает особенно хорошо.
Но этот подход имеет ряд естественных ограничений — и именно они делают вайбкодинг «детским» уровнем разработки.
Во-первых, результат не формирует управляемую структуру. Код получается как готовая игрушка: он работает в момент создания, но не раскрывает внутреннюю логику.
Во-вторых, изменения превращаются в случайный процесс. Любая правка затрагивает соседние части, а повторная генерация изменяет ранее рабочий фрагмент.
В-третьих, проект не удерживает форму со временем. У модели нет долговременной памяти, поэтому эволюция решения останавливается сразу после первых успехов.
И, наконец, внутренняя часть остаётся непрозрачной. Структуру сложно прочитать, документация не появляется, а поведение описано только в самом промпте.
AI-ассистированная или «взрослая» разработка
Когда работа выходит за пределы разовых прототипов, AI-агенты требуют другой организации. Им нужна фиксированная логика проекта, понятные правила и стабильная опора на спецификации. В этом режиме AI действует как участник команды: пишет код осмысленно, сверяет результат, учитывает ограничения и поддерживает структуру.
Чтобы такой процесс держался, нужна база — набор практик, на которых стоит взрослая разработка с AI-агентами. Далее рассмотрим три фундаментальных опоры, которые формируют этот режим работы.
Столп №1. SDD — разработка через спецификации
Когда AI-агент работает в проекте не один раз, а системно, ему необходима опора. Ему нужно понимать, какие элементы уже существуют, что требуется добавить, какие связи нельзя нарушать и какое поведение считается корректным. Такое основание создаётся заранее и становится центром всего процесса. На этом и строится подход SDD (Specification-Driven Development) — разработка, движущаяся от спецификаций к коду.
1. Техническое задание как точка входа
Системная работа начинается с фиксации требований. Одного промпта недостаточно, поэтому сначала формируется короткое ТЗ — что должно происходить, какие данные участвуют в сценариях, как выглядит интерфейс и какие ограничения важны. Такой документ задаёт рамку будущего решения и снижает объём домысливания для модели.
2. Формирование tech_spec.md
Следующий шаг — генерация основного файла проекта. В tech_spec.md (название файлы вы можете придумать сами, это лишь пример) описывается структура приложения, связи между модулями, формат данных, API и список допущений. Этот файл становится опорой для всех последующих действий. Он не остаётся статичным: по мере развития проекта в него добавляются изменения, чтобы AI-агент работал в актуальном контексте.
3. Код как производный слой
Только после фиксации структуры генерируется код. AI-агент опирается на спецификацию и не принимает решения «вслепую». Это даёт более-менее предсказуемый результат. При необходимости код можно собрать повторно, поскольку AI-агент будет опираться на ту же спецификацию, что и раньше.
Столп №2. Контекст и декомпозиция
Модель работает внутри ограниченного окна внимания: она использует только те данные, которые получилa в текущем запросе. Поэтому проект удерживается не объёмом переданной информации, а правильной последовательностью шагов. Чтобы работа шла предсказуемо, задача раскладывается на части, и каждая часть сопровождается отдельным набором вводных.
1. Дробление задачи на модули
Проект разбивается на небольшие фрагменты — отдельные компоненты, сценарии или функции. Такой формат снижает нагрузку на AI-агента и позволяет ему точнее интерпретировать требования.
2. Контекст для каждого шага
Перед каждым действием AI-агент получает только тот объём информации, который относится к текущему фрагменту. Вводные обновляются по мере движения, чтобы агент не терял опорные элементы.
3. Поддержание документации
Все изменения надо отражать в спецификациях и вспомогательных файлах. Документация должна развиваться вместе с задачей и служить дополнительным источником контекста.
4. Связь со структурой проекта
Каждый новый шаг сверяется со спецификацией: AI-агент должен действовать в рамках зафиксированной архитектуры и корректно расширять функционал. Это устраняет эффект случайных решений и удерживает проект в стабильном состоянии.
Согласитесь, это всё очень напоминает нормальную работу с коллегами по проекту? Не переусложнять задачу, объяснять важные нюансы подробно, фиксировать всё в технической документации, верно?
Столп №3. Feedback loop: код, который контролирует код
Когда AI-агент участвует в развитии проекта, ему нужно не только генерировать файлы, но и проверять собственные решения. Такой режим формирует обратную связь, в которой каждый шаг проходит через последовательный цикл действий. AI создаёт код, пишет тесты, обновляет документацию, запускает получившийся результат и анализирует поведение. Если возникают ошибки, они исправляются в том же цикле. Процесс повторяется до тех пор, пока решение не придёт в устойчивое состояние.
1. Генерация и тестирование в одном контуре
AI-агент пишет функционал и сразу формирует проверочные сценарии. Тесты становятся опорой: они фиксируют ожидаемое поведение и позволяют отслеживать изменения при дальнейшей работе.
2. Автоматический запуск и анализ
После генерации запускается выполнение тестов. Ошибки и некорректные состояния фиксируются, и AI-агент получает возможность сразу их разобрать.
3. Исправление и уточнение поведения
Иногда тестов мало и требуется протестировать полноценный функционал. Тогда AI-агент самостоятельно запускает код на выполнение, разбирает логи и корректирует код по фактическим результатам. Исправления отражаются в спецификации, чтобы обновлённая логика стала частью общей структуры проекта. Это позволяет двигаться дальше, отталкиваясь от актуальной версии, не теряя связи между кодом, тестами и описанием поведения.
4. Контроль целостности решения
Такой цикл создаёт механизмы самопроверки. Код развивается поступательно, без случайных отклонений и дрейфа структуры. AI-агент работает в одном контуре с проверками, поэтому качество не держится на одиночных успешных генерациях, а закрепляется в процессе.
AI-агент — не просто генератор кода
Не всегда очевидна разница между понятиями “AI-модель” и “AI-агент”. Фактически, разница в том, что AI-агент - это самостоятельно действующая сущность, которая использует AI-модель (или даже несколько разных) для рассуждений, принятия решений и генерации ответов на вопросы. Но помимо рассуждений, AI-агент умеет использовать инструменты для выполнения каких-то действий, потому что работа над проектом требует способности работать с файлами, запускать код, анализировать результат и поддерживать структуру на каждом шаге.
AI-агент работает в окружении, близком к рабочей среде разработчика. Он получает доступ к файловой системе проекта, читает код отдельных модулей, сравнивает версии файлов, создаёт новые директории, правит существующий код и т.д.. При необходимости запускает приложения в тестовом режиме, собирает вывод консоли, анализирует логи и отслеживает расхождения между ожидаемым и фактическим поведением.
В процессе решения задач агент использует готовые инструменты: MCP-серверы, CLI-утилиты и другой вспомогательный функционал разработчика, которые доступны в среде. Он способен формировать запросы к внешним сервисам, подбирать правильные параметры, интерпретировать ответы и использовать результаты в последующих шагах.
Техническая цепочка работы строится последовательно. Агент принимает постановку, извлекает контекст из спецификаций, корректирует проектную структуру, пишет код, добавляет проверки и запускает получившийся результат. Если возникает ошибка, он фиксирует место сбоя, сравнивает текущее состояние с описанным в техспеке, корректирует фрагмент и повторно выполняет сценарий. Такой цикл позволяет двигаться поступательно и не терять связь между архитектурой и реализацией.
Агент выполняет рутинную инженерную работу, а человек делает ревью, принимает архитектурные решения и отвечает за итоговое состояние системы.
Почему важно вырасти из вайбкодинга
1. Скорость даёт ложное чувство достаточности
Первый опыт с моделями создаёт ощущение, что быстрых генераций хватит на весь проект. Вайбкодинг действительно даёт быстрый эффект: приложение собирается сразу, и кажется, что дальнейшая работа пойдёт тем же темпом. На практике этот режим ограничивается размером задачи. Как только появляются зависимости, дополнительные файлы и необходимость поддерживать логику, одноразовые генерации перестают держать проект в стабильном состоянии.
2. Рынок уже перешёл к более зрелой модели разработки
В крупных решениях уже заметную часть кода генерируют агенты. Есть жизнеспособные проекты, где весь код целиком был сгенерирован AI-агентами. Такие подходы перестали быть экспериментами — это текущая инженерная практика, которую компании используют в продакшене.
3. Работа с моделями требует процесса, а не набора удачных промптов
AI-агенты способны выполнять большой объём действий, однако им нужны правила: спецификации, контекст и последовательность шагов. Без этого решение рассыпается. Когда эти элементы собраны, AI работает как член команды — поддерживает структуру проекта, анализирует поведение, удерживает логику и помогает двигаться без резких просадок в качестве. Акцент в разработке смещается в сторону планирования и подготовки знаний, и правильного цикла тестирования.
Наш опыт
Я не могу рассказывать о том, как AI используется в разработке самого Битрикс24, но с удовольствием поделюсь результатами команд, занятых развитием наших инструментов разработки (SDK, UI Kit, прочих boilerplates) и наших собственных интеграций, которые мы не включаем в состав продукта по умолчанию, а размещаем в качестве решений в нашем Маркетплейс.
Могу сказать, что с августа практически на 100% релизы нашего официального B24PHPSDK состоят из кода, сгенерированного AI-агентами. Как оказалось, SDK уже был готов к этому за счет того самого Feedback loop, изначально заложенного в проект библиотеки. Там уже была построенная система юнит-текстов и интеграционных тестов, которая позволяет не разваливать существующий функционал при обновлениях. Также существовала техническая спецификация для контрибьюторов. Всё, что нам потребовалось — это слегка дополнить спецификации для AI-агента, чтобы он глубже «понимал» архитектуру библиотеки.
Те же принципы мы стали изначально закладывать в SDK для Python, чтобы в дальнейшем оперативно наращивать покрытие методов REST API с помощью AI-агентов. Человек закладывает архитектуру, ИИ-агенты быстро наращивают «мясо» вокруг этого.
Для команды, которая занимается разработкой различного рода интеграций в виде приложений для нашего Маркетплейса, включение AI-агентов потребовало более серьезных изменений.
Мы начали с того, что пересмотрели архитектуру и даже технологический стек, чтобы сделать их более удобными для дальнейшей работы с AI-агентами. Это заняло довольно много времени само по себе, поскольку в процессе мы проводили эксперименты с генерацией кода приложений. Проектирование системных требований и архитектуры мы тоже делали с участием AI в качестве собеседника и консультанта.
В итоге мы пришли к некоторому внутреннему шаблону приложения, готовому к дальнейшей разработке с помощью AI-агентов. И на базе этого уже разработали очередное приложение, которое готовим сейчас к публикации в Маркетплейс. На секундочку, 100% кода было сгенерировано AI-агентом. Все новые приложения мы планируем создавать тем же образом, чтобы повысить эффективность команды. Разработчики становятся тимлидами, которые курируют разработку проекта, помогают AI-агентам оставаться в нужным рамках и контролируют результат.
Получив, таким образом, proof of concept, мы решили помочь всем остальным разработчикам, которые занимаются созданием индивидуальных и тиражных решений на REST API Битрикс24.
Теперь вы тоже можете начать разработку с помощью AI-агентов используя готовый стартер https://github.com/bitrix-tools/b24-ai-starter.
Он представляет собой универсальную основу с готовым фронтом на официальном UI Kit, и тремя вариантами бэка на PHP, Python и NodeJS. А кроме этого, он включает в себя «базу знаний» в виде набора инструкций для AI-агентов, которые помогут модели лучше понять особенности реализации проекта, познакомят с особенностями Битрикс24 (как регистрировать встройки, как добавлять своего CRM-робота и т.д.).
Мы уже протестировали этот стартер в рамках AI-хакатона, участники которого должны были создать прототип приложения не занимаясь «ручным» программированием, а генерируя код с помощью AI-агента. По результатам мероприятия мы улучшили стартер и теперь будем развивать его вместе с коммьюнити.
В заключении могу только сказать, что реальность программирования изменилась. AI-ассистированная разработка всё чаще становится частью наших рабочих процессов. И те из нас, кто раньше остальных начнут пользоваться этими преимуществами, очевидно, сделают свою работу более эффективной в сравнении с конкурентами.
43 открытий682 показов



