Эволюция оркестрации Dynamic Workflows MAS
Главный барьер масштабирования MAS это контекстное окно оркестратора. Три ключевых этапа эволюции, чтобы вынести управление за пределы памяти LLM.
1. Sub-agents Последовательные вызовы в контексте Классическая схема: центральная модель поочерёдно создаёт субагентов для выполнения локальных подзадач.
Архитектура: Логика оркестрации целиком держится в контекстном окне LLM. Модель шаг за шагом «в уме» решает, кого вызывать следующим. Ограничение: Все технические логи и промежуточные результаты возвращаются в центральное контекстное окно. Память моментально забивается шумом, а масштабирование ограничивается 2–3 параллельными вызовами.
2. Agent Teams Командный p2p-контекст Шаг к децентрализации: создание малых групп агентов, взаимодействующих через общий список задач.
Архитектура: Агенты обмениваются сообщениями напрямую без участия центрального оркестратора на каждом шаге. Ограничение: Экспоненциальный рост коммуникационного оверхеда. Эффективный предел группы 3-5 агентов. Кроме того, состояние живёт только внутри активной сессии: сбой приводит к потере всего прогресса.
3. Dynamic Workflows Исполняемые скрипты и детерминированный рантайм План оркестрации больше не удерживается в “вероятностной памяти” LLM - он выносится из контекстного окна в исполняемый код.
Генерация сценария на лету: LLM получает глобальную цель, декомпозирует её и генерирует код оркестрации (на JavaScript/Python вместо вероятностных промптов). Сценарий строит жёсткий граф задач DAG с помощью базовых примитивов: agent() для вызова субагента, parallel() для выполнения и pipeline() для потоковой обработки без блокировок.
Изолированный рантайм: Скрипт исполняется во внешней изолированной среде. Это позволяет безопасно параллелить одновременно и запускать до 1000 агентов за один прогон.
Детерминизм и журнал: Внутри скрипта запрещены недетерминированные функции вроде Math.random(). Рантайм ведёт журнал вызовов (event sourcing), что гарантирует возобновляемость (resume): при сбое система берёт готовые результаты из кэша.
Состязательная верификация: Агенты параллельно атакуют и критикуют гипотезы друг друга, пока не достигнут сходимости решений.
Чистый контекст: Сотни промежуточных итераций остаются внутри переменных скрипта. Переменные скрипта (const results = [], map, filter, reduce) хранятся в обычной оперативной памяти процесса. В контекстное окно оркестратора возвращается только итоговый валидированный итоговый результат return функции скрипта или результат работы цепочки pipeline()