У нас новый отдел разработки
Мы сейчас собираем свою платформу maestro-tender.ru силами шести агентов, и это не про то, что нейросеть пишет код вместо человека, это скорее про то, что у нас появился небольшой отдел разработки, в котором каждый занят своим куском и никто не лезет в чужой.
Интересно, как именно шесть агентов уживаются в одном репозитории и не превращают его в помойку.
Первое правило простое, никто не пишет в основную ветку. Каждый агент работает в своей ветке, задача формулируется как отдельная единица работы, и ветка живёт ровно столько, сколько живёт задача. Как только агент закончил, он открывает пулл-реквест, и дальше начинается самое важное, потому что его код смотрит не он сам, а другой агент, у которого в инструкции прописано, что именно он ищет.
Логику, тесты, обратную совместимость, не сломалось ли то, что работало вчера. Агент, который проверяет собственную работу, всегда её хвалит, это проверено многократно.
Синхронизация с гитхабом устроена так, чтобы люди вообще не занимались слиянием вручную. Ветка от основной отходит в момент старта задачи, и перед слиянием агент обязан подтянуть свежую основную к себе и разрешить конфликты у себя, а не в общей ветке. Это скучная дисциплина, но она единственная причина, по которой дерево изменений остаётся читаемым и через три месяца можно открыть историю и понять, что и зачем делалось. Когда у вас шесть параллельных исполнителей, история коммитов превращается в кашу за неделю, если не держать это правило жёстко.
Дальше сборка. На каждый пулл-реквест поднимается автоматическая проверка, прогоняются тесты и линтер, и агент физически не может слить то, что не собирается. Если проверка красная, задача возвращается автору, и это тот случай, когда машина спорит с машиной, а человек в процесс не вмешивается.
Мы ограничили число кругов, после второго возврата решение принимает ведущий агент, иначе двое будут пинать пулл-реквест друг другу до конца времён.
Выкатка идёт в два шага. Сначала сборка уезжает на тестовый контур, где она живёт с копией боевых данных и её можно потрогать руками, и только после этого уходит в продакшн. Каждая выкатка помечена версией, и по ней всегда можно откатиться на предыдущую, потому что откат должен быть операцией на одну команду, а не расследованием. И да, все в итоге ложится на отдельном виртуальном vps.
Отдельная боль это миграции базы, они пишутся так, чтобы старая версия кода продолжала работать с новой схемой, иначе откат превращается в фикцию, откатили код, а база уже уехала вперёд.
Спорные вещи выкатываем под флагом, то есть код уже в продакшне, но выключен, и включается отдельно, на части пользователей. Это дешевле, чем держать долгоживущую ветку с большой фичей, потому что такая ветка через две недели расходится с основной настолько, что слияние становится отдельным проектом.
И два агента из шести не пишут ни строчки кода. Один держит контекст, его работа в том, чтобы вся команда помнила, какую задачу мы вообще решаем, потому что цепочка агентов уезжает в сторону незаметно, каждый шаг логичен, а через десять шагов вы разрабатываете не то, что собирались.
Второй считает расходы и режет служебную переписку между агентами, они с удовольствием пересказывают друг другу уже сказанное, и без надзора вся конструкция становится самым дорогим способом получить средний результат.
Мультиагентная разработка не добавляет системе ума, она добавляет управляемости, и работает ровно настолько, насколько вы заранее описали ветвление, проверки, круги правок и порядок отката. Без этого вы просто наняли шестерых джунов вместо одного и удивляетесь, что стало хуже. Задач очень много, поэтому я использую https://multica.ai/
Если вам интересно попробовать начать работу с агентами, я собрал полный справочник от базовых понятий до сложной архитектуры и интеграции в бизнес-процессы. Собрал данные из своего опыта, энциклопедии атропик академии а так же открытых плейбуков, которые мне показались интересными.
Сегодня-завтра соберу бота, и выложу справочник. Получилась целая книга на 250 страниц!
Post #2211
1.16K
Запись экрана 2026-09-11 в 11.48.34.mov13.3 MB
- 🤔 5
- 🦄 5
- 💯 3
- 🔥 1
- 😱 1