Loop 노드 — 점진적 개선을 위한 반복 실행
Loop 노드 — 점진적 개선을 위한 반복 실행
Loop 노드는 각 주기가 이전 주기의 결과를 바탕으로 실행되는 반복 워크플로를 수행합니다. Iteration이 배열 요소를 독립적으로 처리하는 것과 달리, 루프는 반복할 때마다 진화하는 점진적(progressive) 워크플로를 만듭니다.
출처: 공식문서 — Loop Node
Loop vs Iteration
두 반복 패턴을 언제 써야 하는지 이해하는 게 핵심입니다.
Loop
- 순차 처리 — 각 주기가 이전 결과에 의존
- 점진적 개선 — 출력이 반복을 거치며 향상·진화
- 상태 관리 — 변수가 주기 사이에 유지·누적
- 활용 사례 — 콘텐츠 다듬기, 문제 해결, 품질 보증
Iteration
- 독립 처리 — 각 항목을 별도로 처리
- 병렬 실행 — 항목을 동시에 처리 가능
- 배치 연산 — 여러 데이터 포인트에 같은 연산 적용
- 활용 사례 — 데이터 변환, 대량 처리, 병렬 분석
설정
루프 변수
루프 반복 사이에 유지되고 루프 완료 후에도 접근 가능한 변수를 정의합니다. 이 변수들이 상태를 유지하고 점진적 워크플로를 가능하게 해요.
종료 조건
루프가 언제 멈출지 구성합니다.
Loop Termination Condition — 언제 빠져나갈지 결정하는 표현식 (예: quality_score > 0.9)
Maximum Loop Count — 무한 루프를 막는 안전장치
Exit Loop Node — 이 노드에 도달하면 즉시 종료
루프는 종료 조건이 충족되거나, 최대 횟수에 도달하거나, Exit Loop 노드가 실행될 때 종료됩니다. 조건을 지정하지 않으면 최대 횟수까지 루프가 계속됩니다.
기본 루프 예시
50보다 작은 수를 찾을 때까지 난수를 생성합니다.
워크플로 단계
- Code 노드가 1~100 사이의 정수 난수 생성
- If-Else 노드가 숫자가 50보다 작은지 확인
- Template 노드가 50 미만 숫자에 "done"을 반환해 루프 종료 트리거
- 종료 조건이 충족될 때까지 루프 계속
고급 루프 예시
이전 버전을 바탕으로 각 버전을 다듬는 방식으로 시를 만듭니다.
루프 변수
num— 0에서 시작해 반복마다 증가하는 카운터verse— 현재 시 버전을 담는 텍스트 변수
워크플로 로직
- If-Else 노드가
num > 3인지 확인해 언제 빠져나갈지 결정 - LLM 노드가 이전 버전을 바탕으로 개선된 시 생성
- Variable Assigner가 카운터와 시 콘텐츠를 모두 갱신
- Exit Loop 노드가 4번의 다듬기 주기 후 종료
LLM 프롬프트는 현재 절과 반복 컨텍스트를 모두 참조합니다.
You are a European literary figure creating poetic verses.
Current verse: {{verse}}
Refine and improve this poem based on your previous work.