Agent Mentor Learn
Projetando fluxos de trabalho de agentes: de conversas avulsas à automação de várias etapas · Lição 2 de 6

Lição 2: Blocos de construção de um fluxo de trabalho: passos, estado, ramificações e loops

Objetivos de aprendizado:

  • Dominar os quatro blocos de construção centrais de um fluxo de trabalho
  • Entender dependências e passagem de dados entre passos
  • Aprender a projetar o fluxograma de execução de um fluxo de trabalho

Pré-requisitos: Lição 1: Da conversa ao fluxo de trabalho | Próxima: Lição 3 >>

Fluxos de trabalho não são mágica, são composição

Na lição anterior vimos que um fluxo de trabalho consegue coordenar dezenas de agentes para concluir uma tarefa complexa. Mas abra um script de fluxo de trabalho e você vai encontrar código comum: funções, loops, condicionais.

O poder de um fluxo de trabalho vem da combinação de quatro blocos de construção simples:

  1. Passos — a unidade básica de trabalho
  2. Estado — dados compartilhados entre passos
  3. Ramificações — escolher um caminho com base em uma condição
  4. Loops — repetir uma operação parecida

Depois que você entende esses quatro blocos, consegue projetar um fluxo de trabalho de qualquer complexidade.1

Bloco de construção 1: passos

Um passo é a operação atômica de um fluxo de trabalho. Cada passo é ou uma chamada de Agent ou uma função determinística.2

Passos de Agent x passos de função

Quando usar um passo de Agent:

  • Você precisa entender uma entrada difusa (linguagem natural, dados não estruturados)
  • Você precisa gerar conteúdo criativo (documentação, código, explicações)
  • Você precisa emitir um julgamento (este código tem algum problema de segurança?)

Quando usar um passo de função:

  • Transformação de dados (filtrar, ordenar, formatar)
  • Matemática (estatísticas, agregação)
  • Checagens condicionais (lógica if-else)
  • Operações de arquivo (ler, escrever, mover)

Boa prática: passos de Agent raciocinam, passos de função computam. Não faça o LLM aplicar um filtro simples em um array ou somar números — é lento, caro e pouco confiável.2

O contrato de entrada/saída de um passo

Todo passo deve ter um contrato claro de entrada e saída:

Um contrato claro deixa o fluxo de trabalho fácil de entender e de depurar. Quando o passo 5 quebra, você enxerga na hora que foi porque a saída do passo 4 veio no formato errado.3

Bloco de construção 2: estado

Estado são os dados compartilhados entre passos. É como a memória do fluxo de trabalho, guardando resultados intermediários e o progresso da execução.4

Dois tipos de estado

Estado do fluxo de trabalho:

  • Toda a informação sobre a tarefa atual: em que passo você está, o resultado de cada passo, o que o próximo passo precisa
  • Guardado em variáveis do script ou em um banco de dados externo
  • Passado entre passos, mas não entre sessões

Estado de sessão:

  • O histórico de conversa do usuário e as configurações de preferência
  • O próprio Agent gerencia isso; o fluxo de trabalho não precisa se preocupar com ele4

Padrões de gerenciamento de estado

Padrão 1: variáveis do script (bom para fluxos de trabalho curtos)

Padrão 2: um objeto de estado (bom para complexidade média)

Padrão 3: armazenamento externo (bom para fluxos de trabalho de longa duração)

Checkpointing: salve o estado depois dos passos importantes, para que o fluxo de trabalho consiga retomar do ponto da falha em vez de começar tudo de novo.5

Bloco de construção 3: ramificações

Uma ramificação escolhe um caminho de execução diferente com base em uma condição.6

Ramificação simples

Ramificação a partir da decisão de um Agent

Ramificação de tratamento de erros

Bloco de construção 4: loops

Um loop permite rodar a mesma operação sobre muitos objetos parecidos. Essa é a fonte central do poder de um fluxo de trabalho.6

Loop sequencial

Loop paralelo

Aqui, limit = 5 é o limite de concorrência: rode no máximo 5 por vez, em vez de disparar todos os 100 de uma só vez com Promise.all, o que abriria conexões ou descritores de arquivo demais.

Loop com acumulação

Loop com terminação condicional

Combinando os blocos de construção: um fluxo de trabalho completo

Vamos combinar esses quatro blocos para projetar um fluxo de trabalho de “checagem de saúde de microsserviços”:

