Map-узел (fan-out)
Узел Map выполняет целевой агент или инструмент один раз для каждого элемента массива, затем собирает результаты. Подходит для пакетной обработки и сценариев «список → обработка каждого → сбор».
Назначение
Map выполняет целевой узел (agent или tool) один раз для каждого элемента массива
из входных данных. Результаты собираются в массив в поле items выхода узла.
Типичные сценарии:
- Генерация списка идей → фильтр лучших → реализация каждой идеи отдельным агентом
- Пакетная обработка: список элементов → обработка каждого → сбор результатов
- Параллельные ветки с одинаковой логикой, но разными данными
Параметры узла
array_path(обязательно) — JSONPath к массиву во входных данных, напр.$.items,$.ideas,$.filtered.target_node_id(обязательно) — ID узла типаagentилиtool, который будет вызван для каждого элемента.parallel(опционально) — зарезервировано для будущей поддержки параллельного выполнения.
Целевой узел не должен иметь входящих рёбер в основном графе — он вызывается только map-узлом.
Поведение при выполнении
- Map объединяет выходы upstream-узлов и извлекает массив по
array_path. - Для каждого элемента: передаёт его как вход целевому узлу, выполняет узел, добавляет результат в список.
- Выход map-узла:
{ "items" => [ результат_1, результат_2, ... ] }.
Пример схемы
Схема «идеи → фильтр → реализация каждой»:
trigger → ideas_agent → filter_agent → map_impl → output
│
└── target: impl_agent
filter_agent возвращает, напр. { "filtered" => ["Идея 1", "Идея 3"] }.
Map с array_path: "$.filtered" и target_node_id: "impl_agent"
вызовет impl_agent дважды; результаты попадут в output.items.
В редакторе DAG добавьте узел Map кнопкой «+ Map» и укажите array_path
и целевой узел (agent или tool) в боковой панели.