Dark factory в софте: свет выключают не там, где кажется
IT-компания превращается в тёмный цех: работа входит в контур по RPC, агент делает ход, наружу выходит результат. Сложный продукт держит команда на один созвон вместо этажа. Но отчёт DORA показывает, что выигрыш приходит от того, что лежит под агентами, а не от самих агентов.
Авторы: slavb18
Dark factory — это цех, в котором не включают свет. Роботам он не нужен, а людей внутри нет. FANUC гоняет такой завод не первый десяток лет: роботов там собирают роботы, смена идёт неделями без человека на площадке.
В софте такой цех собирается прямо сейчас, и выглядит он не так, как рисуют на слайдах.
Как выглядит тёмный цех в софте
Никаких человекоподобных роботов за мониторами. Форма другая: работа входит в контур сообщением, агент делает ход, наружу выходит результат.
Снаружи приходит всё подряд — алерт из мониторинга, обращение клиента, коммит, вебхук платёжного шлюза. Отправители разные, формат один: сообщение с отправителем, темой, телом и требованием разобраться.
Внутри его принимает процесс агента, который живёт постоянно. Не запускается на каждый запрос, а держит сессию: в неё уходит кадр с задачей, обратно приходит кадр с результатом. Инструменты подключены конфигурацией, доступы выданы его учётной записью, регламенты лежат в репозитории, который он читает.
Агент, который разбирает инцидент, и агент, который разбирает обращение пользователя, отличаются промптом и набором инструментов. Труба у них общая. Значит, работу можно передавать между ними, и конвейер собирается из ходов.
Ближний край: что это уже умеет
Мы на днях проверили самый простой случай — инцидент.
Алерт о всплеске ошибок уехал вебхуком в агента. За один ход он сходил в хранилище логов, сходил в кластер за состоянием подов, сопоставил одно с другим и выдал первопричину: в шлюзе нет слушателя на 443, приложение бьётся в собственный HTTPS-домен и получает ECONNRESET. Под при этом живой, три дня без рестартов, и глазами это выглядит как «приложение сломалось».
Сорок минут работы инженера. Один ход агента. Разбор целиком — с кодом релея и командами.
Инцидент здесь — частный случай. Тем же способом заезжает фидбэк пользователя, отчёт о падении сборки, запрос на выкатку стенда.
Арифметика, которая от этого ломается
SaaS-продукт держал этаж. Сложный финтех — этаж плюс дежурная смена, плюс отдельные люди на регламентную отчётность.
Значительная часть этой численности уходила на передачу состояния между головами. Кто-то смотрит в логи и пересказывает в тикет. Кто-то читает тикет и идёт в кластер. Кто-то собирает из этого отчёт. Каждый шаг — копирование между двумя системами, у каждой из которых есть API.
Тёмный цех убирает именно это звено. Решения остаются людям, передача состояния уходит машинам, и тот же продукт начинает сопровождать команда, которая помещается в один созвон.
Где свет не выключается
Дальше начинается место, на котором продают сказки, поэтому дальше — с цифрами.
Агенты сами по себе выигрыша не дают. В отчёте ROI of AI-assisted Software Development DORA формулирует это прямо: ИИ работает усилителем, и отдача приходит не от инструментов, а от системы под ними — качества внутренней платформы, ясности процессов, согласованности команд. Усилитель одинаково хорошо усиливает и порядок, и бардак.
Оттуда же три вещи, которые ломают наивный план.
J-кривая
Сначала производительность падает, и это нормальный этап. METR намерил разворот на 37 пунктов за год: от минус 19 процентов в начале до плюс 18 потом. Команда, которая свернёт работу на дне кривой, увидит только подтверждение, что «не работает».
Налог на проверку
Код и выводы, сгенерированные машиной, надо проверять, и это отдельная работа, которой раньше не было. Она не исчезает от того, что генерация стала быстрее.
Бутылочное горлышко переезжает
Писать код быстрее и открывать пулл-реквесты чаще само по себе не означает, что компания доставляет больше ценности. Если остальной конвейер не успевает, выигрыш всплывает в другом месте как издержка: очередь на ревью, переделки, сломанные тесты, риск в проде.
Что на самом деле сделало наш ход дешёвым
Если перечитать историю с инцидентом, окажется, что модель там — последняя по важности деталь.
Агент нашёл причину за один ход, потому что под ним лежало следующее:
- одно хранилище логов на всю платформу: не пять источников с разными схемами, а один адрес и один язык запросов;
- один описанный способ попасть в кластер, вместе с ловушками, на которых спотыкаются люди;
- регламенты в машинно-читаемом виде:
AGENTS.mdв корне репозитория, документация по соседству, журнал работ рядом; - ограниченный вход: агент принимает вебхук от своего же Alertmanager, а не произвольный текст из интернета.
Это и есть та самая «система под инструментами» из отчёта DORA. Тёмный цех невозможен на неубранной площадке: робот не обойдёт коробку, которую человек привык переступать.
Отсюда практический вывод, неприятный для тех, кто хочет купить результат. Работа по приведению платформы в порядок агентами не отменяется, она становится условием их окупаемости. Разнородный контур с пятью источниками истины и документацией в голове у двух человек даст ровно то, что описывает DORA: ускоренную генерацию, выросший налог на проверку и ноль на выходе.
Честный статус
У нас свет в цеху ещё горит.
Агенты разбирают инциденты и обращения, но между собой пока не разговаривают: каждый висит на своей трубе и отдаёт результат человеку. Автономных конвейеров, где один агент передаёт работу другому без человека в середине, у нас в проде нет.
Править боевые манифесты агент тоже не может. Цена ошибочного применения конфигурации в проде несопоставима с экономией сорока минут, и это ограничение мы сняли сознательно.
Направление при этом видно. Этаж людей был нужен, пока состояние приходилось переносить руками; как только переноска ушла машинам, размер команды стал определяться количеством решений.
Выключатель уже на стене, и свет пока нужен ровно там, где эти решения принимают.