Ранас Мукминов – Оркестрация ИИ-агентов. Claude Opus 4.7 (страница 12)
Мультиагентность предполагает, что итог можно собрать из частей и проверить либо части по отдельности, либо стык между ними. Есть задачи, где результат целостен по своей природе: его качество определяется согласованностью целого, а не суммой частей. Связный документ с единым стилем и сквозной аргументацией, цельный замысел, решение, требующее держать в голове все ограничения сразу, — такие результаты при разбиении теряют связность, и сборка из фрагментов даёт «лоскутное одеяло». Здесь единый контекст одного агента — не ограничение, а необходимое условие качества.
Если все агенты построены на одной модели с похожими промптами и видят один и тот же контекст, их разделение не даёт ни разнообразия суждений, ни реальной изоляции. Получается N скоррелированных исполнителей, которые ошибаются одинаково, но стоят как N. Это худший случай: издержки множественности без единственной её выгоды. Особенно коварен он в состязательных конфигурациях, где критик-копия генератора систематически пропускает те же ошибки, что и генератор (см. главу 65 о границах взаимного ревью).
Рой почти всегда дороже и часто медленнее по полному времени (с учётом координации) одного агента на той же задаче. Дублирование контекста между агентами, служебный обмен сообщениями, повторные проходы проверяющих — всё это токены и время. Если задача не получает от разбиения прироста качества или сокращения важного времени, а лишь становится дороже и сложнее в наблюдении, мультиагентность вредна по определению. Экономика оркестрации подробно разбирается в главе 100; здесь достаточно помнить, что стоимость роя — не сумма стоимостей агентов, а сумма плюс налог.
Это критерий организационный, но он реален. Мультиагентная система требует распределённой трассировки, реконструкции сессий, постмортемов многоагентных инцидентов, надзора за параллельными исполнителями (см. части XI и XIII). Если этих средств нет, рой превращается в чёрный ящик, который невозможно отладить, когда он ведёт себя странно, — а он будет вести себя странно, потому что недетерминирован. Запуск роя без наблюдаемости — это отложенный инцидент без средств его разбора.
Признак | Симптом | Последствие
Высокая связанность | Постоянный обмен между частями | Медленнее и хуже одиночного агента
Мелкая задача | Налог больше выгоды | Чистый убыток
Нераздельный результат | Качество в целостности | Лоскутный итог
Ложная множественность | Скоррелированные агенты | Издержки без выгоды
Дорого и медленно без выгоды | Рост стоимости и латентности | Вред по определению
Нет наблюдаемости | Рой как чёрный ящик | Неотлаживаемые сбои
Решение «один агент против роя» само по себе — выбор с двумя возможными ошибками, и они неравноценны. Ошибка первого рода: выбрать одного агента там, где рой действительно был оправдан. Ошибка второго рода: выбрать рой там, где хватило бы одного агента. Понимание того, какая из двух ошибок дороже, задаёт направление, в которое следует ошибаться при неопределённости.
Ошибка первого рода обычно дешевле и обратима. Если задача переросла одного агента, это проявляется конкретно и наблюдаемо: контекст не помещается, время неприемлемо, качество упирается в отсутствие независимой проверки. Симптом виден, причина названа, и переход к мультиагентности делается по факту, с уже понятным мотивом. Цена ошибки — отложенное усложнение, которое всё равно пришлось бы делать, плюс время, потраченное на подтверждение, что один агент исчерпан. Это потеря, но ограниченная и поучительная.
Ошибка второго рода дороже и коварнее, потому что она не самоустраняется. Лишний рой работает — он выдаёт результат, демонстрация проходит, и нет очевидного симптома, который кричал бы «здесь нужен был один агент». Налог платится постоянно и тихо: каждый запуск дороже, каждый инцидент труднее разобрать, каждое изменение сложнее внести в распределённую систему. Издержки накапливаются и нормализуются — команда привыкает, что «так и должно быть сложно», и не возвращается к решению. Сложность, однажды введённая, сопротивляется удалению сильнее, чем сопротивлялась введению.
Из этой асимметрии следует практический принцип: при неопределённости ошибаться следует в сторону одного агента. Недостроенную простоту легко достроить по конкретному сигналу; избыточную сложность трудно демонтировать, потому что она не подаёт сигнала о своей избыточности. Это второе обоснование асимметричной процедуры решения, нагружающей доказательством усложнение, а не простоту.
Критерии этой главы — не статичны: один и тот же класс задач может требовать одного агента при одном масштабе и роя при другом. Масштаб здесь — это не размер отдельной задачи, а объём однотипной работы, поток задач и требования к надёжности на этом потоке. Решение, верное для разовой задачи, может перестать быть верным, когда таких задач становится много, и наоборот.
Несколько типичных сдвигов с ростом масштаба.
— Фиксированная стоимость координации амортизируется. Налог на построение топологии, протоколов handoff и наблюдаемости платится один раз, а выгода собирается со всего потока задач. Разовая задача его не окупает; устойчивый поток однотипных задач — может. То, что для одного запуска было антипаттерном, для тысячи запусков становится инфраструктурой.
— Требование надёжности растёт нелинейно. Разовый результат можно перепроверить вручную; поток результатов проверять вручную нельзя. На масштабе появляются мотивы, которых не было: независимая автоматическая проверка (критерий 5), изоляция отказов (критерий 6), частичная деградация вместо полного отказа (см. главу 73). Эти мотивы порождаются не задачей, а потоком и режимом эксплуатации.
— Давление на время меняет смысл. Для одной задачи параллелизм может быть не нужен; для очереди задач пропускная способность становится ограничением, и горизонтальное распределение работы между воркерами оправдывается уже не скоростью одной задачи, а скоростью всей очереди (см. главу 33).
— Появляются новые отрицательные эффекты. Симметрично: рост масштаба обостряет и вред. Узкие места координации, которые незаметны на одном запуске, становятся потолком пропускной способности (см. главу 57); стоимость токенов, терпимая поштучно, становится значимой статьёй на потоке (см. главу 59). Масштаб усиливает обе стороны баланса, и пересчитывать его нужно именно на рабочем масштабе, а не на демонстрационном.
Практический вывод: критерии применяются не к задаче в вакууме, а к задаче в её режиме эксплуатации — разовая, периодическая или поточная. Один и тот же текст задачи при разном масштабе даёт разный ответ, и решение, принятое на масштабе демонстрации, нужно перепроверять на масштабе production. Это ещё одна причина не фиксировать архитектуру навсегда: правильный выбор привязан к масштабу, а масштаб меняется.
Самая частая ошибка в этой области — не плохая топология и не неверный протокол, а решение строить рой там, где он не нужен. Антипаттерн состоит в том, что мультиагентность выбирается как самоцель: потому что это «современно», потому что демонстрация выглядит впечатляюще, потому что архитектура из многих специализированных агентов кажется более «настоящей», чем один агент. Решение принимается по эстетике и моде, а не по структуре задачи и проверяемым критериям.
Антипаттерн узнаётся по нескольким характерным формам.
— Декоративная декомпозиция. Задачу, которую один агент решает линейно, искусственно режут на роли — «планировщик», «исполнитель», «ревьюер», «оформитель», — между которыми почти нет реальной работы. Каждая роль добавляет передачу контекста и шаг согласования, но не добавляет ни специализации по существу, ни параллелизма.
— Имитация организации. Рой проектируется по образу человеческой команды с «менеджерами», «отделами» и «совещаниями», как если бы организационная метафора сама по себе улучшала результат. Метафора удобна для объяснения, но навязывание человеческой оргструктуры рою агентов умножает коммуникацию, не умножая компетентность.
— Параллелизм без слабой связанности. Агентов запускают «параллельно» на плотно связанной задаче, и они большую часть времени ждут друг друга и пересогласовывают общее состояние. Видимость параллелизма есть, ускорения нет.
— Ансамбль из клонов. Несколько копий одного агента с одним промптом «голосуют» или «проверяют друг друга», создавая видимость надёжности при скоррелированных ошибках (см. главу 63).
— Роли ради ролей. Специализация вводится там, где режимы поведения не различаются по существу, лишь по формулировке. Промпты ролей почти совпадают, инструменты пересекаются, границы прав условны.
У антипаттерна есть устойчивые причины, и понимание их помогает ему сопротивляться. Демонстрационный эффект: рой из нескольких переговаривающихся агентов выглядит на показе сложнее и «умнее» одного агента, даже если решает задачу хуже. Соблазн архитектуры: проектировать топологию ролей интереснее, чем настраивать один промпт, и инженерное удовольствие подменяет инженерное решение. Подмена цели: «построить мультиагентную систему» формулируется как самостоятельная цель вместо «решить задачу наилучшим образом», и тогда любое усложнение задним числом оправдывается. Наконец, недооценка налога: издержки координации не видны на демонстрации и проявляются позже, на эксплуатации и нетипичных случаях, поэтому в момент решения их легко не учесть.