Содержание
- Когда и как появилась «Ульяна»?
- До вас эту задачу пробовали решить иначе?
- Что она делает?
- Чем это отличается от чат-бота?
- Что в ней своё, а что взято готовым?
- Вы сейчас переделываете «Ульяну». Что именно меняется?
- Получается, «Ульяна» собрана тем же подходом, которому университет учит студентов?
- В чём ключевой эффект?
- А на каком этапе всё-таки нужно привлекать человека?
- Есть ли у этой архитектуры потенциал за пределами лидогенерации?
- Останется ли «Ульяна» внутренним инструментом или станет продуктом?
«Ульяна» была нашим первым агентом ещё до того, как ИИ научился писать код за нас
Черновик готовит редакция с помощью ИИ. За стандарт издания отвечает главный редактор — Валерий Курземнек.
Эксперт по ИИ-агентам «Зерокодера» Илья Заяц — о том, как ИИ-консультант появился на чистом промпт-инжиниринге задолго до эпохи вайбкодинга, почему его собрал один человек там, где не справились внешние подрядчики, и как «Ульяна» из отдельного консультанта превращается в общий источник данных для других агентов компании.
Когда и как появилась «Ульяна»?
Это была наша первая попытка создания ИИ-агента за год с лишним до массового внедрения вайбкодинга на рынке. Тогда ещё не было ни Cursor, ни знакомых многим агентов, которые сами пишут и размещают код. Работало это так: нейросеть ChatGPT писала код, а я вручную размещал его на сервере, вручную проверял и вручную собирал RAG-систему, чтобы всё это заработало. Изначально «Ульяна» жила на внутреннем RAG OpenAI — это не внешняя база данных — плюс код на сервере. По сути, это был чистый промпт-инжиниринг: человек ставит задачу ИИ и доводит результат руками.
До вас эту задачу пробовали решить иначе?
Да. Мы пытались привлечь внешних подрядчиков, которые корпели над задачей около двух месяцев, но результат не оправдал ожиданий. Версия, выпущенная подрядчиками, путалась в вопросах, сбивалась, говорила сухо и коряво — живого разговора не складывалось. Она не различала курсы, не всегда доводила диалог до заявки. Не хватало главного: передачи лидов в отдел продаж, защиты персональных данных, мониторинга.
Понимая эти недочёты, я стал глубже погружаться в промпт-инжиниринг. Я разобрал, как устроен системный промпт: роль, границы, тон, сценарии отказа. Ключевым оказалось не «попросить красиво», а прописать поведение — что делать, когда в базе нет ответа, как не выдумывать, в какой момент переходить к сбору контакта. Акцент сделал на управлении диалогом, чтобы ассистент вёл линию по СПИН и звучал живым человеком, а не справочником. За основу я взял ТЗ проекта, поставленного подрядчикам, и довёл его до боевого инструмента — того самого консультанта на страницах курсов. Так что от услуг подрядчиков мы отказались.
Что она делает?
«Ульяна» работает на страницах курсов сайта: отвечает посетителю на вопросы по тому курсу, на странице которого открыт чат, и собирает заявки. Сразу уберу частую путаницу: это не помощник кураторов и не проверка домашних заданий; проверка ДЗ — моя отдельная разработка. В таком моно-формате «Ульяна» работала до середины 2026 года, но сейчас её роль расширилась, о чём расскажу чуть позже.
Например, потенциальный клиент считает, что наше продуктовое предложение не соответствует его ожиданиям по цене. «Ульяна» в этом случае не будет вдаваться в спор, но попробует прояснить ситуацию: сначала оценит, с каким запросом и целью пришёл клиент, какие продукты или решения он уже попробовал самостоятельно или из линейки предложений «Зерокодера», и попытается сравнить, сколько времени уходит на решение насущной боли клиента при ручном труде. Отмечу, что мы снимаем с человека не просто пару важных вопросов, мы побуждаем его выговориться о наболевшем, что переводит разговор из неконструктивного в диалог об окупаемости вложений. В этот момент «Ульяна» понимает, что глубинно клиенту важно проговорить все нюансы с живым менеджером, поэтому предлагает оставить свои контактные данные для дальнейшей проработки.
Чем это отличается от чат-бота?
Обычный бот отвечает по скрипту, каждой репликой с чистого листа. У «Ульяны» есть три вещи, которых у скриптового бота нет. Первое — память диалога: она держит контекст всей беседы. Второе — инструменты и реальное действие: она сама ищет ответ в базе знаний курсов и сама собирает заявку — проверяет контакт, отсекает дубли и передаёт лид в рабочий процесс отдела. Третье — целевое поведение: она ведёт диалог по методологии СПИН-продаж и сама решает, когда уместно собрать контакты. При этом «Ульяна» — не сложная многоступенчатая система, которая сама принимает цепочки решений. Она автономна ровно настолько, насколько нужно для её задачи, и не больше.
Что в ней своё, а что взято готовым?
Готовым взято ядро — модель и векторный поиск по базе знаний на основе OpenAI. Изобретать свою LLM смысла нет. А всё вокруг собрано руками: бэкенд на FastAPI, отдельная база знаний под каждый курс с логикой «страница курса — своя база», сбор и передача заявок.
Данные находятся в нашем контуре: перед отправкой запроса в модель телефон и почта автоматически вырезаются из текста и заменяются на служебные метки, поэтому во внешнюю модель уходит обезличенный диалог без реальных контактов. Настоящие данные подставляются обратно только на нашем сервере в момент передачи заявки в отдел продаж, а временное хранилище соответствий очищается автоматически. Также добавлен мониторинг с оповещениями и виджет, который при сбое сам скрывается и не ломает страницу. Готовым взят мозг, а весь организм вокруг — собственная разработка.
Вы сейчас переделываете «Ульяну». Что именно меняется?
Два больших направления. Первое — авто-обновление. «Ульяна» уже больше полугода работает с ценами и тарифами, которые озвучивает клиентам в диалоге. Многое приходилось корректировать вручную: если стоимость курса в базе меняли, данные правили руками. Сейчас функции «Ульяны» расширились — она сама мониторит сайт и подтягивает актуальные данные без ручного вмешательства. Проект пока на этапе пилотирования, но уже показывает хорошие результаты.
Второе — мы переносим её на нашу инфраструктуру и заводим в общий контур. До сих пор «Ульяна» была вынесена за периметр наших систем. Теперь мы складываем информацию по тарифам и курсам в нашу общую базу так, чтобы на этих же выверенных данных работала не только «Ульяна», но и агенты других сотрудников. Иными словами, из отдельного консультанта она становится общей точкой актуальных данных для всей экосистемы ИИ-агентов: если пару лет назад это был наш «первый ИИ-ребёнок», то сегодня — источник выверенной информации, на который опираются разработки коллег из смежных отделов. Как это встроено в стратегию компании в целом — уже вопрос к руководству; со своей стороны я отвечаю за то, чтобы технически это заработало.
Получается, «Ульяна» собрана тем же подходом, которому университет учит студентов?
По сути да, и здесь важен нюанс. Инструментов вайбкодинга, когда я её начинал, ещё не существовало. Но логика была ровно та же, что мы преподаём: человек ставит задачу ИИ и доводит её до рабочего инструмента. Это чистый промпт-инжиниринг, и это ровно то, чему учит «Зерокодер». Хочу отдельно подчеркнуть: подобный проект сегодня может собрать гораздо быстрее, дешевле и с меньшими рисками даже не технический специалист — на вайбкодинге. Экономически такая разработка вышла в 3–4 раза дешевле по сравнению с продуктом, заказанным на стороне.
Хочу отдельно отметить: вкладывайтесь в своих сотрудников, в их обучение и технические эксперименты. Не бегите сразу в агентства: они могут выступить консультантами, но только вы знаете, как усилить работу отдела, у которого куча рутины, свой микроклимат в коллективе и не всегда структурный подход к задачам. В рабочем хаосе тоже рождаются идеи и способы их реализации — главное, дать сотрудникам почувствовать, что их поддержат и проконсультируют коллеги, если нужно.
В чём ключевой эффект?
«Ульяна» преимущественно работает с посетителями сайта, поэтому мерило качества её работы — охват заявок и разгрузка живых консультантов. Она отвечает мгновенно и круглосуточно, снимает типовые вопросы и масштабируется на все курсы без найма. Структура расходов простая: аренда небольшого сервера плюс оплата токенов за диалоги, работа 24/7 без усталости. На своей стороне я вижу, что за окно примерно в месяц через систему проходит порядка 120 обработанных заявок.
А на каком этапе всё-таки нужно привлекать человека?
В нетиповых и индивидуальных случаях: вопросы по оплате и договору, сложные возражения — всё, что не касается курсов и не может быть унифицировано. В этом случае «Ульяна» не станет изобретать и вводить в заблуждение — она переключит вас на менеджера. И принципиально не отвечает по фактам, которых нет в базе знаний, чтобы не ошибиться по ценам и программе.
Есть ли у этой архитектуры потенциал за пределами лидогенерации?
Есть, и я честно отмечу: это пока идея развития, а не готовая функция. Но её несложно переориентировать. Сейчас «Ульяна» обучена на материалах курса и отвечает по ним. Чтобы сделать из неё модератора сообщества, ей достаточно дать другие материалы — правила и контекст этого сообщества — и научить реагировать на токсичность, спам и нарушения. Всё, что уже работает внутри, — память, умение действовать и постоянный контроль за её работой — остаётся тем же; меняется только то, с чем она работает.
Что до рисков: простые и очевидные случаи агент разбирает сам, а всё спорное передаёт человеку — как только не уверен в решении. Важно понимать, что ответственность в спорных, двусмысленных или сложно прогнозируемых ситуациях всегда остаётся за человеком. Нам было важно создать инструмент, который ошибается реже, но при этом сохраняет возможность оспорить и вручную перепроверить любой запрос, ответ и историю переписки.
Останется ли «Ульяна» внутренним инструментом или станет продуктом?
Изначально «Ульяна» создавалась только для внутренних целей. Но коллеги из бизнес-направления обучения видят спрос на подобные разработки со стороны клиентов уже сейчас. Поэтому не исключаю, что в скором будущем получится запустить лабораторию технических продуктов под заказ, — и я с радостью приму в ней участие.
