Программирование для тех, кто не пишет код: как устроен VibeCraft


Те из нас, кто пробовал модный вайбкодинг, уже оценили обратную сторону медали. Агенты уверенно говорят: «Сейчас всё сделаю», несколько часов пишут и тестируют код, после чего предлагают задеплоить получившееся в кластер Kubernetes и настроить observability. Для пет-проекта с парой страниц веб-интерфейса.
Привет, Хабр! Меня зовут Роберт Аксёнов, мы с командой SourceCraft создаём инструменты для разработчиков. История SourceCraft началась в Yandex Infrastructure — эта команда развивает инструменты для создания и развёртывания приложений и сервисов внутри Яндекса и поддерживает инфраструктуру, на которой работают большинство разработчиков компании. Разработка стартовала в январе 2024 года, а в начале 2026-го мы поняли, что технологии достигли уровня, при котором собственные разработки могут создавать не только программисты, но и специалисты из других областей: маркетологи, бухгалтеры, аналитики и не только. Так появился VibeCraft.
В статье расскажу, зачем нужна такая платформа, если уже есть ИИ-ассистенты для разработки, и какие задачи нам пришлось решить при её создании.
Зачем нужен VibeCraft
Когда в медиа говорят про вайбкодинг, обычно имеют в виду сценарий, в котором человек без опыта разработки берёт Алису AI, Claude, Codex или другого ИИ-ассистента и через чат создаёт продукт. Такой подход действительно может работать, но у него есть существенные ограничения.
Современные кодовые ассистенты рассчитаны на работу в паре с квалифицированным разработчиком: они предполагают, что пользователь понимает устройство проекта, может проверить результат и корректно сформулировать следующий шаг. Написать код — только часть задачи. Нужно ещё развернуть и поддерживать продукт: арендовать сервер, настроить окружение, базу данных, домены, а затем обновлять и следить за ошибками. ИИ-ассистент способен помочь и с этим, но человеку без технического бэкграунда трудно поставить такие задачи заранее — он может просто не знать, что они необходимы. В таком случае работа с кодовым ассистентом напоминает разговор с джинном: желание нужно сформулировать не только точно, но и с учётом множества неочевидных условий. Иначе результат формально соответствует запросу, но оказывается непригодным на практике.
Пользователю важно заниматься продуктом: бизнес-логикой, интерфейсом, проверкой гипотез. Он не должен думать о том, как приложение разворачивается, нужен ли ему Kubernetes, где хранится база данных, как часто создаются резервные копии и что произойдёт при сбое сервера.
Как устроен VibeCraft
VibeCraft работает по принципу одного промпта. Создаваемый код хранится в репозитории SourceCraft, продукт разворачивается в Yandex Cloud и использует все функции платформы, например хранит данные в бессерверной YDB.
VibeCraft использует ансамбль моделей Яндекса, которые обучены на создание и модификацию продуктов. Он умеет интервьюировать пользователя, задавать уточняющие вопросы и показывать первый результат примерно через 10 минут.

Цикл обратной связи короткий: от идеи до прототипа — без этапов с требованиями, обсуждениями и архитектурой. Пользователь сразу получает работающий прототип и развивает его итеративно: видит промежуточный результат, задаёт вопросы, корректирует следующие шаги. Для сравнения: при работе с ИИ-агентами для разработки — например, Claude или Codex — процесс выглядит иначе. Работая с такими агентами, программисты обычно вначале прорабатывают архитектуру, составляют подробный план, спецификацию, правила тестирования и оценки результата. После чего несколько агентов могут потратить значительное время, раз за разом модифицируя код, исправляя баги, проводя ревью друг другу и доводя поведение кода до полного соответствия спецификации. Такой подход рассчитан на опытных разработчиков, у которых есть подробная спецификация, набор тестов и понимание, как фича встроится в продукт.
Типичные продукты VibeCraft — лендинг, сайт онлайн-курса, приложение для учёта финансов, трекер тренировок, игра, CRM-система.
Два агента под капотом