mermaid
graph TD    A[Início] --> B[Listar todos os serviços]    B --> C{Mais de 10 serviços?}    C -->|Sim| D[Checar todos os serviços em paralelo]    C -->|Não| E[Checar todos os serviços em sequência]    D --> F[Coletar resultados]    E --> F    F --> G{Algum serviço falhou?}    G -->|Sim| H[Gerar relatório de alerta]    G -->|Não| I[Gerar relatório de saúde]    H --> J[Enviar notificação]    I --> K[Fim]    J --> K

O script correspondente:

Este fluxo de trabalho usa os quatro blocos de construção:

  • Passos: listServices, checkServiceHealth, as chamadas agent()
  • Estado: o objeto state guardando o total e as listas de saudáveis/fora de saúde
  • Ramificações: paralelo x sequencial conforme a quantidade de serviços, e o tipo de relatório conforme o status de saúde
  • Loops: o loop paralelo com map, o loop sequencial com for

Como pensar o design de fluxos de trabalho

Trabalhe de trás para frente, a partir do ponto final:

  1. Qual é a saída final? (um relatório, serviços em produção, código limpo)
  2. De que entrada o último passo precisa? (dados agregados, resultados validados)
  3. De onde vem essa entrada? (da saída do passo anterior)
  4. Repita até chegar ao início (entrada do usuário ou sistema de arquivos)

Identifique as oportunidades de paralelismo:

  • Se vários passos não dependem uns dos outros, eles podem rodar em paralelo
  • “Para cada X, faça Y” quase sempre pode ser paralelizado
  • O paralelismo pode transformar dez tarefas de 5 minutos, de 50 minutos para 5

Deixe as dependências explícitas:


Próxima: Lição 3: Decompondo uma tarefa complexa em um fluxo de trabalho — estratégias para quebrar sistematicamente uma tarefa complexa em passos de fluxo de trabalho

Footnotes

  1. MindStudio: Five Claude Code Agentic Workflow Patterns — https://www.mindstudio.ai/blog/claude-code-agentic-workflow-patterns

  2. Mae Capozzi: Building a Multi-Agent Orchestrator — https://maecapozzi.com/blog/building-a-multi-agent-orchestrator 2

  3. AWS Marketplace: Agent Orchestration — https://aws.amazon.com/marketplace/build-learn/ai-agent-learning-series/agent-orchestration

  4. MindStudio: Workflow State vs. Session State — https://www.mindstudio.ai/blog/workflow-state-vs-session-state-ai-agents 2

  5. MachineLearningMastery: 5 Architectural Patterns for Persistent Memory and State in AI Agents — https://machinelearningmastery.com/5-architectural-patterns-for-persistent-memory-and-state-in-ai-agents/

  6. Alex Op: Claude Code Workflows and Deterministic Orchestration — https://alexop.dev/posts/claude-code-workflows-deterministic-orchestration/ 2

Exercícios

01

Tarefa: projete um fluxo de trabalho de “processamento de imagens em lote”. A entrada são 50 imagens, e você precisa: (1) redimensioná-las para 800x600, (2) adicionar uma marca d'água, (3) convertê-las para o formato WebP.

Nível 1: Projete um fluxo de trabalho simples

Requisitos:

  • Desenhe o fluxograma (uma descrição em texto também serve, por exemplo A → B → C)
  • Diga quais passos usam funções e quais usam um Agent
  • Diga onde as coisas podem rodar em paralelo
  • Escreva a parte central do pseudocódigo (loop e ramificação)
Critérios de conclusão · marcado localmente
02

Um fluxo de trabalho de “migração de base de código” precisa: (1) varrer 200 arquivos para encontrar as chamadas de API que precisam ser migradas, (2) migrar todos os arquivos em paralelo, (3) rodar os testes, (4) se os testes falharem, reverter todas as mudanças.

Nível 2: Identifique as necessidades de gerenciamento de estado

Perguntas:

  1. Que estado esse fluxo de trabalho precisa salvar? Liste pelo menos 3 campos de estado.
  2. Depois de qual passo você deveria colocar um checkpoint? Por quê?
  3. Se o passo 3 (rodar os testes) falhar, de que informação de estado o fluxo de trabalho precisa para reverter corretamente?
Critérios de conclusão · marcado localmente