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

У меня это выглядит так. Появилась идея новой фичи для разработки. Я запускаю /opsx:explore скил OpenSpec и обсуждаю с ИИ как будем делать эту фичу, какие нюансы и детали надо предусмотреть. Когда открытых вопросов не остаётся, перехожу к /opsx:propose, чтобы подготовить спецификации перед разработкой. Потом ревью спек с помощью команды /review-artifacts и правка найденных нестыковок. Дальше запускаю /opsx:apply-sequential для реализации в автономном режиме и чистым контекстом агента для каждой подзадачи. Потом ревью через /audit-implementation и правки после него. Архивирование изменения через /opsx:archive. И наконец‑то создание PR, финальное ревью и merge.

И так раз за разом! На простых задачах моё участие сводится к запуску команд и подтверждению предложенных решений. На задачах посложнее отвечаю на вопросы наподобие какую из альтернатив выберем. Хотя этот выбор можно сделать по критериям, зафиксированным в проекте. Это уже начинает утомлять. Пришло время автоматизировать и эту рутину. Так я начал делать свою фабрику, где ИИ‑агенты («гномы») трудятся в полностью автономном режиме. А к человеку обращаются только тогда, когда столкнулись с проблемой, которую не могут решить сами.

ИИ-фабрика в работе
ИИ‑фабрика в работе

Требования к автономной фабрике

У меня есть большой опыт разработки высоконагруженных бэкенд систем и управления командами. Это помогло заложить прочную основу для фабрики. Вот как я рассуждал и к каким выводам по требованиям пришёл:

  1. У меня уже есть устоявшийся процесс разработки и инструменты (GitHub, Jira, SonarQube, Jenkins, тестовые среды, и так далее), которые я для этого использую => нужно переиспользовать то, что уже есть и настроено.

  2. ИИ ускоряет процесс написания документации, тестов, кода в десятки и сотни раз, но имеет и недостатки => нужно взять достоинства инструмента и закрыть его недостатки.

  3. Недерменированный результат работы ИИ‑агента, а нужен надёжный стабильный результат => нужно использовать чёткую логику (программы/скрипты) везде, где можно, а нечёткую логику (ИИ) только там, где без неё не обойтись.

  4. ИИ модели не следят за качеством написанного кода, так как натренерованы на выполнение задачи самым коротким путём => нужно проверять качество результата их работы на каждом этапе.

  5. Сегодня один провайдер предоставляет ИИ модель лучше, чем другой. Завтра наоборот => нужна возможность использовать разные модели и провайдеров.

Список можно продолжать и дальше, но для понимания принципов этого хватит.

Архитектура фабрики

Под эти требования вырисовывается следующая архитектура.

Диаграмма архитектуры
Ядро, порты и адаптеры ИИ-фабрики
Ядро, порты и адаптеры ИИ‑фабрики

Ядро фабрики знает доменную модель и как из неё выстроить автономный процесс разработки. Через порты и адаптеры к ядру подключаются компоненты, работающие с внешними сервисами и программами. Адаптеры можно писать отдельно от фабрики и подключать в виде плагинов. Поэтому если на своём проекте Вы используете Redmine в качестве таск трекера, а его поддержки нет, то можете за пару дней реализовать свой адаптер и использовать его.

Настройка конвейера фабрики

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

IDEF0/ICOM модель
IDEF0/ICOM модель с петлёй контроля качества
IDEF0/ICOM модель с петлёй контроля качества

IDEF0/ICOM модель с петлёй контроля качества очень хорошо подходит для этого. Вы описываете каждый этап своего процесса. Что будет входными данными для этапа, что будет выходными. Инструкции и правила, по которым вход преобразуется в выход. Инструменты, с помощью которых будет осуществляться работа. И правила контроля качества. Для фабрики описание стадий хранится в stage.yaml файлах.

Описав так этап за этапом, их можно выстроить в конвейер, зафиксировав порядок стадий в pipeline.yaml. Когда процесс разработки нужно поменять, то достаточно будет обновить конфигурацию и перезапустить фабрику.

Позови своего человека, если что‑то пошло не так

Когда гном сталкивается с проблемой, которую не может решить сам, он паркует задачу и эскалирует её человеку. Делается это через таск трекер. Фабрика помечает задачу как gnomish:needs-human и добавляет комментарий с причиной эскалации. Это может быть инфраструктурная проблема, когда не хватает прав или доступов, или вопрос, на который гному нужен ответ, чтобы продолжить свою работу.

Эскалация человеку
Общение фабрики и человека происходит через таск трекер
Общение фабрики и человека происходит через таск трекер

Человек решает проблему, оставляет гному комментарий и переводит задачу в gnomish:ready. Фабрика отслеживает это и возвращает задачу обратно в работу.

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

Дай погонять фабрику

Код фабрики лежит вот тут. А тут небольшой HelloWorld проект для тестирования. Можно сделать форк и погонять у себя (нужны установленные claude code, openspec, java 25, git). Можно посмотреть видео демо фабрики на три минуты.

Заключение

Когда начинал этот проект, то думал, что он будет простым. Но по мере работы всплывали неочевидные детали и сложности. Что привело к очень интересным архитектурным решениям, которыми могу поделиться.

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

Комментарии (3)


  1. YuliyaAnts
    15.09.2026 16:01

    Отличная статья. Сама сталкиваюсь с тем, что поэтапный запуск команд вроде /opsx:explore и ручное ревью каждого артефакта со временем тоже превращаются в рутину) Но возникает вопрос: как в вашей фабрике решается проблема накопления ошибок между стадиями? Если один гном немного ошибся в спеке или архитектуре, а второй на ее основе написал кривой код, то /audit-implementation проверит код на соответствие уже кривой спеке и, скорее всего, ничего не заметит. Есть ли какой-то откат к предыдущей стадии или механизм самокоррекции до того, как дело дойдет до финального PR?


    1. oinsio Автор
      15.09.2026 16:01

      В фабрику встроен механизм петли контроля качества, который запускается в конце каждой стадии. Есть несколько встроенных инструментов для таких проверок: запуск локальной команды/скрипта, запуск удалённой проверки (например, SonarQube), LLM-судья. Вы сами настраиваете какие инструменты будут делать проверки и что именно будут проверять. Лучше первыми ставить простые дешёвые (по времени и деньгам) проверки. Если они пройдут, то уже переходить к дорогим (нет смысла делать ревью кода с помощью ИИ, если сборка проекта не проходит). Каждая проверка либо даёт «зелёный свет» двигаться дальше к следующей стадии, либо сообщает гному о заваленной проверке. Гном тогда доделывает свою работу на этой стадии, и снова запускаются проверки. Так происходит, пока все проверки стадии не пройдут успешно, либо не исчерпается лимит проверок/исправлений (по-умолчанию их количество равно двум). Если лимит достигнут, то работа останавливается и проблема эскалируется человеку.

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

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

      Есть настройка стадий - остановиться после окончания стадии и сообщить об этом человеку, либо двигаться дальше в автоматическом режиме. Эту настройку можно использовать во время отладки конвейера фабрики или на этапах, где нет полного доверия гномам, чтобы человек мог посмотреть промежуточные результаты и решить двигаться дальше сейчас или после внесения правок.

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


      1. YuliyaAnts
        15.09.2026 16:01

        Спасибо за подробный ответ. Хорошо, что LLM-судьей можно назначить другую модель, а не ту, которая писала спеку. Сама часто так делаю, ревью другой моделью получается заметно качественнее. Пойду гонять тестовый проект, если появятся вопросы, напишу попозже)