Есть ощущение, что мы сейчас живём в странный период: LLM-агенты уже умеют “делать работу”, но ещё не умеют быть предсказуемыми.
На демке всё выглядит идеально:
— один агент пишет код,
— второй — тесты,
— третий — делает ревью,
— четвёртый — собирает артефакты и отчёт,
— пятый — “оператор”, который всё это оркестрирует.
Первые пару запусков ты сидишь и думаешь: “Ну всё. Завтра индустрия будет другой”.
На третьем запуске агент уверенно сообщает: “Я исправил проблему”, и одновременно:
аккуратно удаляет половину нужных миграций,
“чуть-чуть” меняет контракт API,
и оставляет в логике дыру размером с грузовик.
И вот тут начинается самое интересное: система не “плохая”. Она просто… ведёт себя как стажёр с турбонаддувом.
Эта статья — старт цикла про многоагентные системы. Я хочу честно, без магии, разобрать: почему они ломаются, и какие инженерные принципы делают их ближе к “заводу”, а не к “лотерее”.
Многоагентная система — это несколько автономных “исполнителей” (агентов), которые:
имеют роли (Dev / QA / Reviewer / Ops / Analyst),
получают задачи,
используют инструменты (репозиторий, тесты, API, БД, браузер, файловую систему),
обмениваются результатами между собой,
и в идеале приближают систему к цели.
Звучит круто. Ломается тоже круто.
LLM очень хорошо:
объясняет,
делает правдоподобные планы,
пишет код, который выглядит как код,
и уверенно звучит.
Но многоагентная система — это не текст. Это динамика: состояние, побочные эффекты, дедлайны, ошибки, повторы, непредвиденные ситуации.
В итоге ломается не “мозг”. Ломается контур управления.
Если у задачи нет чёткого Definition of Done (“что считаем готово”), агент оптимизирует то, что проще:
“сделал красиво” вместо “работает”
“прошёл один кейс” вместо “не регресснуло”
“ответил уверенно” вместо “проверил”
Симптом: результаты выглядят разумно, но в проде — сюрпризы.
Если нет тестов/смоуков/валидаций — система живёт в режиме:
“мне кажется, всё ок”.
В одиночной работе это опасно. В многоагентной — смертельно, потому что агенты начинают усиливать самообман друг друга.
Агентам нужно “помнить”, но память часто превращается в свалку:
устаревшие факты
противоречивые решения
“мы вроде договорились, но уже нет”
куски логов без источника
Симптом: агенты спорят не с реальностью, а с тем, кто громче “помнит”.
Классика: агент A написал вывод, агент B принял его как факт, агент C подтвердил, агент D “закрыл тикет”.
Это выглядит как командная работа, но иногда это просто эхо-камера.
Агенты любят “сделать быстро”. Инструменты любят “делать по-настоящему”.
Если агент может:
применить миграции,
удалить файл,
развернуть деплой,
поменять конфиг,
то одна неверная гипотеза превращается в реальное действие.
А “откат” часто сложнее “накат”.
Температура, разные версии зависимостей, сетевые таймауты, порядок задач — и вот у тебя баг, который:
вчера был,
сегодня нет,
завтра снова будет,
а объяснение у всех разное.
Симптом: система не отлаживается, потому что нет стабильного “повторить”.
Агенты часто повторяют шаги (по делу: ретраи, перезапуски).
Если действия не идемпотентны, появляются:
дубли сущностей,
двойные списания,
повторные уведомления,
“раздувание” БД.
Если система не измеряет:
стоимость (время/деньги),
качество (ошибки/регрессии),
полезность (доставлено/принято),
то она не понимает, что “плохо”.
И продолжает работать, потому что “работать” — единственное, что она умеет.
Любой вход (письмо, веб-страница, документ) может “подсунуть” агенту инструкцию:
украсть данные
сломать логику
“сделать вид, что проверил”
Если нет deny-by-default, это вопрос времени.
Агенты не обладают человеческими механизмами:
ответственности,
осторожности,
“стоп, надо уточнить”.
Зато у них есть скорость, уверенность и желание завершить задачу.
Многоагентные системы ломаются не потому, что “LLM глупые”.
Они ломаются потому, что мы ещё не привыкли строить для них инженерные рельсы: гейты, инварианты, доказательства, ограниченные контуры действий.
Если аудитории зайдёт — я продолжу цикл. План такой (8 частей):
Почему многоагентные системы ломаются (эта статья)
Advisory-first и уровни зрелости: от “советов” до “действий”
Контракт результата: Артефакт + Доказательства + Метрика + Статус
Sandbox-first и bounded loop: как не выпускать хаос наружу
Deny-by-default: политики, права, гейты доступа к инструментам
Метрики полезности и kill-switch: когда агента надо выключать
Кейс дрейфа агента (обезличено): как система “уплывает” и почему
Стая как завод: Intake → Context → Patch → Checks → Apply → Audit
Мне важно понять, где у вас болит сильнее всего.
У вас стая ломается чаще из-за качества решений (галлюцинации/контекст) или из-за операционки (инструменты/деплой/повторы)?
Что для вас страшнее: неправильное действие или невозможность доказать, что действие правильное?
Если вы уже делали многоагентку: какая самая дорогая ошибка была — и почему она прошла “незамеченной”?
Я в следующих статьях хочу опираться не на фантазии, а на реальные истории.
Источник


