В Morizo решили поручить нейросетевому агенту сборку страниц официального сайта. Задача выглядела обманчиво простой: взять готовый текст с картинками и через минуту получить готовую страницу на продакшн‑сайте, не трогая руками админку и без привлечения разработчика. Важно было не просто последовать тренду вездесущего внедрения ИИ и «поиграться с технологией», а реально сократить цикл публикации и освободить ресурсы сотрудников, которые и так разрываются между клиентскими проектами. Делюсь историей о том, как рождалась эта задача, какие гипотезы мы проверяли и к чему в итоге пришли.

Идеальное решение, которые я видел на старте
Идеальное решение, которые я видел на старте

Сапожник без сапог, или айтишник без ИИ

До этого проекта у нас был стандартный для ИТ‑компании конвейер: PR и автор пишут статью, дизайнер собирает иллюстрации по ТЗ, корректор вычитывает текст. А дальше начинается путь от файла до публикации страницы — и вот тут то всё упирается в человека. А вернее в его свободные ресурсы и приоритеты в задачах.

Зайти в админку, выбрать компоненты, расставить заголовки и картинки, проверить, как это выглядит, включить страницу в блог, sitemap, RSS и еще десяток служебных механизмов, о которых читатель никогда не узнает, — всё это делает человек, у которого параллельно горит пул клиентских проектов. В загруженные недели контент просто оседал в очереди «на потом». Задачу внутри команды я сформулировал так: сократить путь от точки «статья написана» до точки «читатель её открыл». И отдельно — достать из этой цепочки людей, чье время стоит дороже, чем механическая верстка.

Идеальный сценарий — никакого ручного вмешательства

В идеальном мире автор заканчивает работу файлом с готовым текстом плюс отобранными иллюстрациями. Никакой разметки под шаблон, никаких походов в админку. Конечно, мы живем не в идеальном мире, но техзадание для агента все равно уместилось в одну фразу: человек открывает привычное окно с ИИ и пишет «создай статью на сайте из файла @moya_otlichnaya_statia_pro_ii.md». 

Через 30–40 секунд в админке должна появиться первая версия страницы, собранная из нашей галереи компонентов. Тот, кто запускает публикацию, вообще может не открывать админку. Агенту предстояло самому разобрать файл, сопоставить текст и картинки с нужными блоками и собирать страницу.

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

Первый цикл: агент как внешний наблюдатель сайта

Первый подход к задаче был осторожным: не пускать агента в админку и дать ему работать «снаружи». План выглядел так: взять библиотеку элементов сайта, научить агента заходить на публичную часть сайта, по образцу имеющихся страниц собирать статические версии новых и выкладывать их так, чтобы частота редактирования была минимальной. Казалось, что это безопасный компромисс: никаких прав записи в боевую админку, только генерация новых HTML‑страниц по аналогии.

Это была обычная страховка. Вместо того чтобы сразу пускать ИИ в систему управления контентом, я заставлял его работать внешним парсером: смотреть на готовые страницы, разбирать их на структуру и собирать по этой структуре свои варианты. 

Инициативность агента стала проблемой

К четвертой итерации стало ясно, что подход не работает. Агент заходил на сайт и пытался выдернуть элементы, но использовать наш код не собирался. Он писал свой — HTML и CSS, отдалённо похожие на то, что есть в продакшене. Внешне это напоминало веб‑страницу, но внутри была другая структура, другие классы, никакого единообразия и непредсказуемые последствия для каждой будущей правки.

В общем до продакшена такой странице не хватало процентов девяноста доработки. Довести её до приличного вида стоило столько же времени, сколько обычная ручная сборка, а иногда и больше. И так мы оказывались в схеме, которую как раз хотели исправить: один сотрудник (пусть теперь он зовется ИИ‑агент) собирает страницу, другой все проверяет и правит после первого.

Неудача — тоже опыт

Первый подход всё равно нужно было сделать, чтобы понять, какой результат даёт такая архитектура. В итоге получилось именно то, что и ожидалось: при работе «снаружи» нейросеть начинает писать свой код, а схожесть с ожидаемым результатом крайне мала. Вердикт: подход требует существенной переработки.

Но этот результат избавил меня от иллюзии, что «ИИ сам разберется с сайтом, если просто показать ему готовые страницы». Когда все приходится объяснять только словами в промпте, без понятного интерфейса и жестких правил, нейросеть начинает додумывать и подставляет собственную логику там, где ее не просили. Для творческой задачи это плюс. Для рабочего сайта, где результат должен повторяться из раза в раз, — нет. 

Второй цикл: пустить агента внутрь, но через интерфейс

После неудачного первого цикла я принял противоположное решение: вместо того чтобы держать агента снаружи, позволил ему работать с сайтом изнутри, но через чётко определённый интерфейс. Для этого реализовал MCP‑сервер с возможностью собирать страницы через API, чтобы задавать правила использования компонентов не для человека, а для машины.

Так две машины нашли общий язык. Интерфейс стал понятен для самой нейросети: это мог быть API, MCP или другой понятный машине способ взаимодействия — важно, что он был формализован.

К интерфейсу я добавил подробную инструкцию, которую агент читает напрямую. В ней прописал, какие компоненты существуют, какие данные они принимают, как выглядят, в каких случаях используются и какие ограничения у них есть. Работа строится не на «угадывании» через HTML, а на понятной схеме. Агент знает, что в каруселях нужно использовать картинки с такими подписями, что заголовки первого уровня должны попадать в соответствующие компоненты и что для разных типов текста есть свои блоки.

Словарь для нейросети

Ключевая роль в новом подходе была у галереи компонентов в админке. Изначально она создавалась для людей — разработчиков и контент‑верстальщиков, которым нужно было выбирать готовые блоки и собирать из них страницы. 

