Skip to content

Exit Loop 노드

Exit Loop는 실행 경로가 이 노드에 도달했음을 표시해 현재 Loop가 다음 회차를 시작하지 않도록 합니다. 보통 Condition의 특정 분기에 연결해 최대 반복 횟수보다 일찍 Loop를 끝낼 때 사용합니다.

언제 사용하나요?

  • 본문 실행 중 성공, 승인, 결과 발견 같은 즉시 종료 신호가 생겼을 때
  • 여러 종료 조건 중 특정 분기를 시각적으로 명확하게 표현할 때
  • 남은 최대 반복 횟수와 관계없이 현재 결과로 Loop를 마치려 할 때

단순한 값 비교로 회차를 끝낼 수 있다면 Loop의 종료 조건만으로도 충분합니다. 특정 Condition 경로에 도달했을 때 종료한다는 흐름을 캔버스에 드러내고 싶다면 Exit Loop를 사용하세요.

입력

Exit Loop에는 설정할 데이터 입력이 없습니다. 앞선 내부 노드 또는 Condition의 선택된 분기에서 들어오는 실행 연결만 받습니다.

Exit Loop에 도달하기 전에 Variable Assigner로 갱신한 Loop 변수는 그대로 유지됩니다.

주요 설정

Exit Loop에는 별도의 설정 패널이나 설정값이 없습니다. 캔버스에서 Loop 내부의 종료 경로 끝에 배치하고 연결합니다.

조건부로 종료하려면 다음처럼 구성합니다.

text
Condition ── 성공 분기 ──> Exit Loop
          └─ 계속 분기 ──> 다음 처리 노드

출력

Exit Loop 자체는 업무 데이터 출력을 만들지 않습니다. Loop는 종료 시점까지 갱신된 Loop 변수와 마지막 실행 회차인 loop_round를 최종 출력으로 반환합니다.

json
{
  "result": "승인된 결과",
  "loop_round": 2
}

연결과 배치 제약

  • Exit Loop는 반드시 Loop 본문 안에 있어야 합니다.
  • 루트 워크플로우나 Iteration 본문에는 배치할 수 없습니다.
  • 하나의 Loop에는 Exit Loop를 최대 하나만 둘 수 있습니다.
  • Exit Loop는 종료 노드이므로 나가는 연결선을 가질 수 없습니다.
  • 연결선은 Loop 경계를 가로지를 수 없습니다.
  • Iteration이나 Loop 안에 또 다른 반복 컨테이너를 중첩할 수 없습니다.

예시

최대 10번 검색하되 원하는 결과를 찾으면 일찍 종료하는 흐름을 구성해 보겠습니다.

  1. Loop 본문에서 HTTP, Tool 또는 Retriever 노드로 결과를 조회합니다.
  2. Condition에서 결과가 충분한지 판단합니다.
  3. 충분한 분기를 Variable Assigner에 연결해 최종 결과를 Loop 변수에 저장합니다.
  4. 그 다음 Exit Loop에 연결합니다.
  5. 부족한 분기는 검색 조건을 갱신하는 노드로 연결합니다.

두 번째 회차에 Exit Loop 경로가 실행되면 Loop는 세 번째 회차를 시작하지 않고, 두 번째 회차까지 갱신된 변수와 loop_round: 2를 반환합니다.

주의사항

  • Exit Loop에 도달해도 같은 회차에서 이미 활성화된 다른 진입 경로나 분기는 끝까지 실행됩니다. Exit Loop는 다음 회차를 막는 역할이며, 현재 회차의 모든 실행을 강제로 취소하는 노드가 아닙니다.
  • Condition의 다른 분기가 선택되어 Exit Loop가 실행되지 않으면 Loop는 종료 조건이나 최대 반복 횟수에 따라 계속됩니다.
  • Exit Loop 뒤에는 노드를 연결할 수 없습니다. 종료 전에 저장해야 할 값은 Exit Loop 앞의 Variable Assigner에서 갱신하세요.
  • 내부 노드 오류가 먼저 발생하면 Loop의 fail-fast 정책에 따라 Exit Loop와 관계없이 전체 Loop가 실패합니다.

관련 노드

  • Loop: Exit Loop를 포함하고 최종 변수 상태를 반환합니다.
  • Condition: Exit Loop를 실행할 조건부 경로를 만듭니다.
  • Variable Assigner: 종료 전에 보존할 Loop 변수를 갱신합니다.
  • Iteration: 종료 조건 없이 배열 항목을 독립적으로 반복합니다.