Перейти к основному содержимому

For (Цикл While)

Нода For (внутренне -- While) реализует цикл с условием: рабочий процесс повторяет указанный участок, пока условие остается истинным или не будет достигнут лимит итераций.

Назначение​

  • Повторная обработка до достижения нужного результата
  • Итеративное улучшение ответа агента
  • Опрос внешнего API до получения результата
  • Реализация алгоритмов с несколькими проходами

Настройки​

Условие цикла​

Python-выражение, которое оценивается перед каждой итерацией. Цикл продолжается, пока условие возвращает True.

Примеры:

iteration < 10
lastOutput != "done"
input.score < 80 and iteration < 5

Максимум итераций​

Ограничение безопасности для защиты от бесконечных циклов. Диапазон: 1 -- 50. По умолчанию: 50.

Даже если условие цикла остается истинным, выполнение прервется по достижении этого лимита.

Доступные переменные​

ПеременнаяОписание
inputВходные данные процесса
lastOutputРезультат предыдущей итерации
node_XРезультат конкретной ноды
iterationТекущий номер итерации (начинается с 0)

Специальная переменная iteration доступна только в циклах и автоматически увеличивается с каждой итерацией.

Примеры условий​

На панели настроек доступна карточка Примеры с готовыми шаблонами:

  • Фиксированное количество итераций: iteration < 10
  • По результату: lastOutput != "complete"
  • Комбинированное: iteration < 5 and input.quality < 0.9

Подключения​

  • Вход: один вход (слева)
  • Выход «Продолжить»: оранжевая точка (верхняя) -- следующая итерация. Соедините с нодами тела цикла.
  • Выход «Прервать»: темная точка (нижняя) -- условие ложно или достигнут лимит. Соедините с нодами, которые выполнятся после цикла.

Организация цикла​

  1. Разместите ноду For на холсте.
  2. Соедините выход Продолжить с первой нодой тела цикла.
  3. Последнюю ноду тела цикла соедините обратно со входом ноды For (создав петлю).
  4. Соедините выход Прервать с нодами, которые должны выполниться после завершения цикла.

Входные данные​

Нода получает данные от предыдущей ноды или из предыдущей итерации.

Выходные данные​

Передает данные без изменений по выбранной ветке.

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

Итеративное улучшение текста​

Условие: iteration < 3

Тело цикла:
1. Агент генерирует текст
2. Модерация проверяет качество
3. If/Else: если качество < 8 → обратно к For
если качество >= 8 → выход из цикла

Опрос API до получения результата​

Условие: lastOutput.status != "ready" and iteration < 20

Тело цикла:
1. HTTP-запрос к API на проверку статуса
2. Функция: подождать 2 секунды
3. Обратно к For
Бесконечные циклы

Всегда устанавливайте разумное значение «Максимум итераций». Если условие всегда истинно, цикл остановится по лимиту. По умолчанию лимит составляет 50 итераций.

Доступ к номеру итерации

Переменная iteration доступна внутри тела цикла. Используйте ее в условиях, промптах и функциях для адаптации поведения к номеру прохода. Подробнее об итеративной обработке: ForEach.