Внутри платформы — двухагентная система. Агент-менеджер общается с пользователем, агент-программист пишет код. VibeCraft разбивает запрос пользователя на части, при необходимости задаёт уточняющие вопросы (если промпт исчерпывающий, вопросов будет меньше или не будет вовсе), разворачивает окружение, собирает и показывает план разработки. План можно отредактировать или сразу принять. (Здесь — скриншот плана.)
Агент-программист пишет код, создаёт окружение в SourceCraft, запускает его, проверяет, что всё работает.
Сейчас модели и системные промпты настроены прежде всего на качество результата, а не на скорость разработки. Команде пришлось тщательно подбирать баланс: ускорить создание продукта, не жертвуя устойчивостью и качеством кода. В результате простой прототип можно получить уже через 7–10 минут. На сервис со списком задач обычно уходит 20–30 минут, а один из самых популярных сценариев — запрос «Сделай таск-трекер» — занимает около 40 минут от первого сообщения до готового приложения.
Node.js-приложения и Serverless YDB
VibeCraft генерирует код на Node.js. Это фулстек-решение: агент использует TypeScript как единый язык программирования и для браузерного, и для серверного кода. TypeScript — один из самых популярных мейнстрим-языков, и по нему есть огромное количество примеров кода, обучающих материалов, книг и статей. А чем популярнее язык и стек, тем больше материалов попадает в обучающую выборку языковых моделей и тем лучше они пишут код.
Бессерверная YDB для хранения данных выбрана тоже не случайно, так как разворачивать, настраивать и обслуживать серверы при таком подходе не требуется. При serverless-подходе для данных клиентов используются уже готовые кластеры, работающие в Yandex Cloud. Эти кластеры изолируют данные и запросы клиентов друг от друга, а инженеры облачной платформы обеспечивают работу узлов СУБД.
При этом оплата взимается только за объём хранимых данных и количество запросов к ним, что хорошо подходит для прототипов и проектов на начальной стадии разработки. Пользователи VibeCraft ничего не платят за обслуживание СУБД, которое обычно требует квалифицированных специалистов. А если проект становится популярным, автоматическое горизонтальное масштабирование и отказоустойчивость YDB позволяют выдерживать пиковые нагрузки и сохранять доступность данных.
Какие задачи пришлось решить во время разработки
У нас были готовые компоненты SourceCraft, поэтому первую версию было несложно собрать по принципу 80/20. Но дальше нужно было настроить поведение моделей в ситуациях, специфичных для нашего сервиса.
Понимание моделью своих ограничений
Мы строим «сервис одной кнопки», и эта кнопка — чат. Пользователи нередко просят то, чего сервис пока не умеет. Поэтому важно, чтобы чат корректно обозначал границы своих возможностей: знал, какие задачи он может выполнить, а в каких случаях должен честно сообщить об ограничениях.
В основе ИИ-агентов для разработки лежат большие языковые модели. По своей природе они не обладают пониманием в человеческом смысле: это вероятностные системы, которые находят в данных нарратив и продолжают его наиболее правдоподобным образом. Модель стремится быть полезной, поэтому без специальных ограничений может уверенно предложить решение даже там, где у неё недостаточно данных, инструментов или реальных возможностей.
Если пользователь попросит ИИ-агента для разработки приготовить яичницу, то из имеющихся данных агент уверенно достанет нарратив о том, что доступа к инструментам для приготовления яичницы у него нет, и предложит рецепт. Но если пользователь попросит, например, перезагрузить сервер, то нарратив станет менее очевидным. Модель, которая старается быть полезной, будет долго комбинировать находящиеся в её распоряжении инструменты в безуспешных попытках перезагрузить сервер.
Управление поведением модели через доступные инструменты
Из механизма «нарратив — история» вытекает третья сложность: стабильность поведения. В одних и тех же данных модель может распознать несколько конкурирующих нарративов. Поэтому агент не столько буквально следует инструкции, сколько продолжает наиболее заметный для него сценарий — и этот сценарий не всегда совпадает с намерением пользователя.
Наша задача — выстроить контекст так, чтобы в большинстве случаев в нём уже присутствовал нужный нарратив. Модели работают вероятностно: если предыдущий ход диалога убедительно подводит к тому, что необходимо прочитать файл, агент с высокой вероятностью продолжит действовать в этом направлении.
Для таких случаев мы сделали аварийные механизмы: «Пересоздать чат» (новый агент со свежей памятью восстанавливает, что происходит) и детектор зацикливания: если модель уходит в себя и начинает выдавать бессвязный текст, генерация обрывается и запускается заново.
Пример из разработки: когда в бэклоге несколько десятков задач, представление агента-менеджера о том, что надо делать, и реальная картина того, что сделал агент-программист, начинают расходиться. Мы научили агента-разработчика писать краткое саммари выполненной работы. Но агент-менеджер — тоже модель, обученная программировать. Он видит файлы и хочет прочитать их.
Мы дали ему такую возможность. Но он же программист, он ещё и править их хочет. И его от этого промптом не отучить, потому что модель предобучена быть программистом и нарратива «Я программист, я пишу код» в обучении несоизмеримо больше, чем чётких указаний «Ты менеджер» в промпте. Пришлось дать ему навык «Записать файл», а при применении этого навыка возвращать ошибку: «Тебе нельзя писать файлы, ты менеджер, ставь задачи разработчику».
Над чем мы работаем прямо сейчас
VibeCraft уже доступен для наших пользователей: можно зарегистрироваться, воспользоваться подарочной квотой и создать свои проекты. Мы собираем обратную связь в чате, там же можно проголосовать за новые фичи. Например, сейчас мы работаем над возможностью загрузки картинок, которые можно показать агенту с запросом «Сделай похоже». Также в планах — шаблоны и коннекторы к внешним сервисам: платёжным шлюзам, нейросетям и другим.
В комментариях я с удовольствием обсужу работу с ИИ-ассистентами для разработки и вопросы по их созданию. Тема эта новая, проверенных временем рецептов у нас пока нет, поэтому обратная связь от хабрачитателей приветствуется!
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.