O bloco Loop é um container que roda os blocos dentro dele repetidamente — sobre cada item de uma coleção, um número fixo de vezes, ou enquanto uma condição vale. Solte blocos dentro dele e eles rodam uma vez por iteração. Iterações rodam uma após a outra; para trabalho concorrente, use um bloco Parallel.
Tipos de loop
Um loop For roda um número fixo de vezes. Defina a contagem de iterações.
Um loop ForEach roda uma vez por item em um array ou objeto, expondo o item atual como <loop.currentItem>.
Um loop While roda enquanto uma condição for verdadeira. A condição é checada antes de cada iteração, então o body pode rodar zero vezes.
Um loop Do-While roda o body uma vez e depois repete enquanto uma condição for verdadeira. A condição é checada depois de cada iteração, então o body sempre roda pelo menos uma vez.
Configuração
Defina o tipo de loop e depois o valor de que ele precisa:
- Iterations — quantas vezes rodar (loops For)
- Collection — o array ou objeto a iterar (loops ForEach)
- Condition — a expressão booleana a checar (loops While e Do-While)
Referenciando dados do loop
As referências diferem dentro do loop e depois dele.
Dentro do loop, leia a iteração atual com <loop.*>:
<loop.index>— o número da iteração, começando em 0<loop.currentItem>— o item atual (só ForEach)<loop.items>— a coleção completa (só ForEach)
const idx = <loop.index>; // 0, 1, 2, ...
const item = <loop.currentItem>; // the current itemEsses só estão disponíveis para blocos dentro do container do loop.
Depois do loop, leia os resultados coletados pelo nome do bloco loop — não <loop.*>:
// a loop named "Process Items"
const all = <processitems.results>; // [result1, result2, ...]O nome é normalizado — minúsculas, sem espaços. <loop.*> só funciona dentro.
Exemplos
Um loop ForEach pontua cada review e coleta os resultados; depois que o loop termina, um Agent resume <loop.results>. O mesmo container segura os blocos para qualquer tipo de loop:
- Processar resultados de API —
API (Fetch) → Loop (ForEach) → Agent (Analyze) → Function (Store) - Gerar variações —
Loop (5×) → Agent (Generate) → Evaluator (Score) → Function (Select best) - Contador com While —
Variables (i=0) → Loop (While i<10) → Agent (Process) → Variables (i++)
Aninhamento e limites
Containers aninham. Você pode colocar loops dentro de loops, parallels dentro de loops e qualquer combinação, para construir workflows multidimensionais.
Loops For e ForEach têm teto de 1.000 iterações. Loops While e Do-While rodam até a condição ser falsa, sem teto rígido — garanta que a condição eventualmente fique falsa para o loop terminar.
Boas práticas
- Use ForEach para coleções. Quando você tem um array ou objeto, ForEach é mais claro que um loop For com indexação manual.
- Mantenha contagens de iteração razoáveis. Cada iteração soma ao tempo total de execução, já que o loop roda sequencialmente.
- Use Parallel quando a ordem não importa. Trabalho independente sobre uma coleção roda mais rápido num bloco Parallel.
- Garanta uma saída. Para loops While e Do-While, garanta que a condição vai ficar falsa.