Как устроена мультиагентная система
В системе с одним AI-агентом планирование, использование инструментов и проверка результата сосредоточены в одном рабочем процессе. Многоагентная система распределяет эти функции между несколькими участниками: у каждого могут быть своя роль, инструкции, контекст и разрешённые действия.
Например, один агент исследует требования, второй меняет исходный код, третий анализирует результаты тестирования. Такое разделение необязательно связано с разными языковыми моделями: несколько агентов могут использовать одну LLM, но получать разные задачи и инструменты.
Как агенты взаимодействуют
Распространены два способа координации:
- Через главного агента (оркестратора). Он составляет план, делегирует задачи, принимает отчёты и определяет следующий шаг.
- Напрямую между агентами. Участники обмениваются сообщениями или результатами через общую среду без обязательного согласования каждого действия с одним координатором.
На практике встречаются и смешанные схемы. Важно не количество сообщений между агентами, а то, как система передаёт состояние работы: что уже проверено, какие файлы изменены, какой результат нужно получить дальше.
Некоторые подзадачи выполняются параллельно. Например, исследование документации и поиск подходящих тестов не требуют ждать друг друга. Но сначала изменить интерфейс функции, а затем проверить вызовы этой функции — последовательная зависимость. Система должна учитывать её, иначе агенты начнут работать с устаревшими данными.
Где мультиагентные системы применяются в разработке
Допустим, команда поручает AI-системе добавить новый метод API. Исследователь находит существующие соглашения и связанные модули. Агент разработки меняет обработчик и модель данных. Агент проверки изучает изменения, запускает доступные тесты и сообщает о рисках. Координатор собирает результаты и решает, нужны ли дополнительные исправления.
Подход полезен для сложных задач с относительно независимыми этапами: анализа большой кодовой базы, подготовки миграций, проверки безопасности и ревью изменений. При этом разделение ролей само по себе не гарантирует более качественный код. Возникают накладные расходы на обмен контекстом, возможны противоречивые выводы и конфликты изменений.
Для короткой задачи один агент обычно проще и экономнее. Мультиагентная архитектура оправдана, когда выигрыш от специализации и параллельной работы превышает затраты на координацию.