> For the complete documentation index, see [llms.txt](https://docs.airops.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.airops.com/docs/pt/acoes/workflow-concepts/workflow-steps/flow/iteration.md).

# Iteração

Execute uma etapa várias vezes sobre uma lista de objetos

## Como funciona o Passo de Iteração?

O Passo de Iteração executa o mesmo(s) passo(s) em cada entrada de uma lista. O único pré-requisito para usar um Passo de Iteração é garantir que os seus valores de entrada já tenham sido formatados num objeto de lista.

<figure><img src="https://31915162-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-f5cd41deb71c58a0a24a9b8fb83816aafcbcc13b%2FCleanShot%202025-05-22%20at%2008.22.37%402x.png?alt=media" alt=""><figcaption></figcaption></figure>

## O que é uma lista?

Uma lista é um tipo de dados específico com elementos separados por vírgulas que começa com `[` e termina com `]` . Por exemplo:

**Uma lista de números:**

```
[1,2,3,4,5]
```

**Uma lista de strings:**

```
["sales", "marketing", "finance"]
```

**Uma lista de objetos JSON:**

```
[
  {
    "link": "https://openai.com/",
    "title": "OpenAI",
    "source": "OpenAI"
  },
  {
    "link": "https://www.youtube.com/@OpenAI",
    "title": "OpenAI",
    "source": "YouTube"
  },
  {
    "link": "https://en.wikipedia.org/wiki/OpenAI",
    "title": "OpenAI",
    "source": "Wikipedia"
  }
]
```

## Como crio uma lista?

As listas podem ser geradas de várias maneiras diferentes, incluindo através de um passo de LLM, um passo de código, Pesquisa Google ou um passo de API. No final, depende do que funciona melhor para o seu caso de uso, e fornecemos alguns exemplos abaixo para ajudar.

### Criar uma lista através de um Passo de LLM

Como os nossos Passos de LLM permitem ajustar o prompt até alcançar o resultado desejado, basta especificar o formato da lista no seu prompt.

Vamos percorrer um exemplo de fluxo de trabalho que recebe um nome de país como entrada e devolve as 5 principais cidades desse país. Ajustaremos o fluxo de trabalho existente para devolver essas 5 principais cidades num formato de lista:

### Criar uma lista através de um Passo de Código

Como o nosso [Passo de Código](/docs/pt/acoes/workflow-concepts/workflow-steps/logic-steps/code.md) permite-lhe utilizar tanto Javascript como Python, pode codificar a sua instrução return para corresponder ao formato de lista desejado, por exemplo,

```javascript
return(["San Francisco", "New York City", "Miami"]);
```

### Gerar uma lista através de um Passo de Pesquisa Google

O nosso Passo de Pesquisa Google permite-lhe selecionar a formatação específica da sua pesquisa resultante:

<figure><img src="https://31915162-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-960126f632ad0e9b8d74fb78ce90516cc1f41631%2FCleanShot%202025-05-22%20at%2008.24.27%402x.png?alt=media" alt=""><figcaption></figcaption></figure>

O resultado do Passo de Pesquisa Google terá esta formatação:

```javascript
// Saída do Passo de Pesquisa Google apenas com links
[
  "https://www.mckinsey.com/featured-insights/mckinsey-explainers/what-is-prompt-engineering",
  "https://www.zdnet.com/article/six-skills-you-need-to-become-an-ai-prompt-engineer/",
  "https://www.techtarget.com/searchenterpriseai/definition/AI-prompt-engineer",
  "https://en.wikipedia.org/wiki/Prompt_engineering",
  "https://www.datacamp.com/blog/what-is-prompt-engineering-the-future-of-ai-communication",
  "https://www.iit.edu/blog/unlock-career-opportunities-ai-how-become-ai-prompt-engineer",
  "https://aws.amazon.com/what-is/prompt-engineering/",
  "https://hbr.org/2023/06/ai-prompt-engineering-isnt-the-future",
  "https://time.com/6272103/ai-prompt-engineer-job/",
  "https://www.promptingguide.ai/"
]
```

## O que são o elemento e o índice do elemento?

Um elemento é o objeto/valor real (por exemplo, string, número ou objeto) na sua lista.

O índice do elemento é a posição do elemento na lista, começando pelo primeiro elemento no índice 0.

<figure><img src="https://31915162-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-4408acba06b3cfdc596cb2ce5d449db605384407%2Fiteration_step_3.png?alt=media" alt=""><figcaption></figcaption></figure>

## Como faço referência ao elemento?

Pode referenciar o elemento clicando no pill `step_x.element` no seu Passo de Iteração:

<figure><img src="https://31915162-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-d2913c27c7511d6820930e2a6b233c1c3b824c24%2FCleanShot%202025-05-22%20at%2008.28.05%402x.png?alt=media" alt=""><figcaption></figcaption></figure>

No exemplo acima, o passo de LLM será executado 3 vezes, e o `{{step_1.element}]` será substituído por `vendas` , `marketing` , e `finanças` da seguinte forma:

* `Dê-me 3 personas no departamento de vendas`
* `Dê-me 3 personas no departamento de marketing`
* `Dê-me 3 personas no departamento de finanças`

## O índice do elemento é obrigatório?

O índice do elemento é opcional, mas pode ser usado para executar lógica poderosa.

Por exemplo, no caso do nosso redator de blog de SEO, usamos o `element_index` para nos ajudar a escrever as nossas introduções. Como o nosso objetivo é que o redator *escreva apenas para a primeira secção* do blogue, o índice do elemento é útil para aplicar o passo apenas nesse parágrafo.

Assim, adicionamos um [**Condicional** **Passo**](/docs/pt/acoes/workflow-concepts/workflow-steps/flow/conditional.md) com:

* `step_x.element_index == 0`

o que nos permite usar um Passo de LLM separado com a introdução apenas para a primeira secção do blogue.

## Como é que a saída se parece?

O passo de iteração também irá produzir uma lista.

A saída de cada iteração será adicionada à lista na mesma ordem da entrada.

## Como transformo a lista em texto?

Pode converter o array novamente em texto com um simples **Texto** passo que usa Liquid:

```liquid
// Substitua step_x.output

{% for chunk in step_x.output %}
{{chunk}}
{% endfor %}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.airops.com/docs/pt/acoes/workflow-concepts/workflow-steps/flow/iteration.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
