AACFlow

Цикл

Блок "Цикл" — это контейнер, который выполняет блоки повторно. Итерируйте по коллекциям, повторяйте операции фиксированное количество раз или продолжайте, пока выполняется условие.

Блоки "Цикл" являются контейнерными узлами, которые содержат другие блоки внутри себя. Содержащиеся блоки выполняются несколько раз на основе вашей конфигурации.

Параметры конфигурации

Тип цикла

Выберите между четырьмя типами циклов:

Цикл For (Итерации) — Числовой цикл, который выполняется фиксированное количество раз:

Цикл For с итерациями

Используйте это, когда вам нужно повторить операцию определенное количество раз.

Пример: Выполнить 5 раз
- Итерация 1
- Итерация 2
- Итерация 3
- Итерация 4
- Итерация 5

Цикл ForEach (Коллекция) — Цикл на основе коллекции, который итерирует по каждому элементу в массиве или объекте:

Цикл ForEach с коллекцией

Используйте это, когда вам нужно обработать коллекцию элементов.

Пример: Обработка ["apple", "banana", "orange"]
- Итерация 1: Обработка "apple"
- Итерация 2: Обработка "banana"
- Итерация 3: Обработка "orange"

Цикл While (На основе условия) — Продолжает выполнение, пока условие оценивается как true:

Цикл While с условием

Используйте это, когда вам нужно циклически выполнять, пока не будет выполнено определенное условие. Условие проверяется перед каждой итерацией.

Пример: While {"<variable.i>"} < 10
- Проверка условия → Выполнение, если true
- Внутри цикла: Увеличение {"<variable.i>"}
- Внутри цикла: Блок "Переменные" присваивает i = {"<variable.i>"} + 1
- Проверка условия → Выполнение, если true
- Проверка условия → Выход, если false

Цикл Do-While (На основе условия) — Выполняется хотя бы один раз, затем продолжается, пока условие истинно:

Цикл Do-While с условием

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

Пример: Do-while {"<variable.i>"} < 10
- Выполнение блоков
- Внутри цикла: Увеличение {"<variable.i>"}
- Внутри цикла: Блок "Переменные" присваивает i = {"<variable.i>"} + 1
- Проверка условия → Продолжение, если true
- Проверка условия → Выход, если false

Как использовать циклы

Создание цикла

  1. Перетащите блок "Цикл" с панели инструментов на ваш холст
  2. Настройте тип цикла и параметры
  3. Перетащите другие блоки внутрь контейнера цикла
  4. Подключите блоки по мере необходимости

Ссылки на данные цикла

Существует важное различие между ссылками на данные цикла внутри и снаружи цикла:

Внутри цикла используйте ссылки <loop.> для доступа к контексту текущей итерации:

  • <loop.index>: Номер текущей итерации (начиная с 0)
  • <loop.currentItem>: Текущий обрабатываемый элемент (только для ForEach)
  • <loop.items>: Полная коллекция, по которой итерируется (только для ForEach)
// Внутри блока "Функция" внутри цикла
const idx = <loop.index>;           // 0, 1, 2, ...
const item = <loop.currentItem>;    // Текущий элемент

Эти ссылки доступны только для блоков внутри контейнера цикла. Они дают вам доступ к контексту текущей итерации.

Снаружи цикла (после его завершения) ссылайтесь на блок "Цикл" по его имени для доступа к агрегированным результатам:

  • <LoopBlockName.results>: Массив результатов из всех итераций
// Если ваш цикл называется "Process Items"
const allResults = <processitems.results>;
// Возвращает: [result1, result2, result3, ...]

После завершения цикла используйте имя блока (не loop.) для доступа к собранным результатам. Имя блока нормализуется (нижний регистр, без пробелов).

Примеры использования

Обработка результатов API — Цикл ForEach обрабатывает записи клиентов из API

API (Fetch) → Loop (ForEach) → Agent (Analyze) → Function (Store)

Итеративная генерация контента — Цикл For генерирует несколько вариаций контента

Loop (5x) → Agent (Generate) → Evaluator (Score) → Function (Select Best)

Счетчик с циклом While — Цикл While обрабатывает элементы со счетчиком

Variables (i=0) → Loop (While i<10) → Agent (Process) → Variables (i++)

Расширенные возможности

Ограничения

Контейнерные блоки (Циклы и Параллельное выполнение) поддерживают вложенность. Вы можете размещать циклы внутри циклов, параллельные блоки внутри циклов и любую комбинацию контейнерных блоков для построения сложных многомерных воркфлоу.

Циклы выполняются последовательно, а не параллельно. Если вам нужно конкурентное выполнение, используйте вместо этого блок "Параллельное выполнение".

Входные и выходные данные

  • Тип цикла: Выберите между 'for', 'forEach', 'while' или 'doWhile'

  • Итерации: Количество раз для выполнения (циклы for)

  • Коллекция: Массив или объект для итерации (циклы forEach)

  • Условие: Булево выражение для оценки (циклы while/do-while)

Доступно только внутри цикла:

  • <loop.index>: Номер текущей итерации (начиная с 0)

  • <loop.currentItem>: Текущий обрабатываемый элемент (только для forEach)

  • <loop.items>: Полная коллекция (только для forEach)

  • <blockname.results>: Массив всех результатов итераций (доступ через имя блока)

  • Структура: Результаты сохраняют порядок итераций

  • Доступ: Доступно в блоках после завершения цикла

Рекомендации

  • Устанавливайте разумные лимиты: Сохраняйте количество итераций разумным, чтобы избежать длительного времени выполнения
  • Используйте ForEach для коллекций: При обработке массивов или объектов используйте ForEach вместо циклов For
  • Обрабатывайте ошибки корректно: Рассмотрите добавление обработки ошибок внутри циклов для надежных воркфлоу

Common Questions

On this page

Начните создавать сегодня
Нам доверяют более 100 000 разработчиков.
SaaS-платформа для создания AI-агентов и управления агентным workforce.
Начать