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
Подключения
- Вход: один вход (слева)
- Выход «Продолжить»: оранжевая точка (верхняя) -- следующая итерация. Соедините с нодами тела цикла.
- Выход «Прервать»: темная точка (нижняя) -- условие ложно или достигнут лимит. Соедините с нодами, которые выполнятся после цикла.
Организация цикла
- Разместите ноду For на холсте.
- Соедините выход Продолжить с первой нодой тела цикла.
- Последнюю ноду тела цикла соедините обратно со входом ноды For (создав петлю).
- Соедините выход Прервать с нодами, которые должны выполниться после завершения цикла.
Входные данные
Нода получает данные от предыдущей ноды или из предыдущей итерации.
Выходные данные
Передает данные без изменений по выбранной ветке.
Примеры использования
Итеративное улучшение текста
Условие: 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.