

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie um fluxo de trabalho end-to-end generativo de IA com o Amazon Bedrock Flows
<a name="flows"></a>

O Amazon Bedrock Flows oferece a capacidade de você usar modelos básicos suportados (FMs) para criar fluxos de trabalho vinculando solicitações, modelos básicos e outros AWS serviços para criar soluções. end-to-end

Com fluxos, você pode criar rapidamente fluxos de trabalho complexos de IA generativa usando um criador visual, integrar-se facilmente às ofertas do Amazon Bedrock FMs, como bases de conhecimento e outros AWS serviços, transferindo dados entre elas e implantando fluxos de trabalho imutáveis para passar do teste à produção em poucos cliques. AWS Lambda 

Consulte os seguintes recursos para ter mais informações sobre o recurso Fluxos do Amazon Bedrock:
+ Os preços do recurso Fluxos do Amazon Bedrock dependem dos recursos usados. Por exemplo, se você invocar um fluxo com um nó de prompt que usa um modelo do Amazon Titan, receberá cobrança pela invocação desse modelo. Para obter mais informações, consulte [Preços do Amazon Bedrock](https://aws.amazon.com/bedrock/pricing/).
+ Para ver as cotas de fluxos, consulte [Endpoints e cotas do Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html) no Referência geral da AWS.

Veja alguns exemplos de tarefas para as quais é possível criar um fluxo no Amazon Bedrock:
+ **Criar e enviar um convite por e-mail**: crie um fluxo conectando um nó de prompt, um nó de base de conhecimento e um nó de função do Lambda. Forneça o seguinte prompt para gerar um corpo de e-mail: **Send invite to John Smith’s extended team for in-person documentation read for an hour at 2PM EST next Tuesday**. Depois de processar o prompt, o fluxo consulta uma base de conhecimento para pesquisar os endereços de e-mail da equipe estendida de John Smith e envia a entrada a uma função do Lambda para que ela encaminhe o convite a todos os membros da equipe na lista.
+ **Solucionar problemas usando a mensagem de erro e o ID do recurso que está causando o erro**: o fluxo pesquisa as possíveis causas do erro em uma base de conhecimento de documentação, extrai os logs do sistema e outras informações relevantes sobre o recurso e atualiza as configurações e os valores falhos do recurso.
+ **Gerar relatórios**: crie um fluxo para gerar métricas para os principais produtos. O fluxo procura as métricas de vendas em um banco de dados, agrega as métricas, gera um relatório resumido das principais compras de produtos e publica o relatório no portal especificado.
+ **Ingerir dados de um conjunto de dados especificado**: forneça um prompt, como o seguinte: **Start ingesting new datasets added after 3/31 and report failures**. O fluxo começa a preparar os dados para ingestão e continua relatando o status. Após a conclusão da preparação dos dados, o fluxo inicia o processo de ingestão, filtrando os dados com falha. Após a conclusão da ingestão de dados, o fluxo resume as falhas e publica um relatório de falhas.

O Flows for Amazon Bedrock facilita a vinculação de modelos básicos (FMs), solicitações e outros AWS serviços para criar, testar e executar rapidamente seus fluxos. Você pode gerenciar fluxos usando o construtor visual no console Amazon Bedrock ou por meio do APIs. 

As etapas gerais para criar, testar e implantar um fluxo são as seguintes:

**Crie o fluxo:**

1. Especifique um nome, uma descrição e as permissões apropriadas do IAM para o fluxo.

1. Crie o fluxo determinando os nós que deseja usar.

1. Crie ou defina todos os recursos necessários para cada nó. Por exemplo, se você planeja usar uma AWS Lambda função, defina as funções necessárias para que o nó conclua sua tarefa.

1. Adicione nós ao fluxo, configure-os e crie conexões entre os nós vinculando a saída de um nó à entrada de outro nó no fluxo.

**Teste o fluxo:**

1. Prepare o fluxo para que as alterações mais recentes se apliquem ao *rascunho de trabalho* do fluxo, uma versão do fluxo que é possível usar para testar e atualizar iterativamente o fluxo.

1. Teste o fluxo invocando-o com entradas de exemplo para ver as saídas produzidas.

1. Quando a configuração de um fluxo estiver adequada, você poderá criar um snapshot dele publicando uma *versão*. A versão preserva a definição do fluxo na forma como está no momento da criação. As versões são imutáveis porque atuam como um snapshot do fluxo no momento da criação.

**Implante o fluxo:**

1. Crie um alias que aponte para a versão do fluxo que deseja usar na aplicação.

1. Configure a aplicação para fazer solicitações `InvokeFlow` ao alias. Se for necessário reverter para uma versão mais antiga ou atualizar para uma mais nova, será possível alterar a configuração de roteamento do alias.

**Topics**
+ [Como o recurso Fluxos do Amazon Bedrock funciona](flows-how-it-works.md)
+ [Regiões e modelos compatíveis com fluxos](flows-supported.md)
+ [Pré-requisitos do recurso Fluxos do Amazon Bedrock](flows-prereq.md)
+ [Criar e planejar um fluxo no Amazon Bedrock](flows-create.md)
+ [Visualizar informações sobre fluxos no Amazon Bedrock](flows-view.md)
+ [Modificar um fluxo no Amazon Bedrock](flows-modify.md)
+ [Incluir barreiras de proteção em um fluxo no Amazon Bedrock](flows-guardrails.md)
+ [Testar um fluxo no Amazon Bedrock](flows-test.md)
+ [Executar fluxos do Amazon Bedrock de forma assíncrona com execuções de fluxo](flows-create-async.md)
+ [Implantar um fluxo em sua aplicação usando versões e aliases](flows-deploy.md)
+ [Invocar uma AWS Lambda função de um fluxo do Amazon Bedrock em uma conta diferente AWS](flow-cross-account-lambda.md)
+ [Conversar com um fluxo do Amazon Bedrock](flows-multi-turn-invocation.md)
+ [Executar exemplos de código do recurso Fluxos do Amazon Bedrock](flows-code-ex.md)
+ [Excluir um fluxo do Amazon Bedrock](flows-delete.md)

# Como o recurso Fluxos do Amazon Bedrock funciona
<a name="flows-how-it-works"></a>

O recurso Fluxos do Amazon Bedrock permite criar fluxos de trabalho de IA generativa conectando nós, em que cada um corresponde a uma etapa do fluxo que invoca um recurso do Amazon Bedrock ou recurso relacionado. Para definir entradas em nós e saídas de nós, use expressões para especificar como a entrada é interpretada. Para compreender melhor esses conceitos, analise os seguintes tópicos:

**Topics**
+ [Definições de chave para Fluxos do Amazon Bedrock](key-definitions-flow.md)
+ [Usar expressões para definir entradas extraindo a parte relevante de uma entrada inteira nos fluxos do Amazon Bedrock](flows-expressions.md)
+ [Tipos de nó para o fluxo](flows-nodes.md)

# Definições de chave para Fluxos do Amazon Bedrock
<a name="key-definitions-flow"></a>

A lista a seguir apresenta os conceitos básicos do recurso Fluxos do Amazon Bedrock.
+ **Fluxo**: um fluxo é um constructo que consiste em um nome, descrição, permissões, uma coleção de nós e as conexões entre os nós. Quando um fluxo é invocado, a entrada na invocação é enviada por cada nó do fluxo até que um nó de saída seja alcançado. A resposta da invocação exibe a saída final.
+ **Nó**: um nó é uma etapa dentro de um fluxo. Para cada nó, você configura o nome, a descrição, a entrada, a saída e quaisquer configurações adicionais. A configuração de um nó difere de acordo com o seu tipo. Para saber mais sobre os diferentes tipos de nó, consulte [Tipos de nó para o fluxo](flows-nodes.md).
+ **Conexão**: dois tipos de conexão são usados no recurso Fluxos do Amazon Bedrock:
  + Uma **conexão de dados** é desenhada entre a saída de um nó (o *nó de origem*) e a entrada de outro nó (o *nó de destino*) e envia os dados de um nó precedente a um nó subsequente. No console do Amazon Bedrock, as conexões de dados são linhas cinzas sólidas.
  + Uma **conexão condicional** é desenhada entre uma condição em um nó de condição e um nó subsequente e enviará os dados do nó que precede o nó de condição a um nó subsequente, se a condição for atendida. No console do Amazon Bedrock, as conexões condicionais são linhas roxas pontilhadas.
+ **Expressões**: uma expressão define como extrair uma entrada da entrada inteira que entra em um nó. Para aprender a escrever expressões, consulte [Usar expressões para definir entradas extraindo a parte relevante de uma entrada inteira nos fluxos do Amazon BedrockDefinir entradas com expressões](flows-expressions.md).
+ **Construtor de fluxo**: o construtor de fluxo é uma ferramenta no console do Amazon Bedrock para criar e editar fluxos por meio de uma interface visual. Você usa a interface visual para arrastar e soltar nós na interface e configurar entradas e saídas desses nós para definir o fluxo.
+ As seções abaixo exploram os seguintes termos:
  + **Entrada inteira**: a entrada inteira que é enviada do nó anterior para o nó atual.
  + **Precedente**: refere-se aos nós que ocorrem na parte anterior no fluxo.
  + **Subsequente**: refere-se aos nós que ocorrem na parte posterior do fluxo.
  + **Entrada**: um nó pode ter várias entradas. Use expressões para extrair as partes relevantes da entrada inteira a serem usadas em cada entrada individual. No construtor de fluxo do console do Amazon Bedrock, uma entrada aparece como um círculo na borda esquerda de um nó. Conecte cada entrada a uma saída de um nó precedente.
  + **Saída**: um nó pode ter várias saídas. No construtor de fluxo do console do Amazon Bedrock, uma saída aparece como um círculo na borda direita de um nó. Conecte cada saída a pelo menos uma entrada em um nó subsequente.
  + **Ramificação**: se uma saída de um nó for enviada para mais de um nó, ou se um nó de condição for incluído, o caminho de um fluxo será dividido em várias ramificações. Potencialmente, cada ramificação pode produzir outra saída na resposta de invocação do fluxo.

# Usar expressões para definir entradas extraindo a parte relevante de uma entrada inteira nos fluxos do Amazon Bedrock
<a name="flows-expressions"></a>

Ao configurar as entradas de um nó, defina-as em relação à entrada inteira que entrará no nó. A entrada inteira pode ser uma string, um número, um booliano, uma matriz ou um objeto. Para definir uma entrada em relação à entrada inteira, use um subconjunto de expressões compatíveis com base no [JsonPath](https://github.com/json-path/JsonPath). Cada expressão deve começar com `$.data`, que se refere à entrada inteira. Observe o seguinte ao usar expressões:
+ Se a entrada inteira for uma string, um número ou um booliano, a única expressão que será possível usar para definir uma entrada individual é `$.data`
+ Se a entrada inteira for uma matriz ou um objeto, será possível extrair uma parte dela para definir uma entrada individual.

Como exemplo para compreender como usar expressões, digamos que a entrada inteira seja o seguinte objeto JSON:

```
{
    "animals": {
        "mammals": ["cat", "dog"],
        "reptiles": ["snake", "turtle", "iguana"]
    },
    "organisms": {
        "mammals": ["rabbit", "horse", "mouse"],
        "flowers": ["lily", "daisy"]
    },
    "numbers": [1, 2, 3, 5, 8]
}
```

É possível usar as seguintes expressões para extrair uma parte da entrada (os exemplos se referem ao que seria retornado do objeto JSON anterior):


****  

| Expressão | Significado | Exemplo | Resultado do exemplo | 
| --- | --- | --- | --- | 
| \$1.data | A entrada inteira. | \$1.data | O objeto inteiro | 
| name | O valor de um campo chamado nome em um objeto JSON. | \$1.data.numbers | [1, 2, 3, 5, 8] | 
| [int] | O membro no índice especificado por int em uma matriz. | \$1.data.animals.reptiles[2] | iguana | 
| [int1, int2, ...] | Os membros no índice especificado por cada int em uma matriz. | \$1.data.numbers[0, 3] | [1, 5] | 
| [int1:int2] | Uma matriz que consiste nos itens nos índices entre int1 (inclusive) e int2 (exclusive) em uma matriz. Omitir int1 ou int2 é equivalente a marcar o início ou o fim da matriz. | \$1.data.organisms.mammals[1:] | [“cavalo”, “rato”] | 
| \$1 | Um caractere curinga que pode ser usado no lugar de um nome ou int. Se houver vários resultados, os resultados serão retornados em uma matriz. | \$1.data.\$1.mammals | [[“gato”, “cachorro”], [“coelho”, “cavalo”, “rato”]] | 

# Tipos de nó para o fluxo
<a name="flows-nodes"></a>

O Amazon Bedrock fornece os tipos de nó a seguir para criar um fluxo. Ao configurar um nó, forneça os seguintes campos:
+ Nome: insira um nome para o nó.
+ Tipo: no console, você arrasta e solta o tipo de nó a ser usado. Na API, use o `type` campo e o correspondente [FlowNodeConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNodeConfiguration.html)no `configuration` campo.
+ Entradas: forneça as seguintes informações para cada entrada:
  + Nome: um nome para a entrada. Alguns nós têm nomes ou tipos predefinidos que você deve usar. Para saber quais têm nomes predefinidos, consulte [Tipos de nó lógico](#flows-nodes-logic-table).
  + Expressão: defina a parte de toda a entrada a ser usada como a entrada individual. Para obter mais informações, consulte [Usar expressões para definir entradas extraindo a parte relevante de uma entrada inteira nos fluxos do Amazon BedrockDefinir entradas com expressões](flows-expressions.md).
  + Tipo: o tipo de dados para a entrada. Quando esse nó é alcançado em tempo de execução, o Amazon Bedrock aplica a expressão a toda a entrada e valida se o resultado corresponde ao tipo de dados.
+ Saídas: fornece as seguintes informações para cada saída:
  + Nome: um nome para a saída. Alguns nós têm nomes ou tipos predefinidos que você deve usar. Para saber quais têm nomes predefinidos, consulte [Tipos de nó lógico](#flows-nodes-logic-table).
  + Tipo: o tipo de dados para a saída. Quando esse nó é alcançado em tempo de execução, o Amazon Bedrock valida se a saída do nó corresponde ao tipo de dados.
+ Configuração: no console, você define campos específicos do nó na parte superior do nó. Na API, use o apropriado [FlowNodeConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNodeConfiguration.html)e preencha seus campos.

Cada tipo de nó é descrito abaixo, e a estrutura na API é fornecida. Expanda uma seção para saber mais sobre esse tipo de nó.

## Nós para controlar a lógica do fluxo
<a name="flows-nodes-logic"></a>

Use os tipos de nó a seguir para controlar a lógica do fluxo.

### Nó de entrada do fluxo
<a name="flows-nodes-input"></a>

Cada fluxo só contém um nó de entrada do fluxo e deve começar com ele. O nó de entrada do fluxo obtém o `content` da solicitação `InvokeFlow`, valida o tipo de dados e o envia ao nó subsequente.

Veja a seguir a estrutura geral de um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto de entrada na API:

```
{
    "name": "string",
    "type": "Input",
    "outputs": [
        {
            "name": "document",
            "type": "String | Number | Boolean | Object | Array",
        }
    ],
    "configuration": {
        "input": CONTEXT-DEPENDENT
    }
}
```

### Nó de saída do fluxo
<a name="flows-nodes-output"></a>

Um nó de saída do fluxo extrai os dados de entrada do nó anterior, com base na expressão definida, e os retorna. No console, a saída será a resposta retornada depois de escolher **Executar** na janela de teste. Na API, a saída é retornada no campo `flowOutputEvent` do `content` na resposta `InvokeFlow`. Um fluxo pode ter vários nós de saída de fluxo.

Um fluxo pode ter vários nós de saída do fluxo se houver várias ramificações no fluxo.

O seguinte mostra a estrutura geral de um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto de saída:

```
{
    "name": "string",
    "type": "Output",
    "inputs": [
        {
            "name": "document",
            "type": "String | Number | Boolean | Object | Array",
            "expression": "string"
        }
    ],
    "configuration": {
        "output": CONTEXT-DEPENDENT
    }
}
```

### Nó de condição
<a name="flows-nodes-condition"></a>

Um nó de condição envia dados do nó anterior para nós diferentes, dependendo das condições definidas. Um nó de condição pode obter várias entradas.

Para ver um exemplo, consulte [Criar um fluxo com um nó de condição](flows-ex-condition.md).

**Como definir um nó de condição**

1. Adicione quantas entradas você precisar para avaliar as condições que você pretende adicionar.

1. Insira um nome para cada entrada, especifique o tipo esperado e escreva uma expressão para extrair a parte relevante de toda a entrada.

1. Conecte cada entrada a uma saída relevante de um nó precedente.

1. Adicione quantas condições você precisar.

1. Para cada condição:

   1. Insira um nome para a condição.

   1. Use operadores lógicos e relacionais para definir uma condição que compara entradas com outras entradas ou com uma constante.
**nota**  
As condições são avaliadas na ordem. Se mais de uma condição for atendida, a condição anterior terá precedência.

   1. Conecte cada condição ao nó subsequente para o qual você deseja enviar os dados, se essa condição for atendida.

#### Expressões de condição
<a name="flows-nodes-condition-expr"></a>

Para definir uma condição, você se refere a uma entrada pelo nome e a compara com um valor usando qualquer um dos seguintes operadores relacionais:


****  

| Operador | Significado | Tipos de dados compatíveis | Exemplo de uso | Significado do exemplo | 
| --- | --- | --- | --- | --- | 
| == | Igual a (o tipo de dados também deve ser igual a) | String, número, booliano | A == B | Se A for igual a B | 
| \$1= | Não é igual a | String, número, booliano | A \$1= B | Se A não for igual a B | 
| > | Maior que | Número | A > B | Se A for maior que B | 
| >= | Maior ou igual a | Número | A >= B | Se A for maior que ou igual a B | 
| < | Menor que | Número | A < B | Se A for menor que B | 
| <= | Menor ou igual a | Número | A <= B | Se A for menor que ou igual a B | 

Você pode comparar entradas com outras entradas ou com uma constante em uma expressão condicional. Por exemplo, se você tiver uma entrada numérica chamada `profit` e outra chamada `expenses`, **profit > expenses** ou **profit <= 1000** é uma expressão válida.

Você pode usar os operadores lógicos a seguir a fim de combinar expressões para condições mais complexas. É recomendável usar parênteses para resolver ambiguidades no agrupamento de expressões:


****  

| Operador | Significado | Exemplo de uso | Significado do exemplo | 
| --- | --- | --- | --- | 
| and | Ambas as expressões são verdadeiras | (A < B) e (C == 1) | Se ambas as expressões forem verdadeiras: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/flows-nodes.html) | 
| or | Pelo menos uma expressão é verdadeira | (A \$1= 2) ou (B > C) | Se alguma das expressões for verdadeira: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/flows-nodes.html) | 
| not | A expressão não é verdadeira | não (A > B) | Se A não for maior que B (equivalente a A <= B) | 

Na API, você define o seguinte no `definition` campo ao enviar uma [UpdateFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateFlow.html)solicitação [CreateFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateFlow.html)ou:

1. Um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto condicional na `nodes` matriz. O formato geral é o seguinte (observe que os nós de condição não têm`outputs`):

   ```
   {
       "name": "string",
       "type": "Condition",
       "inputs": [
           {
               "name": "string",
               "type": "String | Number | Boolean | Object | Array",
               "expression": "string"
           }
       ],
       "configuration": {
           "condition": {
               "conditions": [
                   {
                       "name": "string",
                       "expression": "string"
                   },
                   ...
               ]
           }
       }
   }
   ```

1. Para cada entrada no nó condicional, um [FlowConnection](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowConnection.html)objeto na `connections` matriz. Inclua um [FlowDataConnectionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowDataConnectionConfiguration.html)objeto no `configuration` campo do `FlowConnection` objeto. O formato geral do objeto `FlowConnection` é o seguinte:

   ```
   {
       "name": "string",
       "source": "string",
       "target": "string",
       "type": "Data",
       "configuration": {
           "data": {
               "sourceOutput": "string",
               "expression": "string"
           }
       }
   }
   ```

1. Para cada condição (incluindo a condição padrão) no nó da condição, um [FlowConnection](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowConnection.html)objeto na `connections` matriz. Inclua um [FlowConditionalConnectionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowConditionalConnectionConfiguration.html)objeto no `configuration` campo do `FlowConnection` objeto. O formato geral do [FlowConnection](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowConnection.html)objeto é o seguinte:

   ```
   {
       "name": "string",
       "source": "string",
       "target": "string",
       "type": "Conditional",
       "configuration": {
           "conditional": {
               "condition": "string"
           }
       }
   }
   ```

   Use operadores relacionais e lógicos para definir o `condition` que conecta esse nó de condição `source` a um nó `target` subsequente. Para a condição padrão, especifique a condição como **default**.

### Nó iterador
<a name="flows-nodes-iterator"></a>

Um nó iterador pega uma matriz e retorna iterativamente os itens como saída para o nó subsequente. As entradas para o nó iterador são processadas uma a uma e não paralelamente umas às outras. O nó de saída de fluxo retorna o resultado final de cada entrada em uma resposta diferente. Você também pode usar um nó coletor subsequente do nó iterador para coletar as respostas iteradas e retorná-las como uma matriz, além do tamanho da matriz.

O seguinte mostra a estrutura geral de um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto iterador:

```
{
    "name": "string",
    "type": "Iterator",
    "inputs": [
        {
            "name": "array",
            "type": "Array",
            "expression": "string"
        }
    ],
    "outputs": [
        {
            "name": "arrayItem",
            "type": "String | Number | Boolean | Object | Array",
        },
        {
            "name": "arraySize",
            "type": "Number"
        }
    ],
    "configuration": {
        "iterator": CONTEXT-DEPENDENT
    }
}
```

### Nó coletor
<a name="flows-nodes-collector"></a>

Um nó coletor recebe uma entrada iterada, além do tamanho que a matriz terá, e a retorna como uma matriz. Você poderá usar um nó coletor subsequente de um nó iterador para coletar os itens iterados depois de enviá-los por meio de alguns nós.

Veja a seguir a estrutura geral de um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto coletor:

```
{
    "name": "string",
    "type": "Collector",
    "inputs": [
        {
            "name": "arrayItem",
            "type": "String | Number | Boolean | Object | Array",
            "expression": "string"
        },
        {
            "name": "arraySize",
            "type": "Number"
        }
    ],
    "outputs": [
        {
            "name": "collectedArray",
            "type": "Array"
        },
    ],
    "configuration": {
        "collector": CONTEXT-DEPENDENT
    }
}
```

### DoWhile nó de loop
<a name="flows-nodes-dowhile"></a>

Um nó de DoWhile loop executa uma sequência de nós repetidamente enquanto uma condição especificada permanece verdadeira. O loop é executado pelo menos uma vez antes de avaliar a condição, tornando-o ideal para cenários em que é necessária realizar uma ação e depois verificar se ela deve ser repetida com base no resultado.

O nó do DoWhile loop pega os dados de entrada e os passa pelo corpo do loop. Depois de cada iteração, a condição é avaliada para determinar se o loop deve continuar ou ser interrompido. O loop continuará enquanto a condição for avaliada como verdadeira ou valor `maxIterations` não for excedido.

Veja a seguir a estrutura geral de um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto de DoWhile loop:

```
{
    "name": "string",
    "type": "DoWhile",
    "inputs": [
        {
            "name": "loopInput",
            "type": "String | Number | Boolean | Object | Array",
            "expression": "string"
        }
    ],
    "outputs": [
        {
            "name": "loopOutput",
            "type": "String | Number | Boolean | Object | Array"
        },
        {
            "name": "iterationCount",
            "type": "Number"
        }
    ],
    "configuration": {
        "doWhile": {
            "condition": "string",
            "maxIterations": "number"
        }
    }
}
```

Na configuração:
+ `condition`: uma expressão booliana que determina se o loop deve continuar. Use os mesmos operadores relacionais e lógicos dos nós condicionais. A condição é avaliada após cada iteração.
+ `maxIterations`: o número máximo de iterações. O padrão é 10. Você deve especificar um número positivo. Esse parâmetro ajuda a evitar loops infinitos.

**nota**  
O parâmetro `maxIterations` tem um valor padrão de 10 e só aceita números positivos. O loop é interrompido quando a condição se torna falsa ou o número máximo de iterações é atingido.

## Nós para processar dados no fluxo
<a name="flows-nodes-data"></a>

Use os seguintes tipos de nó para processar dados no fluxo:

### Nó de prompt
<a name="flows-nodes-prompt"></a>

Um nó de prompt define um prompt a ser usado no fluxo. Você pode usar um prompt do Gerenciamento de Prompts ou definir um em linha no nó. Para obter mais informações, consulte [Construir e armazenar prompts reutilizáveis com o Gerenciamento de Prompts do Amazon Bedrock](prompt-management.md).

Para ver um exemplo, consulte [Experimentar fluxos de exemplo](flows-ex.md).

As entradas para o nó de prompt são valores para preencher as variáveis. A saída é a resposta gerada pelo modelo.

Veja a seguir a estrutura geral de um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto prompt:

```
{
    "name": "string",
    "type": "prompt",
    "inputs": [
        {
            "name": "content",
            "type": "String | Number | Boolean | Object | Array",
            "expression": "string"
        },
        ...
    ],
    "outputs": [
        {
            "name": "modelCompletion",
            "type": "String"
        }
    ],
    "configuration": {
        "prompt": {
            "sourceConfiguration": [PromptFlowNodeSourceConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PromptFlowNodeSourceConfiguration.html) object (see below),
            "guardrailConfiguration": {
                "guardrailIdentifier": "string",
                "guardrailVersion": "string"
            }
        }
    }
}
```

O [PromptFlowNodeSourceConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PromptFlowNodeSourceConfiguration.html)objeto depende se você usa um prompt do Gerenciamento de prompts ou se você o define em linha:
+ Se você usar um prompt do Gerenciamento de Prompts, o objeto deverá estar na seguinte estrutura geral:

  ```
  {
      "resource": {
          "promptArn": "string"
      }
  }
  ```
+ Se você definir um prompt em linha, siga as diretrizes para definir uma variante na guia API de [Criar um prompt usando o Gerenciamento de Prompts](prompt-management-create.md) (não há nenhum campo `name` nesse objeto, no entanto). O objeto usado deve estar na seguinte estrutura geral:

  ```
  {
      "inline": {
          "modelId": "string",
          "templateType": "TEXT",
          "templateConfiguration": {
              "text": {
                  "text": "string",
                  "inputVariables": [
                      {
                          "name": "string"
                      },
                      ...
                  ]
              }
          },
          "inferenceConfiguration": {
              "text": {
                  "maxTokens": int,
                  "stopSequences": ["string", ...],
                  "temperature": float,
                  "topP": float
              }
          },
          "additionalModelRequestFields": {
              "key": "value",
              ...
          }
      }
  }
  ```

Para aplicar uma barreira de proteção das Barreiras de Proteção do Amazon Bedrock ao seu prompt ou à resposta gerada com base nele, inclua o campo `guardrailConfiguration` e especifique o ID ou ARN da barreira de proteção no campo `guardrailIdentifier` e a versão da barreira de proteção no campo `guardrailVersion`.

### Nó de agente
<a name="flows-nodes-agent"></a>

Um nó de agente permite que você envie uma solicitação a um agente, que orquestra entre os FMs recursos associados para identificar e executar ações para um usuário final. Para obter mais informações, consulte [Automatizar tarefas em sua aplicação usando agentes de IA](agents.md).

Na configuração, especifique o nome do recurso da Amazon (ARN) do alias do agente a ser usado. As entradas no nó são o prompt do agente e qualquer [prompt ou atributo de sessão](agents-session-state.md) associados. O nó retorna a resposta do agente como uma saída.

Um nó de agente pode comportar invocações de vários turnos, permitindo conversas interativas entre os usuários e o agente durante a execução do fluxo. Quando um nó de agente exige informações ou esclarecimentos adicionais, ele pode pausar a execução do fluxo e solicitar informações específicas do usuário. Depois que o usuário fornece as informações solicitadas, o nó do agente continua o respectivo processamento com a nova entrada. Isso continua até que o nó do agente tenha todas as informações necessárias para concluir a respectiva execução.

O seguinte mostra a estrutura geral de um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto agente:

```
{
    "name": "string",
    "type": "Agent",
    "inputs": [
       {
            "name": "agentInputText"
            "type": "String | Number | Boolean | Object | Array",
            "expression": "string"
        },
        {
            "name": "promptAttributes"
            "type": "Object",
            "expression": "string"
        },
        {
            "name": "sessionAttributes"
            "type": "Object",
            "expression": "string"
        }
    ],
    "outputs": [
        {
            "name": "agentResponse",
            "type": "String"
        }
    ],
    "configuration": {
        "agent": {
            "agentAliasArn": "string"
        }
    }
}
```

### Nó da base de conhecimento
<a name="flows-nodes-kb"></a>

Um nó da base de conhecimento permite que você envie uma consulta usando bases de conhecimento do Amazon Bedrock. Para obter mais informações, consulte [Recuperar dados e gerar respostas de IA com as Bases de Conhecimento do Amazon Bedrock](knowledge-base.md).

Na configuração, forneça, no mínimo, `knowledgeBaseId`. Como opção, você pode incluir os seguintes campos, dependendo do seu caso de uso:
+ `modelId`: inclua um [ID de modelo](models-supported.md) para usar se você quiser gerar uma resposta com base nos resultados recuperados. Para apresentar os resultados recuperados como uma matriz, omita o ID do modelo.
+ `guardrailConfiguration`: inclua o ID ou ARN da barreira de proteção, definido nas Barreiras de Proteção do Amazon Bedrock no campo `guardrailIdentifier`, e a versão da barreira de proteção no campo `guardrailVersion`.
**nota**  
As barreiras de proteção só podem ser aplicadas quando `RetrieveAndGenerate` estiver sendo usado em um nó da base de conhecimento.

A entrada no nó é a consulta à base de conhecimento. A saída é a resposta do modelo, como uma string, ou uma matriz dos resultados recuperados.

Veja a seguir a estrutura geral de um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto da base de conhecimento:

```
{
    "name": "string",
    "type": "KnowledgeBase",
    "inputs": [
       {
            "name": "retrievalQuery",
            "type": "String",
            "expression": "string"
        }
    ],
    "outputs": [
        {
            "name": "retrievalResults" | "outputText",
            "type": "Array | String"
        }
    ],
    "configuration": {
        "knowledgeBase": {
            "knowledgeBaseId": "string",
            "modelId": "string",
            "guardrailConfiguration": {
                "guardrailIdentifier": "string",
                "guardrailVersion": "string"
            }
        }
    }
}
```

### Nó de armazenamento S3
<a name="flows-nodes-storage"></a>

Um nó de armazenamento do S3 permite a você armazenar dados no fluxo em um bucket do Amazon S3. Na configuração, você especifica o bucket do S3 a ser usado para armazenamento de dados. As entradas no nó são o conteúdo a ser armazenado e a [chave do objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html). O nó retorna o URI do local do S3 como a saída.

Veja a seguir a estrutura geral de um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto de armazenamento do S3:

```
{
    "name": "string",
    "type": "Storage",
    "inputs": [
        {
            "name": "content",
            "type": "String | Number | Boolean | Object | Array",
            "expression": "string"
        },
        {
            "name": "objectKey",
            "type": "String",
            "expression": "string"
        }
    ],
    "outputs": [
        {
            "name": "s3Uri",
            "type": "String"
        }
    ],
    "configuration": {
        "retrieval": {
            "serviceConfiguration": {
                "s3": {
                    "bucketName": "string"
                }
            }
        }
    }
}
```

### Node de recuperação S3
<a name="flows-nodes-retrieval"></a>

Um nó de recuperação do S3 permite a você recuperar dados de um local do Amazon S3 para introduzi-los no fluxo. Na configuração, você especifica o bucket do S3 do qual recupera os dados. A entrada no nó é a [chave do objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html). O nó retorna o conteúdo do local do S3 como a saída.

**nota**  
Atualmente, os dados no local do S3 devem ser uma string codificada em UTF-8.

O seguinte mostra a estrutura geral de um objeto de recuperação [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)do S3:

```
{
    "name": "string",
    "type": "Retrieval",
    "inputs": [
        {
            "name": "objectKey",
            "type": "String",
            "expression": "string"
        }
    ],
    "outputs": [
        {
            "name": "s3Content",
            "type": "String"
        }
    ],
    "configuration": {
        "retrieval": {
            "serviceConfiguration": {
                "s3": {
                    "bucketName": "string"
                }
            }
        }
    }
}
```

### Código da função do Lambda
<a name="flows-nodes-lambda"></a>

Um nó da função do Lambda permite a você chamar uma função do Lambda na qual pode definir o código para realizar a lógica de negócios. Quando você inclui um nó do Lambda em um fluxo, o Amazon Bedrock envia um evento de entrada à função do Lambda especificada.

Na configuração, especifique o nome do recurso da Amazon (ARN) da função do Lambda. Defina entradas a serem enviadas no evento de entrada do Lambda. Você pode escrever um código com base nessas entradas e definir o que a função retorna. A resposta da função é retornada na saída.

Veja a seguir a estrutura geral de um objeto de função [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)Lambda:

```
{
    "name": "string",
    "type": "LambdaFunction",
    "inputs": [
       {
            "name": "codeHookInput",
            "type": "String | Number | Boolean | Object | Array",
            "expression": "string"
        },
        ...
    ],
    "outputs": [
        {
            "name": "functionResponse",
            "type": "String | Number | Boolean | Object | Array"
        }
    ],
    "configuration": {
        "lambdaFunction": {
            "lambdaArn": "string"
        }
    }
}
```

#### Evento de entrada do Lambda para um fluxo
<a name="flows-nodes-lambda-input"></a>

O evento de entrada enviado para uma função do Lambda em um nó do Lambda tem o seguinte formato:

```
{
   "messageVersion": "1.0",
   "flow": {
        "flowArn": "string",
        "flowAliasArn": "string"
   },
   "node": {
        "name": "string",
        "inputs": [
            {
               "name": "string",
               "type": "String | Number | Boolean | Object | Array",
               "expression": "string",
               "value": ...
            },
            ...
        ]
   }
}
```

Os campos de cada entrada correspondem aos campos que você especifica ao definir o nó do Lambda, e o valor do campo `value` é preenchido com toda a entrada do no nó depois de resolvido pela expressão. Por exemplo, se toda a entrada no nó fosse `[1, 2, 3]` e a expressão fosse `$.data[1]`, o valor enviado no evento de entrada para a função do Lambda seria `2`.

Para obter mais informações sobre eventos do Lambda, consulte [Lambda concepts](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-concepts.html#gettingstarted-concepts-event) no [AWS Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/).

#### Resposta do Lambda a um fluxo
<a name="flows-nodes-lambda-response"></a>

Ao escrever uma função do Lambda, você define a resposta exibida por ela. Essa resposta é exibida para o fluxo como a saída do nó do Lambda.

### Nó de código em inline
<a name="flows-nodes-inline-code"></a>

Um nó de código inline permite que você escreva e execute código diretamente em seu fluxo, possibilitando transformações de dados, lógica personalizada e integrações sem usar uma função externa do Lambda. Quando você inclui um nó de código embutido em seu fluxo, o Amazon Bedrock executa seu código em um ambiente isolado e AWS gerenciado que não é compartilhado com ninguém e não tem acesso à Internet.

**nota**  
O nó de código inline está em uma versão prévia do Amazon Bedrock e está sujeito a alterações.

Na configuração do nó, especifique o código a ser executado e a linguagem de programação (no momento, `Python_3` é a única opção). Defina entradas que seu código possa acessar como variáveis. O resultado da última linha executada em seu código é exibido como a saída do nó.

O exemplo a seguir mostra a estrutura geral de um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto de código embutido:

```
{
    "name": "string",
    "type": "InlineCode",
    "inputs": [{
            "name": "string",
            "type": "String | Number | Boolean | Object | Array",
            "expression": "string"
        },
        ...
    ],
    "outputs": [{
        "name": "response",
        "type": "String | Number | Boolean | Object | Array"
    }],
    "configuration": {
        "inlineCode": {
            "code": "string",
            "language": "Python_3"
        }
    }
}
```

#### Considerações ao usar nós de código inline
<a name="flows-nodes-inline-code-usage"></a>

Ao usar nós de código inline no seu fluxo, considere o seguinte:

**Importante**  
Recomendamos que você teste seu código antes de adicioná-lo a um nó de código inline.
+ Não há suporte para nós de código inline na [execução de fluxo assíncrono](flows-create-async.md).
+ No momento, a única linguagem de programação compatível para nós de código inline é Python 3.12 (`Python_3)`.
+ O código inline funciona como uma sessão interativa do Python. Somente o resultado da última linha executada é capturado e exibido como saída do nó.
+ A saída do console do Python (como a saída da função `print`) não é capturada.
+ As entradas para o nó de código inline estão disponíveis como variáveis do Python em seu código. Use o nome exato da entrada do nó para fazer referência a ele.
+ Configure os tipos de entrada e saída corretamente para evitar erros de runtime. Você pode configurar até cinco entradas de nó.
+ Você pode ter até cinco nós de código inline por fluxo.
+ Você pode ter no máximo 25 nós de código inline em execução por Conta da AWS.
+ Seu código não pode ultrapassar 5 MB.

#### Entradas de nó de código inline
<a name="flows-nodes-inline-code-input"></a>

As entradas que você define para um nó de código inline estão disponíveis como variáveis do Python em seu código. Por exemplo, se você definir uma entrada chamada `userData`, poderá acessá-la diretamente no seu código como `userData`.

O valor de cada entrada é preenchido com base na expressão que você define. Por exemplo, se a entrada para o nó for `{"name": "John", "age": 30}` e a expressão for `$.name`, o valor da variável de entrada será `"John"`.

#### Saída de nó de código inline
<a name="flows-nodes-inline-code-output"></a>

O resultado da última linha executada em seu código é exibido como a saída do nó do código inline. Essa saída está disponível para os nós subsequentes do fluxo.

Por exemplo, o seguinte código exibe um dicionário como saída do nó:

```
# Process input data
result = {"processed": True, "data": userData}

# The last line's result is returned as the node output
result
```

### Nó do Lex
<a name="flows-nodes-lex"></a>

**nota**  
O nó Lex depende do serviço Amazon Lex, que pode armazenar e usar o conteúdo do cliente para o desenvolvimento e a melhoria contínua de outros AWS serviços. Como AWS cliente, você pode optar por não ter seu conteúdo armazenado ou usado para melhorias no serviço. Para saber como implementar uma política de recusa do Amazon Lex, consulte [AI services opt-out policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html).

Um nó do Lex permite a você chamar um bot do Amazon Lex para processar um enunciado usando processamento de linguagem natural e identificar uma intenção, com base na definição do bot. Para obter mais informações, consulte o [Amazon Lex Developer Guide](https://docs.aws.amazon.com/lex/latest/dg/).

Na configuração, especifique o nome do recurso da Amazon (ARN) do alias do bot e a localidade a serem usados. As entradas no nó são o enunciado e todos os [atributos de solicitação](https://docs.aws.amazon.com/lexv2/latest/dg/context-mgmt-request-attribs.html) ou os [atributos de sessão](https://docs.aws.amazon.com/lexv2/latest/dg/context-mgmt-request-attribs.html) que o acompanham. O nó retorna a intenção identificada como a saída.

**nota**  
Atualmente, o nó do Lex não dá suporte a conversas multiturno. Um nó do Lex só pode processar um enunciado.

O seguinte mostra a estrutura geral de um [FlowNode](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowNode.html)objeto Lex:

```
{
    "name": "string",
    "type": "Lex",
    "inputs": [
       {
            "name": "inputText",
            "type": "String | Number | Boolean | Object | Array",
            "expression": "string"
        },
        {
            "name": "requestAttributes",
            "type": "Object",
            "expression": "string"
        },
        {
            "name": "sessionAttributes",
            "type": "Object",
            "expression": "string"
        }
    ],
    "outputs": [
        {
            "name": "predictedIntent",
            "type": "String"
        }
    ],
    "configuration": {
        "lex": {
            "botAliasArn": "string",
            "localeId": "string"
        }
    }
}
```

## Tabelas de resumo para tipos de nó
<a name="flows-nodes-summary-table"></a>

As tabelas a seguir resumem as entradas e as saídas permitidas para cada tipo de nó. Observe o seguinte:
+ Se um nome estiver marcado como **Qualquer**, você poderá fornecer qualquer string como o nome. Do contrário, você deve usar o valor especificado na tabela.
+ Se um tipo estiver marcado como **Qualquer**, você poderá especificar qualquer um dos seguintes tipos de dados: String, Número, Booliano, Objeto, Matriz. Do contrário, você deve usar o tipo especificado na tabela.
+ É possível definir várias entradas para os nós **Condição**, **Prompt**, **Função do Lambda** e **Código inline**.


**Tipos de nó lógico**  
<a name="flows-nodes-logic-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/flows-nodes.html)


**Tipos de nó de processamento de dados**  
<a name="flows-nodes-data-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/flows-nodes.html)

# Regiões e modelos compatíveis com fluxos
<a name="flows-supported"></a>

O Amazon Bedrock Flows é compatível com o seguinte: Regiões da AWS
+ ap-northeast-1
+ ap-northeast-2
+ ap-northeast-3
+ ap-south-1
+ ap-south-2
+ ap-southeast-1
+ ap-southeast-2
+ ca-central-1
+ eu-central-1
+ eu-central-2
+ eu-north-1
+ eu-south-1
+ eu-south-2
+ eu-west-1
+ eu-west-2
+ eu-west-3
+ sa-east-1
+ us-east-1
+ us-east-2
+ us-gov-east-1
+ us-gov-west-1
+ us-west-2

Os modelos compatíveis com o recurso Fluxos do Amazon Bedrock dependem dos nós usados no fluxo:
+ Nó de prompt: é possível usar o Gerenciamento de Prompts com qualquer modelo de texto compatível com a API [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html). Para ver uma lista dos modelos compatíveis, consulte [Modelos compatíveis e recursos do modelo](conversation-inference-supported-models-features.md).
+ Nó de agente: para obter uma lista dos modelos compatíveis, consulte [Regiões e modelos compatíveis com os Agentes do Amazon Bedrock](agents-supported.md).
+ Nó de base de conhecimento: para obter uma lista dos modelos compatíveis, consulte [Modelos e regiões compatíveis para bases de conhecimento do Amazon Bedrock](knowledge-base-supported.md).

Para ver uma tabela de quais modelos são compatíveis com quais regiões, consulte [Modelos de base compatíveis no Amazon Bedrock](models-supported.md).

# Pré-requisitos do recurso Fluxos do Amazon Bedrock
<a name="flows-prereq"></a>

Antes de criar um fluxo, analise os seguintes pré-requisitos e determine quais deles você precisa atender:

1. Defina ou crie recursos para um ou mais nós que planeja adicionar ao fluxo: 
   + Para um nó de prompt: crie um prompt usando o Gerenciamento de Prompts. Para obter mais informações, consulte [Construir e armazenar prompts reutilizáveis com o Gerenciamento de Prompts do Amazon Bedrock](prompt-management.md). Se planejar definir prompts em linha ao criar o nó no fluxo, não é necessário criar um prompt no Gerenciamento de Prompts.
   + Para um nó da base de conhecimento: crie uma base de conhecimento que você planeja usar no fluxo. Para obter mais informações, consulte [Recuperar dados e gerar respostas de IA com as Bases de Conhecimento do Amazon Bedrock](knowledge-base.md).
   + Para um nó de agente: crie um agente que você planeja usar no fluxo. Para obter mais informações, consulte [Automatizar tarefas em sua aplicação usando agentes de IA](agents.md).
   + Para um nó de armazenamento do S3: crie um bucket do S3 para armazenar uma saída de um nó no fluxo.
   + Para um nó de recuperação do S3: crie um objeto do S3 em um bucket no qual recuperar dados para o fluxo. O objeto do S3 deve ser uma string codificada em UTF-8.
   + Para um nó Lambda — defina uma AWS Lambda função para a lógica de negócios que você planeja implementar no fluxo. Para obter mais informações, consulte o [Guia do desenvolvedor do AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/).
   + Para um nó do Amazon Lex: crie um bot do Amazon Lex para identificar intenções. Para obter mais informações, consulte o [Guia do desenvolvedor do Amazon Lex](https://docs.aws.amazon.com/lex/latest/dg/).

1. Para usar fluxos, você deve ter dois perfis diferentes:

   1. **Função do usuário** — A função do IAM que você usa para fazer login Console de gerenciamento da AWS ou fazer chamadas de API deve ter permissões para realizar ações relacionadas a fluxos.

      Se sua função tiver a [AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess)política anexada, você não precisará configurar permissões adicionais para essa função. Para restringir as permissões de um perfil somente às ações usadas para fluxos, anexe a seguinte política baseada em identidade ao perfil do IAM:

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "FlowPermissions",
                  "Effect": "Allow",
                  "Action": [  
                      "bedrock:CreateFlow",
                      "bedrock:UpdateFlow",
                      "bedrock:GetFlow",
                      "bedrock:ListFlows", 
                      "bedrock:DeleteFlow",
                      "bedrock:ValidateFlowDefinition", 
                      "bedrock:CreateFlowVersion",
                      "bedrock:GetFlowVersion",
                      "bedrock:ListFlowVersions",
                      "bedrock:DeleteFlowVersion",
                      "bedrock:CreateFlowAlias",
                      "bedrock:UpdateFlowAlias",
                      "bedrock:GetFlowAlias",
                      "bedrock:ListFlowAliases",
                      "bedrock:DeleteFlowAlias",
                      "bedrock:InvokeFlow",
                      "bedrock:TagResource",
                      "bedrock:UntagResource", 
                      "bedrock:ListTagsForResource"
                  ],
                  "Resource": "*"
              }
          ]   
      }
      ```

------

      É possível restringir ainda mais as permissões omitindo [ações](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions) ou especificando [recursos](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources) e [chaves de condição](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys). Uma identidade do IAM pode chamar operações de API em recursos específicos. Se você especificar uma operação de API que não pode ser usada no recurso especificado na política, o Amazon Bedrock retornará um erro.

   1. **Perfil de serviço**: um perfil que permite que o Amazon Bedrock execute ações em seu nome. Especifique esse perfil ao criar ou atualizar um fluxo. É possível criar um [[perfil de serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) personalizado do AWS Identity and Access Management](flows-permissions.md).
**nota**  
Se você planejar usar o console do Amazon Bedrock para criar automaticamente um perfil ao criar um fluxo, não será necessário configurar esse perfil manualmente.

# Criar e planejar um fluxo no Amazon Bedrock
<a name="flows-create"></a>

Nesta seção, aprenda a criar e projetar fluxos com o console do Amazon Bedrock. Para ajudar você a começar, os fluxos criados com o console são configurados para serem executados com um único nó de prompt. Esta seção também inclui mais exemplos e modelos para criar diferentes tipos de fluxo.

Se você quiser usar o SDK da AWS para criar um fluxo, consulte [Executar exemplos de código do recurso Fluxos do Amazon Bedrock](flows-code-ex.md).

**Topics**
+ [Criar seu primeiro fluxo no Amazon Bedrock](flows-get-started.md)
+ [Planejar um fluxo no Amazon Bedrock](flows-design.md)
+ [Experimentar fluxos de exemplo](flows-ex.md)
+ [Usar um modelo para criar um fluxo do Amazon Bedrock](flows-templates.md)

# Criar seu primeiro fluxo no Amazon Bedrock
<a name="flows-get-started"></a>

Sempre que você cria um fluxo, o console do Amazon Bedrock cria um fluxo introdutório para você. O fluxo inclui um nó de **entrada de fluxo**, um nó de **prompt** e um nó de **saída de fluxo**. Ao executar o fluxo, você insere um tópico para o fluxo que usa o nó de prompt para resumir o tópico. Antes de executar os fluxos, você precisa definir o modelo para o prompt. 

Para criar um fluxo, forneça um nome e uma descrição para ele. Por padrão, o Amazon Bedrock cria um perfil de serviço com as permissões apropriadas. Se preferir, especifique um perfil de serviço existente.

O Amazon Bedrock criptografa seus dados em repouso. Por padrão, o Amazon Bedrock criptografa esses dados usando uma chave gerenciada pela AWS. Opcionalmente, é possível criptografar o fluxo usando uma chave gerenciada pelo cliente. Para obter mais informações, consulte [Criptografia dos recursos do Amazon Bedrock Flows](encryption-flows.md).

Depois de concluir o fluxo introdutório, ou se não precisar dele, você poderá continuar criando seu fluxo. É recomendável ler [Como o recurso Fluxos do Amazon Bedrock funciona](flows-how-it-works.md) para se familiarizar com os conceitos e os termos no recurso Fluxos do Amazon Bedrock e saber mais sobre os tipos de nó que estão disponíveis para você. Para obter mais informações, consulte [Planejar um fluxo no Amazon Bedrock](flows-design.md).

**Como criar seu primeiro fluxo**

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console do Amazon Bedrock. Em seguida, abra o console do Amazon Bedrock em [https://console.aws.amazon.com/bedrock/](https://console.aws.amazon.com/bedrock).

1. Selecione **Fluxos do Amazon Bedrock** no painel de navegação à esquerda.

1. Na seção **Fluxos do Amazon Bedrock**, escolha **Criar fluxo**.

1. Informe um **Nome** para o fluxo e uma **Descrição** opcional.

1. Em **Nome do perfil de serviço**, escolha uma das seguintes opções:
   + **Criar e usar um perfil de serviço**: deixe o Amazon Bedrock criar um perfil de serviço para você.
   + **Usar um perfil de serviço existente**: selecione um perfil de serviço personalizado configurado anteriormente. Para obter mais informações, consulte [Criar um perfil de serviço para fluxos do Amazon Bedrock no Amazon Bedrock](flows-permissions.md).

1. (Opcional) Criptografe seu fluxo com uma chave gerenciada pelo cliente fazendo o seguinte: 

   1. Selecione **Configurações adicionais**.

   1. Em **Seleção de chaves do KMS**, escolha **Personalizar configurações de criptografia (avançado)**. Em seguida, execute uma das seguintes ações em **Escolha uma chave do AWS KMS**:
      + Para usar uma chave em vigor, insira o ARN ou encontre a chave que deseja usar. 
      + Para criar uma chave, escolha **Criar uma chave do AWS KMS** para abrir o console do AWS Key Management Service e [criar a chave](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html). Ao criar a chave, anote o respectivo ARN. De volta ao console do Amazon Bedrock, insira o ARN da chave em **Escolha uma chave do AWS KMS**.

   Para obter mais informações, consulte [Criptografia dos recursos do Amazon Bedrock Flows](encryption-flows.md).

1. Escolha **Criar**. O Amazon Bedrock cria o fluxo introdutório e conduz você ao **Construtor de fluxo**.

1. Na seção **Construtor de fluxo**, observe que o painel central (tela) exibe um nó de **entrada de fluxo**, um nó de **prompt** e uma **saída de fluxo**. Os nós já estão conectados entre si. 

1. Na tela, selecione o nó **Prompt**.

1. No painel do construtor de fluxo, selecione a seção **Configurações**.

1. Em **Nome do nó**, verifique se a opção **Definir no nó** está selecionada.

1. Escolha **Selecionar um modelo** para escolher o modelo a ser usado.

1. Selecione **Salvar** para salvar o fluxo.

1. No painel **Testar fluxo** à direita, insira um tópico para o fluxo resumir.

1. Para executar o fluxo, escolha **Executar**. O fluxo exibe o tópico resumido.

# Planejar um fluxo no Amazon Bedrock
<a name="flows-design"></a>

Nesta seção, você criará um fluxo do Amazon Bedrock. Antes de planejar um fluxo, é recomendável ler [Como o recurso Fluxos do Amazon Bedrock funciona](flows-how-it-works.md) para se familiarizar com os conceitos e os termos no recurso Fluxos do Amazon Bedrock e saber mais sobre os tipos de nó que estão disponíveis para você. Para exemplos de fluxo que você pode experimentar, consulte [Experimentar fluxos de exemplo](flows-ex.md).

**Como construir o fluxo**

1. Se você ainda não estiver no **Construtor de fluxo**, faça o seguinte:

   1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console do Amazon Bedrock. Em seguida, abra o console do Amazon Bedrock em [https://console.aws.amazon.com/bedrock/](https://console.aws.amazon.com/bedrock).

   1. Selecione **Fluxos do Amazon Bedrock** no painel de navegação à esquerda. Escolha um fluxo na seção **Fluxos do Amazon Bedrock**.

   1. Escolha **Editar no construtor de fluxo**.

1. Na seção **Construtor de fluxo**, o painel central exibe um nó de **entrada de fluxo** e um nó de **saída de fluxo**. Esses são os nós de entrada e de saída do fluxo.

1. Faça o seguinte para adicionar e configurar nós:

   1. No painel **Construtor de fluxo**, selecione **Nós**.

   1. Arraste um nó que deseja usar na primeira etapa do fluxo e solte-o no painel central.

   1. Os círculos nos nós são pontos de conexão. Para conectar o nó de entrada do fluxo ao segundo nó, arraste uma linha do círculo no nó de **Entrada de fluxo** até o círculo na seção **Entrada** do nó que acabou de adicionar.

   1. Selecione o nó que você acabou de adicionar.

   1. Na seção **Configurar** do painel **Construtor de fluxo**, forneça as configurações para o nó selecionado e defina nomes, tipos de dados e expressões para as entradas e saídas do nó.

   1. No painel **Construtor de fluxo**, selecione **Nós**.

   1. Repita as etapas para adicionar e configurar os nós restantes no fluxo.
**nota**  
Se você usar um perfil de serviço que o Amazon Bedrock criou automaticamente para você, o perfil será atualizado com as permissões adequadas conforme você adicionar nós. No entanto, se usar um perfil de serviço personalizado, adicione as permissões adequadas à política anexada ao perfil de serviço que se refere a [Criar um perfil de serviço para fluxos do Amazon Bedrock no Amazon Bedrock](flows-permissions.md).

1. Conecte a **Saída** do último nó no fluxo com a **Entrada** do nó de **Saída de fluxo**. É possível ter vários nós de **Saída de fluxo**. Para adicionar mais nós de saída de fluxo, arraste o nó de **Saída de fluxo** e solte-o ao lado do nó em que você deseja que o fluxo pare. Desenhe as conexões entre os dois nós.

1. Prossiga para o procedimento seguinte pra [Testar um fluxo no Amazon Bedrock](flows-test.md) ou voltar posteriormente. Para continuar com a próxima etapa, escolha **Salvar**. Para voltar mais tarde, escolha **Salvar e sair**.

**Excluir um nó ou uma conexão**

Durante o processo de construção do fluxo, talvez seja necessário excluir um nó ou remover as conexões do nó.

**Como excluir um nó**

1. Selecione um nó que deseja excluir.

1. No painel **Construtor de fluxo**, escolha o ícone de exclusão (![\[Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family.\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/images/icons/trash.png)).
**nota**  
Se você usar um perfil de serviço que o Amazon Bedrock criou automaticamente para você, o perfil será atualizado com as permissões adequadas conforme você adicionar nós. Ao excluir nós, no entanto, as permissões relevantes não serão excluídas. É recomendável excluir as permissões que não são mais necessárias seguindo as etapas em [Modificar um perfil](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html).

**Como remover uma conexão**
+ Na página **Construtor de fluxo**, passe o mouse sobre a conexão que deseja remover até ver o ícone de expansão e arraste a conexão para fora do nó.

Os seguintes requisitos são aplicáveis à construção de um fluxo:
+ O fluxo deve ter somente um nó de entrada de fluxo e pelo menos um nó de saída de fluxo.
+ Não é possível incluir entradas para um nó de entrada de fluxo.
+ Não é possível incluir saídas para um nó de saída de fluxo.
+ Cada saída em um nó deve ser conectada a uma entrada em um nó subsequente (na API, isso é feito por meio de um [FlowConnection](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowConnection.html) com um [FlowDataConnectionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowDataConnectionConfiguration.html)).
+ Cada condição (incluindo a condição padrão) em um nó de condição deve ser conectada a um nó subsequente (na API, isso é feito por meio de um [FlowConnection](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowConnection.html) com um [FlowConditionalConnectionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowConditionalConnectionConfiguration.html)).

Os seguintes ponteiros se aplicam à construção de um fluxo:
+ Comece definindo o tipo de dados para a saída do nó de entrada do fluxo. Esse tipo de dados deve corresponder ao que você espera enviar como a entrada ao invocar o fluxo.
+ Ao definir as entradas para um fluxo usando expressões, verifique se o resultado corresponde ao tipo de dados escolhido para a entrada.
+ Se você incluir um nó iterador, inclua um nó coletor subsequente depois de enviar a saída por meio dos nós necessários. O nó coletor retornará as saídas em uma matriz.

# Experimentar fluxos de exemplo
<a name="flows-ex"></a>

Este tópico fornece alguns exemplos de fluxos que é possível experimentar para começar a usar o recurso Fluxos do Amazon Bedrock. Também é possível usar modelos para criar um fluxo inicial. Para obter mais informações, consulte [Usar um modelo para criar um fluxo do Amazon Bedrock](flows-templates.md).

Expanda um exemplo para ver como criá-lo no console do Amazon Bedrock:

**Topics**
+ [Criar um fluxo com um único prompt](flows-ex-prompt.md)
+ [Criar um fluxo com um nó de condição](flows-ex-condition.md)

# Criar um fluxo com um único prompt
<a name="flows-ex-prompt"></a>

A imagem a seguir mostra um fluxo que consiste em um único prompt, definido em linha no nó. O prompt gera uma playlist de músicas com base em uma entrada de objeto JSON que inclui o gênero e o número de músicas a serem incluídas na playlist. 

![\[Exemplo de uso de um nó de prompt com duas variáveis.\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/images/flows/flows-prompt.png)


**Como criar e testar esse fluxo no console**

1. Crie um fluxo seguindo as instruções em [Criar seu primeiro fluxo no Amazon Bedrock](flows-get-started.md).

1. Configure o nó do prompt da seguinte forma:

   1. Selecione o nó **Prompt** no painel central.

   1. Selecione a guia **Configurar** no painel **Construtor de fluxo**.

   1. Insira **MakePlaylist** como o **Nome do nó**.

   1. Escolha **Definir no nó**.

   1. Defina as seguintes configurações para o prompt:

      1. Em **Selecionar modelo**, selecione um modelo para executar a inferência no prompt.

      1. Na caixa de texto **Mensagem**, insira **Make me a \$1\$1genre\$1\$1 playlist consisting of the following number of songs: \$1\$1number\$1\$1.**. Isso cria duas variáveis que aparecerão como entradas no nó.

      1. (Opcional) Modifique as **Configurações de inferência**. 

      1. (Opcional) Se compatível com o modelo, você pode configurar o **Armazenamento em cache de prompts** para a mensagem de prompt. Para obter mais informações, consulte [Criar e planejar um fluxo no Amazon Bedrock](flows-create.md).

   1. Expanda a seção **Entradas**. Os nomes das entradas são pré-preenchidos pelas variáveis na mensagem do prompt. Configure as entradas da seguinte forma:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/flows-ex-prompt.html)

      Essa configuração significa que o nó do prompt espera um objeto JSON que contém um campo chamado `genre` a ser associado à entrada `genre` e um campo chamado `number` a ser associado à entrada `number`.

   1. Não é possível modificar a **Saída**. Ela será a resposta do modelo, retornada como uma string.

1. Escolha o nó de **Entrada de fluxo** e selecione a guia **Configurar**. Selecione **Objeto** como o **Tipo**. Isso significa que a invocação do fluxo espera receber um objeto JSON.

1. Conecte os nós para concluir o fluxo seguindo estes passos:

   1. Arraste uma conexão do nó de saída do nó de **Entrada de fluxo** para a entrada de **gênero** no nó de prompt **MakePlaylist**.

   1. Arraste uma conexão do nó de saída do nó de **Entrada de fluxo** para a entrada de **número** no nó de prompt **MakePlaylist**.

   1. Arraste uma conexão do nó de saída da saída **modelCompletion** no nó de prompt **MakePlaylist** para a entrada do **documento** no nó **Saída de fluxo**.

1. Selecione **Salvar** para salvar o fluxo. Agora, o fluxo deve estar preparado para testes.

1. Teste o fluxo inserindo o objeto JSON a seguir no painel **Testar fluxo** à direita. Escolha **Executar** e o fluxo deve retornar uma resposta do modelo.

   ```
   {
       "genre": "pop",
       "number": 3
   }
   ```

# Criar um fluxo com um nó de condição
<a name="flows-ex-condition"></a>

A seguinte imagem mostra um fluxo com um nó de condição que exibe um dos três valores possíveis com base na condição atendida:

![\[Exemplo de uso de um nó de condição com duas condições.\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/images/flows/flows-condition.png)


**Como criar e testar esse fluxo no console:**

1. Crie um fluxo seguindo as instruções em [Criar seu primeiro fluxo no Amazon Bedrock](flows-get-started.md).

1. Exclua o nó **Prompt** no painel central.

1. Configure o nó de condição da seguinte forma:

   1. No painel **Construtor de fluxo**, selecione a guia **Nós**.

   1. Arraste um nó de **Condição** para o fluxo no painel central.

   1. Selecione a guia **Configurar** no painel **Construtor de fluxo**.

   1. Expanda a seção **Entradas**. Configure as entradas da seguinte forma:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/flows-ex-condition.html)

      Essa configuração significa que o nó de condição espera um objeto JSON que contenha os campos `retailPrice`, `marketPrice` e `type`.

   1. Configure as condições da seguinte forma:

      1. Na seção **Condições**, você pode optar por alterar o nome da condição. Adicione a seguinte condição na caixa de texto **Condição**: **(retailPrice > 10) and (type == "produce")**.

      1. Adicione uma segunda condição escolhendo **Adicionar condição**. Opcionalmente, altere o nome da segunda condição. Adicione a seguinte condição na caixa de texto **Condição**: **(retailPrice < marketPrice)**.

1. Escolha o nó de **Entrada de fluxo** e selecione a guia **Configurar**. Selecione **Objeto** como o **Tipo**. Isso significa que a invocação do fluxo espera receber um objeto JSON.

1. Adicione nós de saída de fluxo para que tenha três no total. Configure-os da seguinte forma na guia **Configurar** do painel **Construtor de fluxo** de cada nó de saída de fluxo:

   1. Defina o tipo de entrada do primeiro nó de saída de fluxo como **String** e a expressão como **\$1.data.action[0]** para retornar o primeiro valor na matriz no campo `action` do objeto de entrada.

   1. Defina o tipo de entrada do segundo nó de saída de fluxo como **String** e a expressão como **\$1.data.action[1]** para retornar o segundo valor na matriz no campo `action` do objeto de entrada.

   1. Defina o tipo de entrada do terceiro nó de saída de fluxo como **String** e a expressão como **\$1.data.action[2]** para retornar o terceiro valor na matriz no campo `action` do objeto de entrada.

1. Conecte a primeira condição ao primeiro nó de saída de fluxo, a segunda condição ao segundo nó de saída de fluxo e a condição padrão ao terceiro nó de saída de fluxo.

1. Conecte as entradas e saídas a todos os nós para concluir o fluxo da seguinte forma:

   1. Arraste uma conexão do nó de saída do nó de **Entrada de fluxo** para a entrada **retailPrice** no nó de condição.

   1. Arraste uma conexão do nó de saída do nó de **Entrada de fluxo** para a entrada **marketPrice** no nó de condição.

   1. Arraste uma conexão do nó de saída do nó de **Entrada de fluxo** para a entrada **tipo** no nó de condição.

   1. Arraste uma conexão da saída do nó de **Entrada de fluxo** para a entrada do **documento** em cada um dos três nós de saída.

1. Selecione **Salvar** para salvar o fluxo. Agora, o fluxo deve estar preparado para testes.

1. Teste o fluxo inserindo os objetos JSON a seguir no painel **Testar fluxo** à direita. Escolha **Executar** para cada entrada:

   1. O objeto a seguir preenche a primeira condição (`retailPrice` é maior que 10 e `type` é “produzir”) e exibe o primeiro valor em `action` (“não comprar”):

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 12, 
          "type": "produce", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```
**nota**  
Mesmo que a primeira e a segunda condições sejam atendidas, a primeira condição tem precedência, pois vem primeiro.

   1. O objeto a seguir preenche a segunda condição (`retailPrice` é menor que `marketPrice`) e exibe o segundo valor em `action` (“comprar”):

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 12, 
          "type": "meat", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```

   1. O objeto a seguir não preenche nem a primeira condição (`retailPrice` é maior que 10, mas o `type` não é “produzir”) nem a segunda condição (`retailPrice` não é menor que `marketPrice`), portanto, o terceiro valor na `action` (“não decidido”) é exibido:

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 11, 
          "type": "meat", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```

# Usar um modelo para criar um fluxo do Amazon Bedrock
<a name="flows-templates"></a>

Para ajudar você a começar a definir e orquestrar o recurso Fluxos do Amazon Bedrock, use modelos para criar fluxos para uma variedade de configurações de fluxo. Por exemplo, é possível um modelo para ver um fluxo que inclui uma base de conhecimento ou um fluxo que usa condições para direcionar a lógica do fluxo. 

Esses modelos podem ser acessados no repositório [Amazon Bedrock Flows Samples](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file) no GitHub. O console do Amazon Bedrock também oferece um link para o repositório por meio da página principal de um fluxo. 

Os modelos de fluxo são fornecidos como [modelos JSON](https://github.com/aws-samples/amazon-bedrock-flows-samples/tree/main/templates) para cada definição de fluxo compatível e um script Python que você usa para criar e executar o fluxo. Também é possível acessar o fluxo por meio do console do Amazon Bedrock.

O repositório fornece os seguintes modelos:
+  [KnowledgeBase Flow](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#1-knowledgebase-flow-1): mostra como integrar e consultar uma [base de conhecimento](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#1-knowledgebase-flow-1), bem como fluxos de pesquisa e recuperação da base de conhecimento e geração aumentada via recuperação (RAG).
+  [Multi-turn Conversation Agent Flow](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#2-multi-turn-conversation-agent-flow-1): mostra como realizar conversas interativas e dinâmicas com um fluxo. Para obter mais informações, consulte [Conversar com um fluxo do Amazon Bedrock](flows-multi-turn-invocation.md).
+  [Conditions Flow](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#3-conditions-flow-1): mostra como executar a lógica condicional e a ramificação em um fluxo. 
+ [Prompt Node with Guardrail Flow](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#4-prompt-node-with-guardrail-flow-1): mostra como proteger um nó de prompt com uma barreira de proteção.
+  [Iterator & Colletor Flow](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#5-iterator--collector-flow-1): mostra como processar várias entradas e agregar respostas.
+  [Multi-Agent Flow](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#5-iterator--collector-flow-1): mostra vários fluxos de trabalho baseados em agentes, inclusive colaboração multiagente e delegação de tarefas.

Antes de executar o script, você precisa criar os recursos do Amazon Bedrock a serem usados pelo fluxo, como uma base de conhecimento ou agente. É sua responsabilidade excluir os recursos quando não precisar mais deles. 

Para criar e executar um fluxo usando um modelo, execute o script (`flow_manager.py`). O script solicita todas as informações adicionais necessárias, como o modelo de fluxo que você deseja usar e os identificadores dos recursos de que o modelo precisa. É possível incluir um prompt de teste para testar o fluxo.

Opcionalmente, você pode definir a região da AWS na qual deseja que o fluxo seja criado. O script cria os recursos necessários com um conjunto padrão de [permissões de perfil do IAM](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#iam-role-permissions). Também é possível optar por usar um perfil do IAM criado por você.

Se você quiser usar o fluxo no console do Amazon Bedrock, não use o parâmetro `--cleanup`, pois isso exclui o fluxo depois que o script o executa. Se você não usar `--cleanup`, precisará excluir o fluxo quando não precisar mais dele. 

Para ter mais informações, consulte [https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file\$1how-to-use](https://github.com/aws-samples/amazon-bedrock-flows-samples?tab=readme-ov-file#how-to-use).



# Visualizar informações sobre fluxos no Amazon Bedrock
<a name="flows-view"></a>

Para saber como visualizar informações sobre um fluxo, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Para visualizar os detalhes de um fluxo**

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console do Amazon Bedrock. Em seguida, abra o console do Amazon Bedrock em [https://console.aws.amazon.com/bedrock/](https://console.aws.amazon.com/bedrock).

1. Selecione **Fluxos do Amazon Bedrock** no painel de navegação à esquerda. Na seção **Fluxos do Amazon Bedrock**, selecione um fluxo.

1. Visualize os detalhes do fluxo no painel **Detalhes do fluxo**.

------
#### [ API ]

Para ter informações sobre um fluxo, envie uma solicitação [GetFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetFlow.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt) e especifique o ARN ou o ID do fluxo como o `flowIdentifier`.

Para listar informações sobre fluxos, envie uma solicitação [ListFlows](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListFlows.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt). É possível especificar os seguintes parâmetros opcionais:


****  

| Campo | Descrição breve | 
| --- | --- | 
| maxResults | O número máximo de resultados a serem apresentados em uma resposta. | 
| nextToken | Se houver mais resultados do que o número especificado no campo maxResults, a resposta exibirá um valor de nextToken. Para ver o próximo lote de resultados, envie o valor de nextToken em outra solicitação. | 

------

# Modificar um fluxo no Amazon Bedrock
<a name="flows-modify"></a>

Para saber como modificar um fluxo, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Como modificar os detalhes de um fluxo**

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console do Amazon Bedrock. Em seguida, abra o console do Amazon Bedrock em [https://console.aws.amazon.com/bedrock/](https://console.aws.amazon.com/bedrock).

1. Selecione **Fluxos do Amazon Bedrock** no painel de navegação à esquerda. Na seção **Fluxos do Amazon Bedrock**, selecione um fluxo.

1. Na seção **Detalhes do fluxo**, escolha **Editar**. 

1. É possível editar o nome, a descrição e associar um perfil de serviço diferente ao fluxo.

1. Selecione **Salvar alterações**.

**Como modificar um fluxo**

1. Se você ainda não estiver no **Construtor de fluxo**, faça o seguinte:

   1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console do Amazon Bedrock. Em seguida, abra o console do Amazon Bedrock em [https://console.aws.amazon.com/bedrock/](https://console.aws.amazon.com/bedrock).

   1. Selecione **Fluxos do Amazon Bedrock** no painel de navegação à esquerda. Escolha um fluxo na seção **Fluxos do Amazon Bedrock**.

   1. Escolha **Editar no construtor de fluxo**.

1. Adicione, remova e modifique nós e conexões conforme necessário. Para ter mais informações, consulte [Criar e planejar um fluxo no Amazon Bedrock](flows-create.md) e [Tipos de nó para o fluxo](flows-nodes.md).

1. Depois de modificar o fluxo, escolha **Salvar** ou **Salvar e sair**.

------
#### [ API ]

Para editar um fluxo, envie uma solicitação [UpdateFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateFlow.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt). Inclua os dois campos que deseja manter e os campos que deseja alterar. Para obter considerações sobre os campos na solicitação, consulte [Criar e planejar um fluxo no Amazon Bedrock](flows-create.md).

------

# Incluir barreiras de proteção em um fluxo no Amazon Bedrock
<a name="flows-guardrails"></a>

O recurso Fluxos do Amazon Bedrock se integra às Barreiras de Proteção do Amazon Bedrock para permitir que você identifique e bloqueie ou filtre conteúdo indesejado no fluxo. Para saber como aplicar barreiras de proteção aos tipos de nós compatíveis em um fluxo, consulte a seguinte tabela:


****  

| Tipo de nó | Console | API | 
| --- | --- | --- | 
| Nó de prompt | Ao [criar](flows-create.md) ou [atualizar](flows-modify.md) um fluxo, selecione o nó do prompt e especifique a barreira de proteção na seção Configurar. | Ao definir o nó de prompt no campo nodes em uma solicitação [CreateFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateFlow.html) ou [UpdateFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateFlow.html), inclua um campo guardrailConfiguration em [PromptFlowNodeConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PromptFlowNodeConfiguration.html). | 
| Nó da base de conhecimento | Ao [criar](flows-create.md) ou [atualizar](flows-modify.md) um fluxo, selecione o nó da base de conhecimento e especifique a barreira de proteção na seção Configurar. Só é possível incluir uma barreira de proteção ao gerar respostas com base nos resultados recuperados. | Ao definir o nó da base de conhecimento no campo nodes em uma solicitação [CreateFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateFlow.html) ou [UpdateFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateFlow.html), inclua um campo guardrailConfiguration em [KnowledgeBaseFlowNodeConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseFlowNodeConfiguration.html). Você só pode incluir uma barreira de proteção ao usar RetrieveAndGenerate; portanto, deverá incluir um modelId. | 

Para obter mais informações sobre as proteções, consulte [Detectar e filtrar conteúdo nocivo usando as Barreiras de Proteção do Amazon Bedrock](guardrails.md).

Para ter mais informações sobre tipos de nós, consulte [Tipos de nó para o fluxo](flows-nodes.md).

# Testar um fluxo no Amazon Bedrock
<a name="flows-test"></a>

Depois de criar um fluxo, você terá um *rascunho de trabalho*. O rascunho de trabalho é uma versão do fluxo que é possível criar e testar de forma iterativa. Cada vez que você faz alterações no fluxo, o rascunho de trabalho é atualizado.

Quando você testa o fluxo, o Amazon Bedrock primeiro verifica o seguinte e lança uma exceção se a verificação falhar:
+ Conectividade entre todos os nós do fluxo.
+ Pelo menos um nó de saída do fluxo está configurado.
+ Os tipos de variáveis de entrada e de saída correspondem conforme necessário.
+ As expressões de condição são válidas e um resultado padrão é fornecido.

Se a verificação falhar, será necessário corrigir os erros antes de testar e validar a performance do fluxo. Veja abaixo as etapas para testar seu fluxo. Escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Para testar o fluxo**

1. Se você ainda não estiver no **Construtor de fluxo**, faça o seguinte:

   1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console do Amazon Bedrock. Em seguida, abra o console do Amazon Bedrock em [https://console.aws.amazon.com/bedrock/](https://console.aws.amazon.com/bedrock).

   1. Selecione **Fluxos do Amazon Bedrock** no painel de navegação à esquerda. Na seção **Fluxos do Amazon Bedrock**, selecione um fluxo de que deseje testar.

   1. Escolha **Editar no construtor de fluxo**.

1. Na página **Construtor de fluxo,** no painel à direita, insira uma entrada para invocar o fluxo. Verifique se o tipo de dados de entrada corresponde ao tipo de dados de saída que você configurou para o nó de entrada do fluxo.

1. Escolha **Executar**.

1. Os nós ou conexões na configuração de fluxo que acionam erros ficam destacados em vermelho e aqueles que acionam avisos ficam destacados em amarelo. Leia as mensagens e avisos de erro, corrija os problemas identificados, salve o fluxo e execute o teste novamente.
**nota**  
Salve o fluxo para que as alterações feitas sejam aplicadas ao testar o fluxo.

1. (Opcional) Para visualizar as entradas, as saídas e a duração da execução de cada nó, escolha **Mostrar rastreamento** na resposta. Para obter mais informações, consulte [Rastrear cada etapa no fluxo visualizando os respectivos rastreamentos no Amazon BedrockRastrear cada etapa no fluxo visualizando os respectivos rastreamentos](flows-trace.md). Para retornar ao construtor visual, escolha **Ocultar rastreamento** ou selecione o ícone de recolher.

1. Quando o desempenho do fluxo estiver adequado para você, escolha **Salvar e sair**.

1. É possível continuar a iterar na construção do fluxo. Quando o fluxo estiver adequado e pronto para ser implantado na produção, crie uma versão do fluxo e um alias para apontar para a versão. Para obter mais informações, consulte [Implantar um fluxo em sua aplicação usando versões e aliases](flows-deploy.md).

------
#### [ API ]

Para testar o fluxo, envie uma solicitação de [InvokeFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html) com um [endpoint de runtime do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt). Inclua o ARN ou o ID do fluxo no campo `flowIdentifier` e o ARN ou o ID do alias a ser usado no campo `flowAliasIdentifier`.

Para visualizar as entradas e saídas de cada nó, defina o campo `enableTrace` como `TRUE`. Para obter mais informações, consulte [Rastrear cada etapa no fluxo visualizando os respectivos rastreamentos no Amazon BedrockRastrear cada etapa no fluxo visualizando os respectivos rastreamentos](flows-trace.md).

O corpo da solicitação especifica a entrada para o fluxo e tem o seguinte formato:

```
{
   "inputs": [ 
      { 
         "content": { 
            "document": "JSON-formatted string"
         },
         "nodeName": "string",
         "nodeOutputName": "string"
      }
   ],
   "enableTrace": TRUE | FALSE
}
```

Forneça a entrada no campo `document`, forneça um nome para a entrada no campo `nodeName` e forneça um nome para a entrada no campo `nodeOutputName`.

A resposta é retornada em um stream. Cada evento retornado contém a saída de um nó no campo `document`, o nó que foi processado no campo `nodeName` e o tipo de nó no campo `nodeType`. Estes eventos são do seguinte formato:

```
{
    "flowOutputEvent": { 
        "content": { 
            "document": "JSON-formatted string"
        },
        "nodeName": "string",
        "nodeType": "string"
    }
}
```

Se o fluxo for concluído, um campo `flowCompletionEvent` com o `completionReason` também será exibido. Se houver um erro, o campo de erro correspondente será retornado.

------

# Rastrear cada etapa no fluxo visualizando os respectivos rastreamentos no Amazon Bedrock
<a name="flows-trace"></a>

Ao invocar um fluxo, você pode visualizar o *rastreamento* para ver as entradas e saídas de cada nó. O rastreamento ajuda você a rastrear o caminho da entrada até a resposta que ela finalmente exibe. É possível usar o rastreamento para solucionar erros, identificar etapas que levam a um resultado inesperado ou a um gargalo de desempenho e considerar possibilidades de melhorar o fluxo.

Para visualizar o rastreamento, faça o seguinte:
+ No console, siga as etapas na guia **Console** em [Testar um fluxo no Amazon Bedrock](flows-test.md) e escolha **Mostrar rastreamento** na resposta da invocação do fluxo.
+ Na API, defina o campo `enableTrace` como `true` em uma solicitação [InvokeFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html). Cada resposta `flowOutputEvent` é exibida ao lado de um `flowTraceEvent`.

Cada evento de rastreamento inclui o nome do nó que recebeu uma entrada ou gerou uma saída e a data na hora em que a entrada ou saída foi processada. Selecione uma guia para saber mais sobre um tipo de evento de rastreamento:

------
#### [ FlowTraceConditionNodeResultEvent ]

Esse tipo de rastreamento identifica quais condições são satisfeitas para um nó de condição e ajuda a identificar uma ou mais ramificações do fluxo que são ativadas durante a invocação. O seguinte objeto JSON mostra a aparência de um [FlowTraceEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowTraceEvent.html) para o resultado de um nó de condição:

```
{
    "trace": {
        "conditionNodeOutputTrace": {
            "nodeName": "string",
            "satisfiedConditions": [
                {
                    "conditionName": "string"
                },
                ...
            ],
            "timestamp": timestamp
        }
    }
}
```

------
#### [ FlowTraceNodeInputEvent ]

Esse tipo de rastreamento exibe a entrada que foi enviada a um nó. Se o evento for subsequente a um nó iterador, mas preceder um nó coletor, o campo `iterationIndex` indicará o índice do item na matriz de origem da entrada. O seguinte objeto JSON mostra a aparência de um [FlowTraceEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowTraceEvent.html) para a entrada em um nó:

```
{
    "trace": {
        "nodeInputTrace": {
            "fields": [
                {
                    "content": {
                        "document": JSON object
                    },
                    "nodeInputName": "string"
                },
                ...
            ],
            "nodeName": "string",
            "timestamp": timestamp,
            "iterationIndex": int
        }
    }
}
```

------
#### [ FlowTraceNodeOutputEvent ]

Esse tipo de rastreamento exibe a saída produzida por um nó. Se o evento for subsequente a um nó iterador, mas preceder um nó coletor, o campo `iterationIndex` indicará o índice do item na matriz de origem da saída. O objeto JSON a seguir mostra a aparência de um [FlowTraceEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowTraceEvent.html) para a saída de um nó.

```
{
    "trace": {
        "nodeOutputTrace": {
            "fields": [
                {
                    "content": {
                        "document": JSON object
                    },
                    "nodeOutputName": "string"
                },
                ...
            ],
            "nodeName": "string",
            "timestamp": timestamp,
            "iterationIndex": int
        }
    }
}
```

------

# Executar fluxos do Amazon Bedrock de forma assíncrona com execuções de fluxo
<a name="flows-create-async"></a>

Com as execuções de fluxo, você pode executar fluxos do Amazon Bedrock de forma assíncrona. Isso permite que seus fluxos sejam executados por períodos mais longos e também ofereçam controle para que sua aplicação possa realizar outras tarefas.

Quando você executa um fluxo usando o console Amazon Bedrock ou com a [InvokeFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html)operação, o fluxo é executado até terminar ou atingir o tempo limite em uma hora (o que ocorrer primeiro). Em uma execução de fluxo, o fluxo pode durar muito mais: nós individuais podem ser executados por até cinco minutos e todo o fluxo pode ser executado por até 24 horas.

**nota**  
As execuções de fluxo estão em versão prévia para o Amazon Bedrock e estão sujeitas a alterações.

## Permissões necessárias para utilizar execuções de fluxo
<a name="flows-create-async-permissions"></a>
+ Verifique se o perfil de serviço do recurso Fluxos do Amazon Bedrock tem todas as permissões necessárias. Para obter mais informações, consulte [Criar um perfil de serviço para fluxos do Amazon Bedrock no Amazon Bedrock](flows-permissions.md).
+ (Opcional) Criptografe seus dados de execução de fluxo com uma AWS KMS chave gerenciada pelo cliente. Para obter mais informações, consulte [Criptografia dos recursos do Amazon Bedrock Flows](encryption-flows.md).

## Criar e gerenciar uma execução de fluxo
<a name="flows-create-async-how-to"></a>

Você pode criar uma execução de fluxo no console ou usando a [StartFlowExecution](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_StartFlowExecution.html)operação.

------
#### [ Console ]

1. Crie um fluxo seguindo as instruções em [Criar e planejar um fluxo no Amazon Bedrock](flows-create.md).

1. Crie um alias para o fluxo seguindo as instruções em [Criar um alias de um fluxo no Amazon Bedrock](flows-alias-create.md).

1. Se você ainda não estiver no **Construtor de fluxo**, faça o seguinte:

   1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console Amazon Bedrock. Em seguida, abra o console Amazon Bedrock em [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

   1. Selecione **Fluxos do Amazon Bedrock** no painel de navegação à esquerda e escolha seu fluxo.

1. Escolha a guia **Execuções** e selecione **Criar execução**. 

1. Na caixa de diálogo **Criar execução**, digite o seguinte:

   1. Em **Nome**, insira um nome para a execução do fluxo. 

   1. Em **Selecionar alias**, escolha o alias do fluxo que você deseja usar.

   1. Em **Entrada de prompt**, insira o prompt com o qual você deseja iniciar o fluxo.

   1. Escolha **Criar** para criar a execução do fluxo e começar a usá-la.

1. Na página de detalhes do fluxo, escolha a guia **Execuções** e anote o status da execução do fluxo em **Status da execução**.

1. (Opcional) Escolha uma execução para abrir o fluxo e ver o resumo da execução.

   Em **Saída de execução**, é possível ver a saída do fluxo.

1. (Opcional) Para interromper a execução de um fluxo, selecione a execução e escolha **Interromper**.

------
#### [ API ]

**Iniciar uma execução de fluxo**  
Para executar uma execução de fluxo, envie uma [StartFlowExecution](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_StartFlowExecution.html)solicitação com um [endpoint de tempo de execução do Agents for Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt). Na solicitação, especifique o ID do fluxo e o ID do alias do fluxo que você deseja executar. Também é possível especificar o seguinte:
+ **inputs**: uma matriz contendo o nó de [entrada](flows-nodes.md#flows-nodes-input) a partir do qual você deseja que o fluxo comece a ser executado. A entrada a ser enviada ao nó de entrada de fluxo de prompts deve ser especificada no campo `content`.
+ **name**: um nome para a execução do fluxo.

```
{
    "inputs": [{
        "nodeName": "FlowInputNode",
        "nodeOutputName": "document",
        "content": {
            "document": "Test"
        }
    }],
    "name": "MyExecution"
}
```

A resposta é o nome do recurso da Amazon (ARN) da execução do fluxo. É possível usar o `executionArn` para pesquisar o estado atual do fluxo, como quando a execução do fluxo termina ou um nó de condição avalia as respectivas condições.

```
{
      "executionArn": "arn:aws:bedrock:us-west-2:111122223333:flow/FLOWID/alias/TSTALIASID/execution/MyExecution"
}
```

**Acompanhar o andamento da execução de um fluxo**  
Use a [GetFlowExecution](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GetFlowExecution.html)operação para obter o status atual de um fluxo que você identifica pelo ARN de execução. O status do fluxo é `Running`, `Succeeded`, `Failed`, `TimedOut` ou `Aborted`.

```
{
      "endedAt": null,
      "errors": null,
      "executionArn": "arn:aws:bedrock:us-west-2:111122223333:flow/FLOWID/alias/TSTALIASID/execution/MyExecution",
      "flowAliasIdentifier": "TSTALIASID",
      "flowIdentifier": "FLOWID",
      "flowVersion": "DRAFT",
      "startedAt": "2025-03-20T23:32:28.899221162Z",
      "status": "Running"
}
```

Erros (como um nó do Lambda que atinge o tempo limite) são exibidos na matriz `errors`, como no seguinte exemplo:

```
"errors": [{
    "nodeName": "LambdaNode1",
    "errorType": "ExecutionTimedOut",
    "message": "Call to lambda function timed out"
}],
```

**Obter os resultados de uma execução de fluxo**  
O Amazon Bedrock grava as saídas de um fluxo nos nós de [saída](flows-nodes.md#flows-nodes-output) do fluxo. É possível obter as saídas quando o fluxo for concluído ou enquanto o fluxo estiver em execução (dependendo do seu caso de uso).

Se você quiser que o fluxo seja concluído primeiro, faça uma chamada para `GetFlowExecution` e verifique se o valor do campo `status` na resposta é `Succeeded`.

Para obter uma lista de eventos de saída da execução do fluxo, faça uma chamada para [ListFlowExecutionEvents](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ListFlowExecutionEvents.html). Na resposta, verifique se há objetos `flowOutputEvent` em `flowExecutionEvents`. Por exemplo, é possível obter a saída de um fluxo no campo `content`:

```
{
      "flowOutputEvent": {
        "content": {
          "document": "The model response."
        },
        "nodeName": "FlowOutputNode"
      }
}
```

Você pode limitar a saída de `ListFlowExecutions` a apenas nós de entrada e saída definindo o parâmetro de consulta `eventType` como `Flow`.

**Visualizar eventos**  
Para ajudar a depurar a execução do fluxo, você pode usar a [ListFlowExecutionEvents](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ListFlowExecutionEvents.html)operação para visualizar os eventos que os nós geram enquanto o fluxo está em execução. Defina o parâmetro de consulta `eventType` como `Node` para ver as entradas e saídas de todos os nós (incluindo os nós intermediários) na resposta, que é semelhante ao seguinte exemplo:

```
{
    "flowExecutionEvents": [{
            "nodeOutputEvent": {
                "fields": [{
                    "content": {
                        "document": "History book"
                    },
                    "name": "document"
                }],
                "nodeName": "FlowInputNode",
                "timestamp": "2025-05-05T18:38:56.637867516Z"
            }
        },
        {
            "nodeInputEvent": {
                "fields": [{
                    "content": {
                        "document": "History book"
                    },
                    "name": "book"
                }],
                "nodeName": "Prompt_1",
                "timestamp": "2025-05-05T18:38:57.434600163Z"
            }
        },
        {
            "nodeOutputEvent": {
                "fields": [{
                    "content": {
                        "document": "Here's a summary of the history book."
                    },
                    "name": "modelCompletion"
                }],
                "nodeName": "Prompt_1",
                "timestamp": "2025-05-05T18:39:06.034157077Z"
            }
        },
        {
            "nodeInputEvent": {
                "fields": [{
                    "content": {
                        "document": "Here's a summary of the history book."
                    },
                    "name": "document"
                }],
                "nodeName": "FlowOutputNode",
                "timestamp": "2025-05-05T18:39:06.453128251Z"
            }
        }
    ]
}
```

**Obter um snapshot da execução do fluxo**  
O Amazon Bedrock tira automaticamente um snapshot de uma definição de fluxo e metadados quando a execução de um fluxo é iniciada. Isso é útil, pois um fluxo pode ser atualizado enquanto está sendo executado de forma assíncrona. Para recuperar esse instantâneo, chame a [GetExecutionFlowSnapshot](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GetExecutionFlowSnapshot.html)operação. A resposta inclui os seguintes campos de fluxo:
+ **customerEncryptionKeyArn** — O ARN da chave que AWS KMS criptografa o fluxo.
+ **definition**: a [definição](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FlowDefinition.html) do fluxo.
+ **executionRoleArn**— O ARN da função de serviço do IAM que é usada pela execução do fluxo.
+ **flowAliasIdentifier**— O ID do alias do fluxo.
+ **flowIdentifier**: o ID do fluxo.
+ **flowVersion**: a versão do fluxo.

```
{
      "customerEncryptionKeyArn": null,
      "definition": "{flow-definition}",
      "executionRoleArn": "arn:aws:iam::111122223333:role/name",
      "flowAliasIdentifier": "TSTALIASID",
      "flowIdentifier": "FLOWID",
      "flowVersion": "DRAFT"
}
```

**Listar as execuções de fluxo**  
Você pode obter uma lista de suas execuções de fluxo chamando a [ListFlowExecutions](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ListFlowExecutions.html)operação. A resposta inclui uma `flowExecutionSummaries` matriz com informações sobre cada uma de suas execuções de fluxo na corrente Região da AWS para um fluxo ou alias de fluxo. Cada elemento inclui informações, como o ARN da execução, a hora de início e o status atual do fluxo.

```
{
    "flowExecutionSummaries": [{
        "createdAt": "2025-03-11T23:21:02.875598966Z",
        "endedAt": null,
        "executionArn": "arn:aws:bedrock:us-west-2:111122223333:flow/FLOWID/alias/TSTALIASID/execution/MyExecution",
        "flowAliasIdentifier": "TSTALIASID",
        "flowIdentifier": "FLOWID",
        "flowVersion": "DRAFT",
        "status": "Running"
    }]
}
```

**Interromper a execução de um fluxo em execução**  
Se você precisar interromper a execução de um fluxo em execução, chame a [StopFlowExecution](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_StopFlowExecution.html)operação e passe o ID do fluxo, o ID do alias do fluxo e o ID de execução do fluxo para a execução que você deseja interromper. 

------

## Status de execução de fluxo
<a name="flows-async-statuses"></a>

A execução de um fluxo pode ter um dos seguintes status:
+ **Running**: a execução do fluxo está em andamento.
+ **Succeeded**: a execução do fluxo foi concluída com êxito.
+ **Failed**: a execução do fluxo falhou devido a um erro.
+ **TimedOut**— A execução do fluxo excedeu o tempo de execução máximo de 24 horas.
+ **Abortado** — A execução do fluxo foi interrompida manualmente usando a [StopFlowExecution](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_StopFlowExecution.html)operação.

As execuções de fluxo que não estão mais em execução são excluídas automaticamente após noventa dias.

## Práticas recomendadas para execução de fluxo
<a name="flows-async-best-practices"></a>

Considere o seguinte ao usar execuções de fluxo:
+ Pesquise regularmente o status da execução do fluxo usando [GetFlowExecution](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GetFlowExecution.html)até que seu fluxo alcance um estado terminal (que é qualquer coisa diferente de`Running`).
+ Quando a execução do fluxo atingir um estado terminal, use [ListFlowExecutionEvents](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_ListFlowExecutionEvents.html)para obter os resultados do seu fluxo. Por exemplo, você pode usar esses resultados para criar alguma lógica em torno do fluxo.
+ Obtenha um instantâneo da execução do fluxo usando [GetExecutionFlowSnapshot](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GetExecutionFlowSnapshot.html)para ajudar na depuração se surgirem problemas com a execução.

# Implantar um fluxo em sua aplicação usando versões e aliases
<a name="flows-deploy"></a>

Ao criar um fluxo pela primeira vez, uma versão de rascunho de trabalho (`DRAFT`) e um alias de teste (`TSTALIASID`) que apontam para a versão de rascunho de trabalho são criados. Quando você faz alterações no fluxo, as alterações se aplicam ao rascunho de trabalho e, portanto, é a versão mais recente do fluxo. Você itera o rascunho de trabalho até que o comportamento do fluxo fique adequado. É possível configurar o fluxo para implantação criando *versões* do fluxo.

A *versão* é um snapshot que preserva o recurso na forma como está no momento em que foi criado. É possível continuar a modificar o rascunho de trabalho e a criar versões do fluxo conforme necessário. O Amazon Bedrock cria versões em ordem numérica, começando em 1. As versões são imutáveis porque atuam como um snapshot do fluxo no momento em que é criado. Para fazer atualizações em um fluxo que implantou na produção, crie uma versão no rascunho de trabalho e faça chamadas ao alias que aponta para essa versão.

Para implantar o fluxo, crie um *alias* que aponte para uma versão do fluxo. Você cria solicitações `InvokeFlow` para esse alias. Com aliases, é possível alternar com eficiência entre diferentes versões do fluxo sem acompanhar a versão. Por exemplo, é possível alterar um alias para apontar para uma versão anterior do fluxo se houver alterações que você precise reverter rapidamente.

Os tópicos a seguir descrevem como criar versões e aliases do fluxo.

**Topics**
+ [Criar uma versão de um fluxo no Amazon Bedrock](flows-version-create.md)
+ [Visualizar informações sobre versões de fluxo do Amazon Bedrock](flows-version-view.md)
+ [Excluir uma versão de um fluxo no Amazon Bedrock](flows-version-delete.md)
+ [Criar um alias de um fluxo no Amazon Bedrock](flows-alias-create.md)
+ [Visualizar informações sobre aliases de fluxos no Amazon Bedrock](flows-alias-view.md)
+ [Modificar um alias de um fluxo no Amazon Bedrock](flows-alias-modify.md)
+ [Excluir um alias de um fluxo no Amazon Bedrock](flows-alias-delete.md)

# Criar uma versão de um fluxo no Amazon Bedrock
<a name="flows-version-create"></a>

Quando a configuração do fluxo estiver adequada para você, crie uma versão imutável do fluxo para a qual possa apontar com um alias. Para saber como criar uma versão do seu fluxo, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Como criar uma versão de seus fluxos do Amazon Bedrock**

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console do Amazon Bedrock. Em seguida, abra o console do Amazon Bedrock em [https://console.aws.amazon.com/bedrock/](https://console.aws.amazon.com/bedrock).

1. Selecione **Fluxos do Amazon Bedrock** no painel de navegação à esquerda. Escolha um fluxo na seção **Fluxos do Amazon Bedrock**.

1. Na seção **Versões**, escolha **Publicar versão**.

1. Depois que a versão for publicada, um banner de sucesso será exibido na parte superior.

------
#### [ API ]

Para criar uma versão do fluxo, envie uma solicitação [CreateFlowVersion](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateFlowVersion.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt) e especifique o ARN ou o ID do fluxo como o `flowIdentifier`.

A resposta exibe um ID e um ARN para a versão. As versões são criadas de forma incremental, começando em 1.

------

# Visualizar informações sobre versões de fluxo do Amazon Bedrock
<a name="flows-version-view"></a>

Para saber como visualizar informações sobre as versões de um fluxo, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Como visualizar informações sobre uma versão de um fluxo**

1. Abra o [Console de Gerenciamento da AWS](https://console.aws.amazon.com/) e faça login em sua conta. Navegue até o Amazon Bedrock.

1. No painel de navegação à esquerda, selecione **Fluxos**. Na seção **Fluxos**, selecione um fluxo que deseja visualizar.

1. Escolha a versão a ser visualizada na seção **Versões**.

1. Para visualizar detalhes sobre os nós e as configurações anexadas à versão do fluxo , selecione o nó e visualize os detalhes no painel **Construtor de fluxos**. Para fazer modificações no fluxo, use o rascunho de trabalho e crie uma versão.

------
#### [ API ]

Para ter informações sobre a versão de um fluxo, envie uma solicitação [GetFlowVersion](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetFlowVersion.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt) e especifique o ARN ou o ID do fluxo como o `flowIdentifier`. No campo `flowVersion`, especifique o número da versão.

Para listar informações de todas as versões de um fluxo, envie uma solicitação [ListFlowVersions](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListFlowVersions.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt) e especifique o ARN ou o ID do fluxo como o `flowIdentifier`. É possível especificar os seguintes parâmetros opcionais:


****  

| Campo | Descrição breve | 
| --- | --- | 
| maxResults | O número máximo de resultados a serem apresentados em uma resposta. | 
| nextToken | Se houver mais resultados do que o número especificado no campo maxResults, a resposta exibirá um valor de nextToken. Para ver o próximo lote de resultados, envie o valor de nextToken em outra solicitação. | 

------

# Excluir uma versão de um fluxo no Amazon Bedrock
<a name="flows-version-delete"></a>

Para saber como excluir uma versão de um fluxo, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Como excluir uma versão do fluxo**

1. Abra o [Console de Gerenciamento da AWS](https://console.aws.amazon.com/) e faça login em sua conta. Navegue até o Amazon Bedrock.

1. No painel de navegação à esquerda, selecione **Fluxos**. Em seguida, na seção **Fluxos**, selecione um fluxo.

1. Escolha **Excluir**.

1. É exibida uma caixa de diálogo avisando sobre as consequências da exclusão. Para confirmar que deseja excluir a versão, insira **delete** no campo de entrada e escolha **Excluir**.

1. Um banner é exibido para informar que a versão está sendo excluída. Quando a exclusão for concluída, um banner de sucesso será exibido.

------
#### [ API ]

Para excluir uma versão do fluxo, envie uma solicitação [DeleteFlowVersion](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeleteFlowVersion.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt). Especifique o ARN ou o ID do fluxo no campo `flowIdentifier` e a versão a ser excluída no campo `flowVersion`.

------

# Criar um alias de um fluxo no Amazon Bedrock
<a name="flows-alias-create"></a>

Para invocar um fluxo, primeiro é necessário criar um alias que aponte para uma versão do fluxo. Para saber como criar um alias, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Como criar um alias para fluxos do Amazon Bedrock**

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console do Amazon Bedrock. Em seguida, abra o console do Amazon Bedrock em [https://console.aws.amazon.com/bedrock/](https://console.aws.amazon.com/bedrock).

1. Selecione **Fluxos do Amazon Bedrock** no painel de navegação à esquerda. Em seguida, escolha um fluxo na seção **Fluxos**.

1. Na seção **Aliases**, escolha **Criar alias**.

1. Insira um nome exclusivo para o alias e forneça uma descrição opcional.

1. Escolha uma das seguintes opções:
   + Para criar uma versão, escolha **Criar uma versão e associá-la a esse alias**.
   + Para usar uma versão existente, escolha **Usar uma versão existente para associar esse alias**. No menu suspenso, escolha a versão à qual você deseja associar o alias.

1. Selecione **Criar alias**. Um banner de sucesso é exibido na parte superior.

------
#### [ API ]

Para criar um alias que aponte para uma versão do fluxo, envie uma solicitação [CreateFlowAlias](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateFlowAlias.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt).

Os seguintes campos são obrigatórios:


****  

| Campo | Descrição básica | 
| --- | --- | 
| flowIdentifier | O ARN ou o ID do fluxo para o qual criar um alias. | 
| nome | Um nome para o alias. | 
| routingConfiguration | Especifique a versão à qual associar o alias no campo flowVersion. | 

Os seguintes campos são opcionais:


****  

| Campo | Caso de uso | 
| --- | --- | 
| description | Para fornecer uma descrição do alias. | 
| clientToken | Para evitar a reduplicação da solicitação. | 

------

A criação de um alias produz um recurso com um identificador e um nome do recurso da Amazon (ARN) que é possível especificar ao invocar um fluxo na aplicação. Para saber como invocar um fluxo, consulte [Testar um fluxo no Amazon Bedrock](flows-test.md).

# Visualizar informações sobre aliases de fluxos no Amazon Bedrock
<a name="flows-alias-view"></a>

Para saber como visualizar informações sobre os aliases de um fluxo, escolha a guia correspondente ao método de sua escolha e siga as etapas:

------
#### [ Console ]

**Como visualizar os detalhes de um alias**

1. Abra o [Console de Gerenciamento da AWS](https://console.aws.amazon.com/) e faça login em sua conta. Navegue até o Amazon Bedrock.

1. No painel de navegação à esquerda, selecione **Fluxos**. Em seguida, na seção **Fluxos**, selecione um fluxo.

1. Escolha o alias a ser visualizado na seção **Aliases**.

1. É possível visualizar o nome e a descrição do alias e as tags associadas ao alias.

------
#### [ API ]

Para ter informações sobre um alias, envie uma solicitação [GetFlowAlias](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetFlowAlias.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt) e especifique o ARN ou o ID do fluxo como o `flowIdentifier`. No campo `aliasIdentifier`, especifique o ID ou o ARN do alias.

Para listar informações de todos os aliases de um fluxo, envie uma solicitação [ListFlowAlias](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListFlowAliass.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt) e especifique o ARN ou o ID do fluxo como o `flowIdentifier`. É possível especificar os seguintes parâmetros opcionais:


****  

| Campo | Descrição breve | 
| --- | --- | 
| maxResults | O número máximo de resultados a serem apresentados em uma resposta. | 
| nextToken | Se houver mais resultados do que o número especificado no campo maxResults, a resposta exibirá um valor de nextToken. Para ver o próximo lote de resultados, envie o valor de nextToken em outra solicitação. | 

------

# Modificar um alias de um fluxo no Amazon Bedrock
<a name="flows-alias-modify"></a>

Para saber como modificar um alias de um fluxo, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Como modificar um alias**

1. Abra o [Console de Gerenciamento da AWS](https://console.aws.amazon.com/) e faça login em sua conta. Navegue até o Amazon Bedrock.

1. No painel de navegação à esquerda, selecione **Fluxos**. Em seguida, na seção **Fluxos**, selecione um fluxo.

1. Na seção **Aliases**, escolha o botão de opção ao lado do alias que você deseja editar.

1. É possível editar o nome e a descrição do alias. Além disso, é possível realizar uma das seguintes ações:
   + Para criar uma versão e associá-la a esta versão, escolha **Criar uma versão e associá-la a esse alias**.
   + Para associar esse alias a uma versão existente diferente, escolha **Usar uma versão existente e associá-la a esse alias**.

1. Selecione **Salvar**.

------
#### [ API ]

Para atualizar um alias, envie uma solicitação [UpdateFlowAlias](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateFlowAlias.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt). Inclua os dois campos que você deseja manter e os campos que deseja alterar na solicitação.

------

# Excluir um alias de um fluxo no Amazon Bedrock
<a name="flows-alias-delete"></a>

Para saber como excluir um alias de um fluxo, escolha a guia correspondente ao método de sua escolha e siga as etapas:

------
#### [ Console ]

**Como excluir um alias**

1. Abra o [Console de Gerenciamento da AWS](https://console.aws.amazon.com/) e faça login em sua conta. Navegue até o Amazon Bedrock.

1. No painel de navegação à esquerda, selecione **Fluxos**. Em seguida, na seção **Fluxos**, selecione um fluxo.

1. Para escolher o alias a ser excluído, na seção **Aliases**, escolha o botão de opção ao lado do alias que você deseja excluir.

1. Escolha **Excluir**.

1. É exibida uma caixa de diálogo avisando sobre as consequências da exclusão. Para confirmar que deseja excluir o alias, insira **delete** no campo de entrada e escolha **Excluir**.

1. Um banner é exibido informando que o alias está sendo excluído. Quando a exclusão for concluída, um banner de sucesso será exibido.

------
#### [ API ]

Para um alias de um fluxo, envie a solicitação [DeleteFlowAlias](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeleteFlowAlias.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt). Especifique o ARN ou o ID do fluxo no campo `flowIdentifier` e o ARN ou o ID do alias a ser excluído no campo `aliasIdentifier`.

------

# Invocar uma AWS Lambda função de um fluxo do Amazon Bedrock em uma conta diferente AWS
<a name="flow-cross-account-lambda"></a>

Um fluxo do Amazon Bedrock pode invocar uma AWS Lambda função que está em uma AWS conta diferente do fluxo. Use o procedimento a seguir para configurar a função do Lambda (*Conta A*) e o fluxo (*Conta B*). 

**Para configurar um fluxo de fluxo para chamar uma função Lambda em uma conta diferente AWS**

1. Na Conta A (função do Lambda), adicione uma política baseada em recursos à função do Lambda, usando o perfil de execução de fluxo da Conta B como entidade principal. Para ter mais informações, consulte [Conceder a outras contas acesso à função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/permissions-function-cross-account.html) na documentação do.

1. Na Conta B (fluxo do Amazon Bedrock), adicione permissão para a operação [invoke](https://docs.aws.amazon.com/lambda/latest/api/API_Invoke.html) ao perfil de execução de fluxo do ARN da função do Lambda que você está usando. Para ter mais informações, consulte [Atualizar permissões para um perfil](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html) na documentação do *AWS Identity and Access Management*.

# Conversar com um fluxo do Amazon Bedrock
<a name="flows-multi-turn-invocation"></a>

**nota**  
O recurso Fluxos do Amazon Bedrock está em uma versão prévia do Amazon Bedrock e está sujeito a alterações.

A conversa em vários turnos do Amazon Bedrock Flows permite back-and-forth conversas dinâmicas entre usuários e fluxos, semelhantes a um diálogo natural. Quando um nó de agente exige esclarecimento ou contexto adicional, ele pode pausar de forma inteligente a execução do fluxo e solicitar ao usuário informações específicas. Isso cria uma experiência mais interativa e sensível ao contexto, pois o nó pode adaptar seu próprio comportamento com base nas respostas do usuário. Por exemplo, se uma consulta inicial do usuário for ambígua ou incompleta, o nó poderá fazer perguntas complementares para coletar os detalhes necessários. Depois que o usuário fornece as informações solicitadas, o fluxo retoma perfeitamente a execução com a entrada ampliada, garantindo resultados mais precisos e relevantes. Esse recurso é particularmente valioso para cenários complexos em que uma única interação pode não ser suficiente para entender e atender totalmente às necessidades do usuário.

**Topics**
+ [Como processar uma conversa de vários turnos em um fluxo](#flows-multi-turn-invocation-how)
+ [Criar e executar um exemplo de fluxo](#flows-multi-turn-invocation-example-flow)

## Como processar uma conversa de vários turnos em um fluxo
<a name="flows-multi-turn-invocation-how"></a>

Para usar uma conversa de vários turnos em um fluxo, você precisa de um [nó de agente](flows-nodes.md#flows-nodes-agent) conectado a um agente do Amazon Bedrock. Quando você executa o fluxo, uma conversa de vários turnos ocorre quando o agente precisa de mais informações do usuário para continuar. Esta seção descreve um fluxo que usa um agente com as seguintes instruções:

```
You are a playlist creator for a radio station. 
When asked to create a playlist, ask for the number of songs,
the genre of music, and a theme for the playlist.
```

Para ter informações sobre como criar um agente, consulte [Automatizar tarefas em sua aplicação usando agentes de IA](agents.md). 

### Etapa 1: iniciar o fluxo
<a name="flows-multi-turn-invocation-start-flow"></a>

Você inicia um fluxo chamando a [InvokeFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html)operação. Inclua o conteúdo inicial que deseja enviar ao fluxo. No exemplo a seguir, o campo `document` contém uma solicitação para *criar uma playlist*. Cada conversa tem um identificador exclusivo (*ID de execução*) que identifica a conversa dentro do fluxo. Para obter o ID de execução, não envie o campo `executionID` em sua primeira chamada a `InvokeFlow`. A resposta de `InvokeFlow` inclui o ID de execução. Em seu código, use o identificador para rastrear várias conversas e identificar uma conversa em outras chamadas à operação `InvokeFlow`. 

Veja a seguir um exemplo JSON para uma solicitação a `InvokeFlow`.

```
{
  "flowIdentifier": "XXXXXXXXXX",
  "flowAliasIdentifier": "YYYYYYYYYY",
  "inputs": [
    {
      "content": {
        "document": "Create a playlist."
      },
      "nodeName": "FlowInputNode",
      "nodeOutputName": "document"
    }
  ]
}
```

### Etapa 2: recuperar as solicitações do agente
<a name="flows-multi-turn-invocation-retrieve-requests"></a>

Se o nó do agente no fluxo decidir que precisa de mais informações do usuário, o fluxo de resposta (`responseStream`) de `InvokeFlow` incluirá um objeto de evento `FlowMultiTurnInputRequestEvent`. O evento tem as informações solicitadas no campo `content` (`FlowMultiTurnInputContent`). No exemplo a seguir, a solicitação no campo `document` é para obter informações sobre o número de músicas, o gênero musical e o tema da playlist. Em seu código, você precisa obter essas informações do usuário.

Veja a seguir um exemplo de um objeto JSON `FlowMultiTurnInputRequestEvent`.

```
{
    "nodeName": "AgentsNode_1",
    "nodeType": "AgentNode",
    "content": {
        "document": "Certainly! I'd be happy to create a playlist for you. To make sure it's tailored to your preferences, could you please provide me with the following information:
        1. How many songs would you like in the playlist?
        2. What genre of music do you prefer? 
        3. Is there a specific theme or mood you'd like for the playlist? Once you provide these details, I'll be able to create a customized playlist just for you."
    }
}
```

Como o fluxo não pode continuar enquanto mais entradas não forem recebidas, o fluxo também emite um evento `FlowCompletionEvent`. Um fluxo sempre emite `FlowMultiTurnInputRequestEvent` antes de `FlowCompletionEvent`. Se o valor de `completionReason` no evento `FlowCompletionEvent` for `INPUT_REQUIRED`, o fluxo precisará de mais informações para continuar. 

Veja a seguir um exemplo de um objeto JSON `FlowCompletionEvent`.

```
{
    "completionReason": "INPUT_REQUIRED"
}
```

### Etapa 3: enviar a resposta do usuário ao fluxo
<a name="flows-multi-turn-invocation-continue"></a>

Envie a resposta do usuário de volta ao fluxo chamando novamente a operação `InvokeFlow`. Você dever incluir o `executionId` da conversa.

Veja a seguir um exemplo de JSON para a solicitação a `InvokeFlow`. O campo `document` contém toda a resposta do usuário.

```
{
  "flowIdentifier": "AUS7BMHXBE",
  "flowAliasIdentifier": "4KUDB8VBEF",
  "executionId": "b6450554-f8cc-4934-bf46-f66ed89b60a0",
  "inputs": [
    {
      "content": {
        "document": "1. 5 songs 2. Welsh rock music 3. Castles"
      },
      "nodeName": "AgentsNode_1",
      "nodeInputName": "agentInputText"
    }
  ]
}
```

Se o fluxo precisar de mais informações, ele criará outros eventos `FlowMultiTurnInputRequestEvent`.

### Etapa 4: encerrar o fluxo
<a name="flows-multi-turn-invocation-end"></a>

Quando não são necessárias mais informações, o fluxo emite um evento `FlowOutputEvent`, que contém a resposta final.

Veja a seguir um exemplo de um objeto JSON `FlowOutputEvent`.

```
{
    "nodeName": "FlowOutputNode",
    "content": {
        "document": "Great news! I've created a 5-song Welsh rock playlist centered around the theme of castles. 
        Here's the playlist I've put together for you: Playlist Name: Welsh Rock Castle Anthems 
        Description: A 5-song Welsh rock playlist featuring songs about castles 
        Songs: 
        1. Castell y Bere - Super Furry Animals 
        2. The Castle - Manic Street Preachers 
        3. Caerdydd (Cardiff Castle) - Stereophonics 
        4. Castell Coch - Catatonia 
        5. Chepstow Castle - Feeder 
        This playlist combines Welsh rock bands with songs that reference castles or specific Welsh castles. 
        Enjoy your castle-themed Welsh rock music experience!"
     }
}
```

O fluxo também emite um evento `FlowCompletionEvent`. O valor de `completionReason` é `SUCCESS`. 

Veja a seguir um exemplo de um objeto JSON `FlowCompletionEvent`.

```
{
    "completionReason": "SUCCESS"
}
```

O diagrama de sequência a seguir mostra as etapas de um fluxo de vários turnos.

![\[Etapas de fluxo para uma conversa de várias turnos.\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/images/flows/flows-multi-turn-steps.png)


## Criar e executar um exemplo de fluxo
<a name="flows-multi-turn-invocation-example-flow"></a>

Neste exemplo, você criará um fluxo que usa um agente para criar playlists para uma estação de rádio. O agente faz perguntas de esclarecimento para determinar o número de músicas, o gênero musical e o tema da playlist.

**Como criar o fluxo**

1. Crie um agente no console do Amazon Bedrock seguindo as instruções em [Criar e configurar o agente manualmente](agents-create.md). 
   + Para a Etapa *2.d*, insira **You are a playlist creator for a radio station. When asked to create a playlist, ask for the number of songs, the genre of music, and a theme for the playlist.**
   + Para a Etapa *2.e*, em **Entrada do usuário**, escolha **Habilitado**. Isso permite que o agente solicite mais informações, conforme necessário.

1. Crie um fluxo seguindo as instruções em [Criar e planejar um fluxo no Amazon Bedrock](flows-create.md). Observe que o fluxo deve ter um nó de entrada, um nó de agente e um nó de saída. 

1. Vincule o nó do agente ao agente que você criou na Etapa 1. O fluxo deve ser semelhante à imagem a seguir.  
![\[Fluxo de conversa de vários turnos\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/images/flows/flows-multi-turn.png)

1. Execute o fluxo no console do Amazon Bedrock. Para testar, você pode rastrear as etapas percorridas pelo fluxo. Para obter mais informações, consulte [Testar um fluxo no Amazon Bedrock](flows-test.md).

O exemplo de código Python a seguir mostra como usar o fluxo. 

Para executar o código, especifique o seguinte:
+ `region_name`— A AWS região na qual você está executando o fluxo.
+ `FLOW_ID`: ID da do fluxo.
+ `FLOW_ALIAS_ID`: o ID do alias do fluxo.

Para obter informações sobre como obter o IDs, consulte[Visualizar informações sobre fluxos no Amazon Bedrock](flows-view.md). O código solicita que uma solicitação inicial seja enviada ao fluxo e pede mais informações de acordo com a necessidade do fluxo. O código não gerencia outras solicitações do agente, como solicitações para chamar AWS Lambda funções. Para obter mais informações, consulte [Como o Amazon Bedrock Agents funciona](agents-how.md). Durante a execução, o código gera objetos `FlowTraceEvent` que você pode usar para rastrear o caminho da entrada até a resposta que o fluxo exibe. Para obter mais informações, consulte [Rastrear cada etapa no fluxo visualizando os respectivos rastreamentos no Amazon BedrockRastrear cada etapa no fluxo visualizando os respectivos rastreamentos](flows-trace.md).

```
"""
Runs an Amazon Bedrock flow and handles muli-turn interaction for a single conversation.

"""
import logging
import boto3
import botocore



import botocore.exceptions

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)


def invoke_flow(client, flow_id, flow_alias_id, input_data, execution_id):
    """
    Invoke an Amazon Bedrock flow and handle the response stream.

    Args:
        client: Boto3 client for Amazon Bedrock agent runtime
        flow_id: The ID of the flow to invoke
        flow_alias_id: The alias ID of the flow
        input_data: Input data for the flow
        execution_id: Execution ID for continuing a flow. Use the value None on first run.

    Returns:
        Dict containing flow_complete status, input_required info, and execution_id
    """

    response = None
    request_params = None

    if execution_id is None:
        # Don't pass execution ID for first run.
        request_params = {
            "flowIdentifier": flow_id,
            "flowAliasIdentifier": flow_alias_id,
            "inputs": [input_data],
            "enableTrace": True
        }
    else:
        request_params = {
            "flowIdentifier": flow_id,
            "flowAliasIdentifier": flow_alias_id,
            "executionId": execution_id,
            "inputs": [input_data],
            "enableTrace": True
        }

    response = client.invoke_flow(**request_params)
    if "executionId" not in request_params:
        execution_id = response['executionId']

    input_required = None
    flow_status = ""

    # Process the streaming response
    for event in response['responseStream']:
        # Check if flow is complete.
        if 'flowCompletionEvent' in event:
            flow_status = event['flowCompletionEvent']['completionReason']

        # Check if more input us needed from user.
        elif 'flowMultiTurnInputRequestEvent' in event:
            input_required = event

        # Print the model output.
        elif 'flowOutputEvent' in event:
            print(event['flowOutputEvent']['content']['document'])

        elif 'flowTraceEvent' in event:
            logger.info("Flow trace:  %s", event['flowTraceEvent'])

    return {
        "flow_status": flow_status,
        "input_required": input_required,
        "execution_id": execution_id
    }


if __name__ == "__main__":

    session = boto3.Session(profile_name='default', region_name='YOUR_FLOW_REGION')
    bedrock_agent_client = session.client('bedrock-agent-runtime')
    
    # Replace these with your actual flow ID and alias ID
    FLOW_ID = 'YOUR_FLOW_ID'
    FLOW_ALIAS_ID = 'YOUR_FLOW_ALIAS_ID'


    flow_execution_id = None
    finished = False

    # Get the intial prompt from the user.
    user_input = input("Enter input: ")

    flow_input_data = {
        "content": {
            "document": user_input
        },
        "nodeName": "FlowInputNode",
        "nodeOutputName": "document"
    }

    logger.info("Starting flow %s", FLOW_ID)

    try:
        while not finished:
            # Invoke the flow until successfully finished.

            result = invoke_flow(
                bedrock_agent_client, FLOW_ID, FLOW_ALIAS_ID, flow_input_data, flow_execution_id)
            status = result['flow_status']
            flow_execution_id = result['execution_id']
            more_input = result['input_required']
            if status == "INPUT_REQUIRED":
                # The flow needs more information from the user.
                logger.info("The flow %s requires more input", FLOW_ID)
                user_input = input(
                    more_input['flowMultiTurnInputRequestEvent']['content']['document'] + ": ")
                flow_input_data = {
                    "content": {
                        "document": user_input
                    },
                    "nodeName": more_input['flowMultiTurnInputRequestEvent']['nodeName'],
                    "nodeInputName": "agentInputText"

                }
            elif status == "SUCCESS":
                # The flow completed successfully.
                finished = True
                logger.info("The flow %s successfully completed.", FLOW_ID)

    except botocore.exceptions.ClientError as e:
        print(f"Client error: {str(e)}")
        logger.error("Client error: %s", {str(e)})

    except Exception as e:
        print(f"An error occurred: {str(e)}")
        logger.error("An error occurred: %s", {str(e)})
        logger.error("Error type: %s", {type(e)})
```

# Executar exemplos de código do recurso Fluxos do Amazon Bedrock
<a name="flows-code-ex"></a>

Os seguintes exemplos de código pressupõem que você atendeu a estes pré-requisitos:

1. Configurar um perfil para ter permissões para as ações do Amazon Bedrock. Se não tiver, consulte [Início rápido](getting-started.md).

1. Configurar as suas credenciais para usar a API da AWS. Se não tiver, consulte [Começar a usar a API](getting-started-api.md).

1. Criar um perfil de serviço para executar ações relacionadas ao fluxo em seu nome. Se não tiver, consulte [Criar um perfil de serviço para fluxos do Amazon Bedrock no Amazon Bedrock](flows-permissions.md).

Para criar um prompt, envie uma solicitação [CreateFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateFlow.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt). Para obter um código de exemplo, consulte [Executar exemplos de código do recurso Fluxos do Amazon Bedrock](#flows-code-ex)

Os seguintes campos são obrigatórios:


****  

| Campo | Descrição básica | 
| --- | --- | 
| nome | Um nome para o fluxo. | 
| executionRoleArn | O ARN do [perfil de serviço com permissões para criar e gerenciar fluxos](flows-permissions.md). | 

Os seguintes campos são opcionais:


****  

| Campo | Caso de uso | 
| --- | --- | 
| definição | Contém os nodes e as connections que compõem o fluxo. | 
| description | Para descrever o fluxo. | 
| tags | Para associar tags ao fluxo. Para obter mais informações, consulte [Marcação de recursos do Amazon Bedrock](tagging.md). | 
| customerEncryptionKeyArn | Para criptografar o recurso com uma chave do KMS. Para obter mais informações, consulte [Criptografia dos recursos do Amazon Bedrock Flows](encryption-flows.md). | 
| clientToken | Para garantir que a solicitação de API seja concluída apenas uma vez. Para obter mais informações, consulte [Ensuring idempotency](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). | 

Embora o campo `definition` seja opcional, ele é necessário para que o fluxo seja funcional. É possível escolher criar um fluxo sem a definição primeiro e, em vez disso, atualizar o fluxo posteriormente.

Para cada nó na lista de `nodes`, especifique o tipo de nó no campo `type` e forneça a configuração correspondente do nó no campo `config`. Para obter detalhes sobre a estrutura da API de diferentes tipos de nó, consulte [Tipos de nó para o fluxo](flows-nodes.md).

Para experimentar alguns exemplos de código para fluxos do Amazon Bedrock, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Python ]

1. Crie um fluxo usando uma solicitação [CreateFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateFlow.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt) com os seguintes nós:
   + Um nó de entrada.
   + Um nó de prompt com um prompt definido em linha que cria uma playlist de músicas usando duas variáveis (`genre` e `number`).
   + Um nó de saída que retorna a conclusão do modelo.

   Execute o seguinte trecho de código para carregar o AWS SDK para Python (Boto3), crie um cliente para agentes do Amazon Bedrock e crie um fluxo com os nós (substitua o campo `executionRoleArn` pelo ARN do perfil de serviço que você criou para o fluxo):

   ```
   # Import Python SDK and create client
   import boto3
   
   client = boto3.client(service_name='bedrock-agent')
   
   # Replace with the service role that you created. For more information, see https://docs.aws.amazon.com/bedrock/latest/userguide/flows-permissions.html
   FLOWS_SERVICE_ROLE = "arn:aws:iam::123456789012:role/MyFlowsRole"
   
   # Define each node
   
   # The input node validates that the content of the InvokeFlow request is a JSON object.
   input_node = {
       "type": "Input",
       "name": "FlowInput",
       "outputs": [
           {
               "name": "document",
               "type": "Object"
           }
       ]
   }
   
   # This prompt node defines an inline prompt that creates a music playlist using two variables.
   # 1. {{genre}} - The genre of music to create a playlist for
   # 2. {{number}} - The number of songs to include in the playlist
   # It validates that the input is a JSON object that minimally contains the fields "genre" and "number", which it will map to the prompt variables.
   # The output must be named "modelCompletion" and be of the type "String".
   prompt_node = {
       "type": "Prompt",
       "name": "MakePlaylist",
       "configuration": {
           "prompt": {
               "sourceConfiguration": {
                   "inline": {
                       "modelId": "amazon.nova-lite-v1:0",
                       "templateType": "TEXT",
                       "inferenceConfiguration": {
                           "text": {
                               "temperature": 0.8
                           }
                       },
                       "templateConfiguration": { 
                           "text": {
                               "text": "Make me a {{genre}} playlist consisting of the following number of songs: {{number}}."
                           }
                       }
                   }
               }
           }
       },
       "inputs": [
           {
               "name": "genre",
               "type": "String",
               "expression": "$.data.genre"
           },
           {
               "name": "number",
               "type": "Number",
               "expression": "$.data.number"
           }
       ],
       "outputs": [
           {
               "name": "modelCompletion",
               "type": "String"
           }
       ]
   }
   
   # The output node validates that the output from the last node is a string and returns it as is. The name must be "document".
   output_node = {
       "type": "Output",
       "name": "FlowOutput",
       "inputs": [
           {
               "name": "document",
               "type": "String",
               "expression": "$.data"
           }
       ]
   }
   
   # Create connections between the nodes
   connections = []
   
   #   First, create connections between the output of the flow input node and each input of the prompt node
   for input in prompt_node["inputs"]:
       connections.append(
           {
               "name": "_".join([input_node["name"], prompt_node["name"], input["name"]]),
               "source": input_node["name"],
               "target": prompt_node["name"],
               "type": "Data",
               "configuration": {
                   "data": {
                       "sourceOutput": input_node["outputs"][0]["name"],
                       "targetInput": input["name"]
                   }
               }
           }
       )
   
   # Then, create a connection between the output of the prompt node and the input of the flow output node
   connections.append(
       {
           "name": "_".join([prompt_node["name"], output_node["name"]]),
           "source": prompt_node["name"],
           "target": output_node["name"],
           "type": "Data",
           "configuration": {
               "data": {
                   "sourceOutput": prompt_node["outputs"][0]["name"],
                   "targetInput": output_node["inputs"][0]["name"]
               }
           }
       }
   )
   
   # Create the flow from the nodes and connections
   response = client.create_flow(
       name="FlowCreatePlaylist",
       description="A flow that creates a playlist given a genre and number of songs to include in the playlist.",
       executionRoleArn=FLOWS_SERVICE_ROLE,
       definition={
           "nodes": [input_node, prompt_node, output_node],
           "connections": connections
       }
   )
   
   flow_id = response.get("id")
   ```

1. Liste os fluxos em sua conta, inclusive o que você acabou de criar, executando o seguinte trecho de código para fazer uma solicitação [ListFlows](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListFlows.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

   ```
   client.list_flows()
   ```

1. Obtenha informações sobre o fluxo que você acabou de criar executando o seguinte trecho de código para fazer uma solicitação [GetFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetFlow.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

   ```
   client.get_flow(flowIdentifier=flow_id)
   ```

1. Prepare o fluxo para que as alterações mais recentes do rascunho de trabalho sejam aplicadas e para que ele esteja pronto para a versão. Execute o seguinte trecho de código para fazer uma solicitação [PrepareFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PrepareFlow.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

   ```
   client.prepare_flow(flowIdentifier=flow_id)
   ```

1. Crie uma versão do rascunho de trabalho do fluxo para criar um snapshot estático do fluxo e recuperar informações sobre ele com as seguintes ações:

   1. Crie uma versão executando o seguinte trecho de código para fazer uma solicitação [CreateFlowVersion](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateFlowVersion.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

      ```
      response = client.create_flow_version(flowIdentifier=flow_id)
                                      
      flow_version = response.get("version")
      ```

   1. Liste todas as versões do fluxo executando o seguinte trecho de código para fazer uma solicitação [ListFlowVersions](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListFlowVersions.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

      ```
      client.list_flow_versions(flowIdentifier=flow_id)
      ```

   1. Obtenha informações sobre a versão executando o seguinte trecho de código para fazer uma solicitação [GetFlowVersion](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetFlowVersion.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

      ```
      client.get_flow_version(flowIdentifier=flow_id, flowVersion=flow_version)
      ```

1. Crie um alias para apontar para a versão do fluxo que você criou e recupere as informações sobre ele com as seguintes ações:

   1. Crie um alias e aponte-o para a versão que você acabou de criar executando o seguinte trecho de código para fazer uma solicitação [CreateFlowAlias](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateFlowAlias.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock:](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

      ```
      response = client.create_flow_alias(
          flowIdentifier=flow_id,
          name="latest",
          description="Alias pointing to the latest version of the flow.",
          routingConfiguration=[
              {
                  "flowVersion": flow_version
              }
          ]
      )
      
      flow_alias_id = response.get("id")
      ```

   1. Liste todos os aliases do fluxo executando o seguinte trecho de código para fazer uma solicitação [ListFlowAlias](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListFlowAliass.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

      ```
      client.list_flow_aliases(flowIdentifier=flow_id)
      ```

   1. Obtenha informações sobre o alias que você acabou de criar executando o seguinte trecho de código para fazer uma solicitação [GetFlowAlias](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetFlowAlias.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

      ```
      client.get_flow_alias(flowIdentifier=flow_id, aliasIdentifier=flow_alias_id)
      ```

1. Execute o trecho de código a seguir para criar um cliente do Amazon Bedrock Agents Runtime e invoque um fluxo. A solicitação preenche as variáveis no prompt no fluxo e exibe a resposta do modelo para fazer uma solicitação [InvokeFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html) com um [endpoint de runtime do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt):

   ```
   client_runtime = boto3.client('bedrock-agent-runtime')
   
   response = client_runtime.invoke_flow(
       flowIdentifier=flow_id,
       flowAliasIdentifier=flow_alias_id,
       inputs=[
           {
               "content": {
                   "document": {
                       "genre": "pop",
                       "number": 3
                   }
               },
               "nodeName": "FlowInput",
               "nodeOutputName": "document"
           }
       ]
   )
   
   result = {}
   
   for event in response.get("responseStream"):
       result.update(event)
   
   if result['flowCompletionEvent']['completionReason'] == 'SUCCESS':
       print("Flow invocation was successful! The output of the flow is as follows:\n")
       print(result['flowOutputEvent']['content']['document'])
   
   else:
       print("The flow invocation completed because of the following reason:", result['flowCompletionEvent']['completionReason'])
   ```

   A resposta deve apresentar uma playlist com três músicas pop.

1. Exclua o alias, a versão e o fluxo que você criou com as seguintes ações:

   1. Exclua o alias executando o seguinte trecho de código para fazer uma solicitação [DeleteFlowAlias](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeleteFlowAlias.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

      ```
      client.delete_flow_alias(flowIdentifier=flow_id, aliasIdentifier=flow_alias_id)
      ```

   1. Exclua a versão executando o seguinte trecho de código para fazer uma solicitação [DeleteFlowVersion](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeleteFlowVersion.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

      ```
      client.delete_flow_version(flowIdentifier=flow_id, flowVersion=flow_version)
      ```

   1. Exclua o fluxo executando o seguinte trecho de código para fazer uma solicitação [DeleteFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeleteFlow.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt):

      ```
      client.delete_flow(flowIdentifier=flow_id)
      ```

------

# Excluir um fluxo do Amazon Bedrock
<a name="flows-delete"></a>

Caso não precise mais de um fluxo, você pode excluí-lo. Os fluxos que você exclui são retidos nos servidores da AWS por até 14 dias. Para saber como excluir um fluxo, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Para excluir um fluxo**

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console do Amazon Bedrock. Em seguida, abra o console do Amazon Bedrock em [https://console.aws.amazon.com/bedrock/](https://console.aws.amazon.com/bedrock).

1. Selecione **Fluxos do Amazon Bedrock** no painel de navegação à esquerda. Na seção **Fluxos do Amazon Bedrock**, selecione um fluxo para excluir.

1. Escolha **Excluir**.

1. É exibida uma caixa de diálogo avisando sobre as consequências da exclusão. Para confirmar que deseja excluir o fluxo, insira **delete** no campo de entrada e selecione **Excluir**.

1. Um banner é exibido informando que o fluxo está sendo excluído. Quando a exclusão for concluída, um banner de sucesso será exibido.

------
#### [ API ]

Para excluir um fluxo, envie uma solicitação [DeleteFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeleteFlow.html) com um [endpoint de tempo de compilação do recurso Agentes para Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt) e especifique o ARN ou o ID do fluxo como o `flowIdentifier`.

------