Обновить

Как мы в ZeBrains перешли на агентную разработку и что из этого вышло

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6.3K
Всего голосов 7: ↑4 и ↓3+4
Комментарии6

Комментарии 6

Клиент поставил жёсткий порог: делаем только средствами ИИ, срок месяц, в команде один разработчик. Без дизайнера, без аналитика, без DevOps.

Простите, а почему клиент ставит вам условия, как именно вы должны делать его проект? Я понимаю обсуждения в стиле "Проект надо сделать за месяц, денег готов дать столько то". Я могу понять еще пожелания в стиле "Проект надо написать на Java на стеке Spring Boot", потому что у него все остальные решения на этом крутятся.

Но вот это вот требование "Делайте на ИИ" по сути эквивалентно "Делайте в Jetbrains idea и нигде больше". Зачем соглашаться работать с идиотом? Неужели настолько хорошие деньги предложил? Как вообще выглядели переговоры и аргументация?

Фактически, проект был оценён в 3 месяца с учётом 2 разработчиков (бек + фронт), DevOps, тестировщик, ПМ и т.д. Что заказчика не устроило. И мы предложили ему вариант с тем, чтобы проект сделать полностью с помощью ИИ ради экономии

Задача: автоматически сверять промоматериалы фармацевтического клиента с содержимым сайтов. Проверять, не перевирают ли факты, корректно ли написан текст. На входе расплывчатое ТЗ в одном docx. На выходе микросервисная система из пяти сервисов с асинхронной очередью.

Когда-то, до генеративного ИИ, людей разводили на хайпе микросервисов. Что это за клиент, требующий сделать проект за месяц, только на ИИ:

Клиент поставил жёсткий порог: делаем только средствами ИИ, срок месяц, в команде один разработчик. Без дизайнера, без аналитика, без DevOps.

Которому по итогу вы впихнули систему из 5 сервисов с асинхронной очередью. У него точно такая нагрузка, которая требует так раскидывать проект на столько микросервисов? Кстати, заметно, что написан проект с помощью ИИ - они такое любят генерировать.

Каждый сервис отвечает за свой скоуп взаимодействия, это не микро-сервисы в обычном понимании, это отдельные “агенты” выполняющие свой скоуп задач. Один сервис обрабатывает большие многостраничные PDF, вытаскивая оттуда изображения, нарезая на чанки, прогоняет каждый через VLM, склеивает и сохраняет их в базу. классическая сессия такого сервиса занимает примерно 2-3 часа, т.к. материалов много, постоянно обновляются.

Другой сервис, занимается парсингом страниц сайтов, выстраивая полную карту из разных источников (sitemap, ссылки из самого html, поисковые системы), и ищет на этих страницах материалы. Одно из требований - работа с SPA сайтами, которые необходимо рендерить перед парсингом. Работает почти как поисковый робот.

Третий сервис занимается сопоставлением и сравнением текста из материалов и текста с страниц, огромное количество запросов к ИИ

Остальные 2 сервиса - бек и фронт.

Так что да, разбиение на отдельные сервисы и система “задач”, в разрезе этого проекта была критична. Особенно при условии, что процесс выполнения задач в каждом сервисе должна логироваться в эту задачу, Останавливаться, ретраиться и при этом быть экономной в плане “съедания” токенов.

Предвкушая вопрос о том, “Почему бы просто не сравнивать материалы и текст сайта через VLM лоб-в-лоб”, ответ прост, ни одна из VLM при тестах не выдержала тот объём информации, который приходится сверять, много глюков, а самое главное - это дорого по токенам, и результат не предсказуем. Плюс есть большая загвоздка этой системы. В одном PDF файле в среднем 60 страниц, иногда доходит до 100. И все эти страницы находятся под одним “кодом”. И когда мы получаем 60 страниц материалов, и 60 страниц сайта с одним “кодом”, система должна сопоставить их, и найти какая странциа материала к какой странице сайта относится, исключительно по тексту. Не говоря уже о том, что страниц сайта с одним кодом, может быть больше страниц материала с таким кодом, и наоборот

Игнорирование инструкций, лишний переусложненный код... Кто же это был, назовите имя модели. Попробую в угадайку - gpt <= 5.3 или клод <= 4.5 ?

В большинстве случаев это зависит не от модели, а от её умения работать с тулзами, а конкретно выполнять роль Агента. Даже локальные маленькие моделькки на 5-9b по типу gemma 2 или rnj-1 справляются неплохо, если им нормально объяснено как пользоваться тулзами, предоставлен контекст и т.д.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации