Паттерн Event-Driven Choreography (хореография агентов)

Обычно мультиагентную систему строят через оркестратор: центральный граф решает, какой агент работает следующим. У хореографии другой принцип. Центра нет, агенты подписаны на события в общей шине и сами публикуют новые. Поток задачи складывается из подписок агентов.

Зачем она нужна Когда агентов и команд много и каждая развивает свой сервис независимо. Добавить нового агента это просто подписать его на нужное событие. Остальную систему трогать не надо. Когда использовать: динамические задачи, простые линейные цепочки, масштабируемые системы, свободный брейншторм

Плюсы   Слабая связанность: агенты не знают друг о друге, только о событиях.   Горизонтальное масштабирование: у каждого агента свой пул и своя скорость.   Нет единой точки отказа в виде оркестратора.   Агентов легко добавлять и заменять, в том числе чужие сервисы.

Минусы: Процесс нигде не описан целиком, его видно только по трассировке. Сложно поставить задачу на паузу и дождаться решения человека. Аудит «почему система так решила» требует отдельной работы.

Риски: Неявные циклы. Остановить это может только hop_count или TTL в самом событии. Неконтролируемый расход LLM. Каждый агент вызывает модель сам, общего бюджета нет. Число вызовов растёт с каждым отклонением. Потерянные события. Без DLQ и идемпотентности сбой одного агента молча обрывает задачу или приводит к повторной обработке. Отладка. Без correlation_id восстановить путь задачи почти невозможно.

На практике их комбинируют: ядро на оркестраторе, а внешние системы подключены через события.

Паттерн Event-Driven Choreography (хореография агентов) | Сетка — социальная сеть от hh.ru Паттерн Event-Driven Choreography (хореография агентов) | Сетка — социальная сеть от hh.ru