Главный страх топ-менеджера при внедрении ИИ-ассистентов звучит так: «Мы заплатим за цифровизацию, а получим дорогую игрушку, которая ломает наш рабочий процесс». Второй страх: «Без нас ИИ не справится, а с нами — зачем он тогда нужен?».
Языковые модели натренированы на открытом коде и учебных идеалах, которые далеки от продуктовой реальности — и эти знания часто оказываются несовместимы с архитектурой, которая у вас живёт и работает годами. Но мы в Uplab нашли решение, как этого избежать, и это решение не сложнее, чем скормить агенту 50 страниц Wiki. В этой статье подробно рассказываем, как за 30 минут научить ИИ-агента говорить на архитектурном языке вашего проекта без ручного копирования документации в каждый промпт. А ещё покажем экономику подхода: когда ИИ перестает быть непредсказуемой игрушкой и превращается в инструмент, который окупается в первые месяцы применения.
Почему ИИ знает не каждый стек
У каждой компании есть своя история: внутренние фреймворки, написанные пять-десять лет назад; legacy-системы (устаревшие решения и специфичные схемы базы данных), которые работают и приносят деньги; нестандартные архитектурные решения, принятые в то время, просто потому, что тогда ещё не существовало стандартизованного подхода. Кто-то сидит на самописном ORM (программа-«переводчик» между кодом программы и базой данных), кто-то — на фреймворке, о котором три человека знают за пределами офиса. И всё это тоже нормально. Потому что бизнес подчиняется не моде, а решениям, которые выполняют свою задачу.
Но вот наступил момент, когда ИИ-ассистенты стали реальным инструментом для сотен тысяч компаний. И первое, что обнаруживается: они отлично справляются, особенно на старте, с React, Django, Spring Boot, но при этом могут совершенно не понять конкретный проект. Модель обучена на публичных репозиториях, документации популярных библиотек и Stack Overflow. Она знает, как устроен Express.js, но понятия не имеет, как организованы контроллеры, модели и очереди.
Реальность сегодняшнего дня года проста: компании, которые смогут подключить ИИ к своей разработке, получат ощутимое преимущество:
- сокращение времени на рутину;
- ускорение онбординга;
- снижение стоимости каждой фичи.
Но для этого агент должен понимать конкретный проект, а не среднестатистический. А это значит, что его нужно дополнительно дообучить, «познакомив» с основными документами.
Путь от «скопировать wiki в промпт» до системного решения
Идея использовать документацию в контексте ИИ-агента не нова и уже признана многими разработчиками перспективной. Ещё до появления специализированных директорий для инструкций была простая мысль: взять внутреннюю wiki, собранную за годы, и подсунуть её агенту. Но потребовалось немало экспериментов, чтобы найти работающую реализацию. О том, как мы прошли этот путь в Uplab, рассказывает ведущий инженер компании Владислав Беспалов.
Попытка первая: ручное подключение по ситуации
"Сначала я пробовал вручную прикладывать нужные статьи к запросу. Например, так: работаем с бизнес-сущностью, нужно добавить новое поле — подключаем инструкцию по тому, как устроена работа с моделью в системе. Работаем с очередями — прикладываем страницу из документации про очереди.
Проблема очевидна: это не масштабируется. Ты должен заранее знать, что понадобится. А задача часто затрагивает три-четыре подсистемы одновременно, и учесть всё просто невозможно. Как результат: агент получает неполную картину, часть вещей додумывает сам и делает неправильно".
Попытка вторая: подключить вообще всё
Логичный следующий шаг — загрузить в контекст всю документацию. Десятки страниц wiki, описания API, архитектурные заметки. Казалось бы, чем больше контекста, тем лучше.
На практике это привело к двум проблемам:
-
Лимит контекстного окна. При большом объёме подключённых инструкций на одну простую задачу контекст забивался до предела. Больше одной итерации изменений не выходило, потому что окно кончалось. Для моделей с большим окном (200K+ токенов) проблема менее острая, но она не исчезает: каждый перезапуск агента — это повторная загрузка всего массива.
-
Деградация качества. Парадоксально, но чем больше информации вы скармливаете модели, тем хуже она может работать. Вместо того чтобы сфокусироваться на нужных правилах, агент начинает путаться в контексте, смешивать концепции из разных слоёв, подменять реальное поведение проекта шаблонным. Проще говоря, с обширным контекстом модели галлюцинирует чаще.
Комментарии к статье
Комментарии: 0