Map-узел (fan-out)

Узел Map выполняет целевой агент или инструмент один раз для каждого элемента массива, затем собирает результаты. Подходит для пакетной обработки и сценариев «список → обработка каждого → сбор».

Назначение

Map выполняет целевой узел (agent или tool) один раз для каждого элемента массива из входных данных. Результаты собираются в массив в поле items выхода узла.

Типичные сценарии:

  • Генерация списка идей → фильтр лучших → реализация каждой идеи отдельным агентом
  • Пакетная обработка: список элементов → обработка каждого → сбор результатов
  • Параллельные ветки с одинаковой логикой, но разными данными

Параметры узла

  • array_path (обязательно) — JSONPath к массиву во входных данных, напр. $.items, $.ideas, $.filtered.
  • target_node_id (обязательно) — ID узла типа agent или tool, который будет вызван для каждого элемента.
  • parallel (опционально) — зарезервировано для будущей поддержки параллельного выполнения.

Целевой узел не должен иметь входящих рёбер в основном графе — он вызывается только map-узлом.

Поведение при выполнении

  1. Map объединяет выходы upstream-узлов и извлекает массив по array_path.
  2. Для каждого элемента: передаёт его как вход целевому узлу, выполняет узел, добавляет результат в список.
  3. Выход 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) в боковой панели.

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