Схема «команда специализированных агентов» выглядит убедительно на диаграмме: планировщик, исследователь, критик, исполнитель. Каждый занят своим делом, как в настоящем отделе. Проблема в том, что настоящий отдел работает благодаря общему контексту, накопленному годами, и умению переспросить, а агенты обмениваются короткими текстами через узкое горлышко.
Этот текст занимает скептическую позицию: для личных и бытовых задач мультиагентность в подавляющем большинстве случаев умножает стоимость, задержку и число мест, где теряется смысл. Три исключения существуют, они названы ниже, и все три легко проверить.
#Короткий ответ
Мультиагентная система — это несколько независимых агентных циклов, обменивающихся сообщениями. Каждый из них — полноценный агент со своим контекстом, своими инструментами и своим лимитом шагов.
Из «своим контекстом» следует главное: то, что один агент знает, второй не знает. Передача происходит текстом, который первый агент написал, а второй прочитал. Каждая такая передача — потеря: детали, которые казались неважными отправителю, оказываются нужны получателю, а спросить он не может.
#Что реально стоит разделение
| Что добавляется | Чем платите |
|---|---|
| Второй агентный цикл | Отдельная серия вызовов модели со своим ростом контекста |
| Передача задачи | Пересказ вместо исходных данных, потеря деталей |
| Возврат результата | Второй пересказ, вторая потеря |
| Координация | Вызовы модели, не делающие полезной работы |
| Отладка | Трассировка не одна, а по одной на агента |
| Сбои | Отказ любого участника роняет цепочку целиком |
Строка про отладку недооценивается сильнее остальных. В одноагентной системе есть один лог, и ошибка ищется по нему от начала; принцип разобран в материале про чтение трассировки агента. В мультиагентной логов несколько, и добавляется вопрос, на какой из передач исказился смысл. Практически это означает, что типичная отладка занимает не в два раза больше времени, а в несколько раз.
Строка про координацию — прямая денежная. Вызов модели, который решает, кому передать задачу, не производит результата. При трёх агентах и пяти передачах таких вызовов набирается больше, чем содержательных.
#Три сценария, где мультиагентность оправдана
Все три объединяет один признак: разделение даёт что-то, чего нельзя получить внутри одного цикла.
#1. Изоляция контекста как цель
Когда вторая часть задачи не должна видеть данные первой. Пример: агент, который читает приватную переписку и извлекает из неё формулировку вопроса, и второй агент, который ищет ответ в интернете. Второй не должен получить переписку — не потому что так дешевле, а потому что она не должна покидать машину.
Здесь разделение — это требование приватности, и накладные расходы платятся осознанно. Так устроена, например, граница вокруг ответов на сообщения третьим лицам в Persona: подсистема, отвечающая собеседнику в личной переписке, по построению не получает доступа ни к личным чат-сессиям владельца, ни к его долговременной памяти, ни к захвату экрана — в промпт попадают ровно четыре вещи, и это проверяется отдельным тестом с «канарейками» в каждом запрещённом источнике.
#2. Параллельность на независимых ветках
Когда есть N однотипных независимых подзадач и время важнее денег. Проверить двадцать ссылок, разобрать сорок писем, обработать десять файлов. Ветки не обмениваются контекстом, координация тривиальна, потери на передаче почти нет.
Признак применимости жёсткий: ветки должны быть по-настоящему независимы. Если результат пятой ветки влияет на седьмую, параллельность превращается в мультиагентность со всеми её издержками.
#3. Разные модели под разные задачи
Когда одна часть работы требует сильной модели, а другая — быстрой и дешёвой. Классификация входящего текста на маленькой локальной модели, содержательный ответ — на большой. Разделение здесь даёт экономию, которой внутри одного цикла не получить.
Заметьте: во всех трёх случаях выигрыш измерим — приватность, время, деньги. Если выигрыш формулируется как «получится качественнее, потому что каждый агент специализирован», это не выигрыш, а надежда.
#Что из этого следует на практике
Сначала попробуйте один агент с хорошими инструментами. В большинстве разобранных случаев «нужен второй агент» на поверку означает «нужен ещё один инструмент». Инструмент дешевле агента на порядок: у него нет своего контекста, своего цикла и своей стоимости координации.
Роль — это не агент. «Критик» можно реализовать вторым проходом того же цикла по тем же данным, без отдельного участника и без передачи контекста. Отдельный агент нужен, только если критику нельзя показывать то, что видел исполнитель, или если он работает на другой модели.
Передавайте данные, а не пересказ. Если второй агент должен работать с файлом, передавайте путь, а не изложение содержимого. Пересказ — это потеря, которую невозможно восстановить.
Считайте координацию отдельно. В бюджете полезные вызовы и вызовы-диспетчеры должны быть в разных строках. Если вторых больше — схема не окупается.
Ограничивайте глубину делегирования. Агент, который может создать агента, который может создать агента, — это способ потратить дневной бюджет за минуту. Один уровень делегирования покрывает практически все реальные потребности.
Общая механика одного цикла, которая множится на число участников, — в разборе паттерна ReAct, а вопрос разбиения задачи на шаги внутри одного агента — в материале про планирование и декомпозицию.
#Где интуиция подводит
«Специализация повышает качество». У людей — да, потому что специалист приносит с собой знания, которых нет у остальных. У агентов на одной и той же модели специализация — это разный системный промпт. Знаний она не добавляет, а контекст урезает.
«Критик поймает ошибки исполнителя». Иногда ловит. Но критик на той же модели склонен к тем же ошибкам, а видит он не работу, а её описание. Второй проход по тем же данным без передачи через пересказ работает лучше и стоит дешевле.
«Мультиагентность — это масштабирование». Это распараллеливание, и только на действительно независимых ветках. Если ветки зависимы, вы получили не масштабирование, а распределённую систему с общим состоянием — и все её классические проблемы вдобавок к агентным.
«Ошибку легко локализовать, каждый агент отвечает за своё». На практике ошибка чаще всего рождается не внутри агента, а на границе: отправитель написал одно, получатель понял другое, и оба формально сработали правильно.
#Когда мультиагентность точно не нужна
- Личный ассистент для бытовых задач. Один цикл, набор инструментов, лимит шагов. Разбиение на роли добавит стоимость и не добавит пользы.
- Задача решается за три-пять шагов. Накладные расходы на координацию сопоставимы с самой работой.
- У вас пока нет трассировки. Мультиагентную систему без логов невозможно отлаживать в принципе.
- Бюджет ограничен. Это самый дорогой из существующих способов организовать агентную работу.
Наша собственная архитектура сознательно построена как одно ядро на все поверхности, а не как набор общающихся агентов; что именно из этого сделано и что остаётся проектом — в разборе агентной архитектуры Persona. Базовое определение агента, от которого всё считается, — в статье о том, что такое ИИ-агент.
#Частые вопросы
#Сколько агентов имеет смысл запускать одновременно?
Для личных задач — один. Несколько оправданы, когда есть независимые однотипные ветки и время дороже денег, либо когда части задачи должны быть изолированы друг от друга по приватности, либо когда они требуют разных моделей. Во всех остальных случаях второй агент добавляет стоимость и точки отказа.
#Мультиагентная система умнее одного агента?
Нет оснований так считать: интеллект берётся из модели, а она одна и та же. Разделение перераспределяет контекст между участниками и добавляет потери на передачах. Выигрыш бывает в скорости, приватности и стоимости, но не в «уме».
#Как передать контекст между агентами без потерь?
Полностью — никак, поэтому передавать стоит ссылки на данные, а не пересказы: путь к файлу, идентификатор записи, диапазон дат. Всё, что превращается в текст-пересказ, теряет ровно те детали, которые отправитель счёл несущественными.
#Что дороже: один агент на десять шагов или два по пять?
Обычно два по пять, несмотря на одинаковое число содержательных шагов: добавляются вызовы координации, пересказ задачи и пересказ результата. Экономия появляется, только если у второго агента заметно короче контекст или дешевле модель.
#Зачем тогда мультиагентные фреймворки?
Они решают реальные задачи в сценариях, где ветки независимы и их много, либо где разные части конвейера обязаны работать на разных моделях и в разных доверенных зонах. Для одного человека с одним ассистентом эти сценарии встречаются редко.
#Вывод
Считайте не число агентов, а число передач контекста: каждая — это потеря смысла и лишний вызов модели. Если разделение не даёт измеримого выигрыша в приватности, времени или деньгах, оно не окупается.
Если у вас личный ассистент — берите один цикл и вкладывайтесь в инструменты и логи. Если у вас двадцать независимых однотипных задач и время дороже денег — распараллеливайте, это тот самый случай.