Ранас Мукминов – Оркестрация ИИ-агентов. Claude Opus 4.7 (страница 25)
несколько агентов, потому что многоагентная архитектура воспринимается как более продвинутая. Часть
IV отдельно разбирает критерий оправданности; здесь важна форма ошибки на уровне топологии: систему
усложняют без задачи, которая этого требует.
Failure mode. Появляется координационный налог (см. главу 5) без компенсирующей выгоды:
декомпозиция, передача контекста, сборка результата стоят токенов и времени, а параллелизма нет,
потому что подзадачи на деле последовательны. Система становится дороже, медленнее и менее надёжной,
чем один агент: точек отказа больше, наблюдаемость хуже, а итоговое качество не выросло. Это
базовый антипаттерн, относительно которого измеряются остальные.
Противоядие. Baseline-агент как обязательная точка отсчёта. Прежде чем строить рой, фиксируется
поведение одного агента на той же задаче. Рой оправдан только если он измеримо превосходит baseline
по метрике, ради которой строится, — а не по числу участников.
Механизм. Один оркестратор раздаёт работу всем воркерам и собирает все результаты (паттерн
оркестратор-воркеры, см. главу 8). На старте воркеров двое-трое, и оркестратор справляется. По мере
роста на него вешают всю маршрутизацию, всю агрегацию, всё разрешение конфликтов и весь контекст.
Failure mode. Оркестратор становится узким местом координации (см. главу 57) и одновременно
единой точкой отказа (см. главу 75). Его контекст переполняется состоянием всех воркеров; его
латентность определяет латентность всей системы; его падение останавливает рой целиком. Закон
Амдала (см. главу 56) проявляется через сериализацию на оркестраторе: сколько воркеров ни добавляй,
последовательная доля на дирижёре не сжимается.
Противоядие. Оркестратор как координатор, а не как хранилище. Тяжёлое состояние выносится во
внешнее хранилище и артефакты (см. главу 23), агрегация по возможности иерархична (см. главу 9), а
сам оркестратор проектируется так, чтобы его можно было перезапустить и переподхватить работу (см.
главу 72). Топологию выбирают под профиль нагрузки заранее, а не обнаруживают узкое место в
production.
Механизм. Агентам разрешено создавать субагентов, а тем — свои субагенты, без ограничения
глубины и ширины. Это кажется элегантным: рой сам подстраивает свою структуру под задачу.
Failure mode. Взрыв числа агентов. Одна неверно сформулированная подзадача порождает дерево,
которое растёт экспоненциально по глубине; стоимость в токенах и число параллельных вызовов выходят
из-под контроля. Это вырожденный случай динамического порождения работы (см. главу 34) на уровне
топологии. Без жёстких пределов рой способен исчерпать бюджет на одной задаче и сделать это быстро.
Противоядие. Явные пределы: максимальная глубина вложенности, максимальное число потомков на
агента, общий бюджет на дерево (токены, время, число агентов). Порождение субагента — операция с
квотой, а не свободное действие. Дерево агентов проектируется с заранее известной максимальной
формой (см. главу 9).
Роль — это тройка из промпта, инструментов и прав (см. часть III). Ошибки этого уровня создают
перекрытия и дыры в ответственности.
Механизм. Рой собирают из нескольких экземпляров одного и того же агента с одинаковым промптом,
инструментами и правами, рассчитывая, что коллектив окажется умнее одиночки.
Failure mode. Коррелированные ошибки. Идентичные агенты ошибаются одинаково на одних и тех же
входах, поэтому ни голосование, ни ансамблирование (см. главы 39 и 63) не повышают качество: большинство
воспроизводит общий промах. Разнообразие, ради которого обычно и строят ансамбль, отсутствует.
Система платит за N агентов, а получает надёжность одного.
Противоядие. Осознанное разнообразие там, где нужен ансамблевый эффект: разные промпты, разные
модели, разные ракурсы задачи (см. главу 63). Если же агенты должны быть одинаковыми (горизонтальное
масштабирование однотипной работы, см. главу 58), то от них и не ждут коллективного улучшения
качества — только пропускной способности.
Механизм. Роли описаны прозой, нестрого: «агент-аналитик», «агент-помощник». Границы между ними
не зафиксированы, потому что на старте и так понятно, кто что делает.
Failure mode. Перекрытия и зазоры (см. главу 20). Два агента делают одну работу дважды, расходясь
в результатах, либо ни один не делает работу, выпавшую между ролями. Недетерминизм агентов
усиливает эффект: при одном входе границу понимают так, при другом — иначе. Диагностировать такой
сбой трудно, потому что формально каждый агент работает корректно.
Противоядие. Роль как проверяемый контракт: явные вход, выход, инварианты и зона ответственности
(см. главу 18). Перекрытия и зазоры выявляются на этапе проектирования сопоставлением контрактов, а
не обнаруживаются в инцидентах.
Механизм. Чтобы не возиться с разграничением, всем агентам выдают одинаковый широкий набор
инструментов и прав — на чтение, запись, сеть, выполнение. Так проще на старте: любой агент может
сделать что угодно.
Failure mode. Нарушение least privilege (см. главу 88) превращает любой сбой или компрометацию
одного агента в системный. Ошибочное или внедрённое действие распространяется без границ (см. главы
84 и 86), потому что отсеков по правам нет. Это одновременно антипаттерн надёжности и безопасности:
расширенные права каждого агента — это расширенная поверхность отказа всего роя.
Противоядие. Минимальные права по роли: каждый агент получает только те инструменты и доступы,
которых требует его контракт. Права — часть определения роли (см. главу 16), а изоляция по правам —
один из отсеков bulkhead (см. главу 71).