Теперь я прописал эту галерею как «визуальный словарь» для агента. Каждый компонент получил смысловое описание, правила использования, привязку к типам контента и указание на то, какие именно поля должны заполняться при публикации.

Фрагмент виртуального словаря
Фрагмент виртуального словаря

Задача агента теперь заключалась не в генерации собственного HTML, а в изучении текста и составлении грамотного плана верстки из набора компонентов сайта. Он читает текст, понимает, где основной блок, где цитата, где код, где иллюстрация, и по заранее описанным правилам выбирает компоненты. Это уже не «тупой маппинг тегов», а работа со структурой статьи в понятных для нейросети терминах.

Практика показала, что современные развернутые нейросети задачей справляются достойно. Они умеют «прошить» текст, то есть удерживать его структуру и смысл, и при этом работать с тулколлингом, то есть уверенно вызывать инструменты и API.

Промпт в одну строку вместо десятка ручных действий

После появления интерфейса и служебной инструкции упростились пользовательские промпты. Теперь в новой сессии достаточно сказать что‑то вроде «возьми файл и размести статью из него на сайте», и агент понимает, что сделать. Ему не нужно каждый раз объяснять детали: каким компонентам соответствуют заголовки, как обрабатывать карусели, куда класть обложку. Всё это зашито в служебные файлы и правила, а промпт становится спусковым крючком процесса.

процесс в процессе
процесс в процессе
Набор компонентов, который использовал агент
Набор компонентов, который использовал агент

Со стороны пользователя весь этот процесс занимает секунды, статья просто появляется в админке, а инициатор публикации вообще может туда не заходить. Вся сложность публикации перенеслась в архитектуру и описания компонентов, а человеку остался простой интерфейс. Для меня это и есть главный результат. 

Архитектура агента 

Вокруг этого решения живёт агент, который можно сравнить с кодовым агентом вроде условного Claude Code. Он находится внутри папки проекта, видит и читает файлы, умеет запускать команды и обращаться к интерфейсу сайта. В этой папке лежат служебные файлы с описанием правил, интерфейсов, структур компонентов и логики публикации. Для агента это фактически учебник: как устроен сайт, какие CMS используются, какие браузеры подключаются, какие cron‑задачи отвечают за статистику и аналитику — и, главное, как выглядит полный цикл публикации.

Из этого учебника возникает то, что мы считаем «ТЗ для ИИ»: оно состоит из написанной автором статьи с подобранными иллюстрациями. Никакой отдельной подготовки не требуется: агент берёт этот файл на вход, и вся остальная сложность уже описана в служебных материалах.

Непривязанность к конкретной LLM и Codex

Отдельный принцип, которого я придерживался, — решение не должно жёстко зависеть от одной модели. Текущее решение практически не зависит от выбора движка: это набор инструментов, которым может управлять любая современная нейросеть, умеющая работать с текстом, кодом и вызовом функций. На момент написания статьи я по факту использовал сразу несколько разных вариантов (kimi + kimi code, gpt5.5 + codex). Они уверенно справляются с задачей, потому что она комплексная: нужно и прочитать текст, и правильно сопоставить его с компонентами, и корректно дернуть API.

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

Что улучшилось в бизнес‑процессе

Теперь, когда появился ИИ‑агент, сценарий публикации контента на сайте выглядит так: 

  • автор заканчивает статью, 

  • кладёт файл в нужную папку, 

  • запускает задачу

Через 30–40 секунд первый вариант страницы создан на сайте с использованием галереи компонентов. Визуально он уже выглядит качественно: пользователь получает всю необходимую информацию, структура правильная, важные моменты выделены и подсвечены на сайте, а не только в блоке текста. Остальная настройка — отступы, шрифты, мелкие детали — уже дело вкуса и перфекционизма. 

Если еще чуть «помучить» агента, то есть внести локальные правки в инструкцию или дать пару уточняющих промптов, можно добиться того, что статья получится при публикации неотличимой от той, что готовил человек. 

Пример получившейся страницы
Пример получившейся страницы

Главный эффект, который вижу как руководитель, — минус 60% времени человека на выпуск одного материала. Раньше в цепочке публикации стояли автор, PR, верстальщик или разработчик, SEO‑специалист и ещё кто‑то, кто следил за sitemap и RSS. Теперь сборку страницы, обновление служебных частей и первичную проверку берёт на себя агент. Людям остаётся то, где без них никак: смысл текста, бренд, юридические риски. 

Что важно знать, если вы тоже хотите научить агента собирать страницы

Этот проект убедил меня в нескольких вещах. 

Во‑первых, пытаться научить нейросеть собирать страницы только по внешнему виду сайта, значит обречь себя на бессмысленные итерации и догонку результата руками. Без явного интерфейса и правил агент будет писать свой код, который лишь приближён к вашему, и экономии времени не будет. 

Во‑вторых, два дня, потраченные на продумывание задачи и декомпозицию процесса, окупаются многократно. Когда вы описываете для агента не только API, но и смысловые правила использования компонентов, он начинает работать как профессионал: смотрит на статью, трансформирует ее в компоненты и собирает страницу так, чтобы она выглядела вменяемо уже с первого раза.

В‑третьих, хороший ИИ‑агент — это не «сверхразум», а правильно организованный конвейер: понятный интерфейс, служебные инструкции, адекватная модель и человеческий контроль на выходе. 

В нашем случае это позволило сократить время публикации, снизить рутину и освободить людей для задач, где их интеллект действительно незаменим. И именно так, на мой взгляд, и должно выглядеть внедрение ИИ в работу компании.