Lição 4: Gerenciamento de estado e passagem de contexto
Objetivos de aprendizado:
- Distinguir o estado do fluxo de trabalho do contexto do agente
- Dominar três padrões de gerenciamento de estado
- Entender checkpoint e recuperação
Pré-requisitos: Lição 3: Decompondo uma tarefa complexa em um fluxo de trabalho | Próxima: Lição 5 >>
Por que o gerenciamento de estado é o coração de um fluxo de trabalho
Você projeta um fluxo de trabalho perfeito: 10 passos, dependências limpas. No passo 8, o servidor reinicia. O fluxo de trabalho quebra.
Rodar tudo de novo? Aí o trabalho dos 7 primeiros passos — talvez 30 minutos dele — vai para o lixo.
Esse é o preço de não ter gerenciamento de estado.
O gerenciamento de estado resolve três problemas:1
- Passagem de dados entre passos: como o passo 3 recebe os resultados dos passos 1 e 2?
- Acompanhamento do progresso: quanto o fluxo de trabalho já avançou? Quanto falta?
- Recuperação de falhas: depois de uma queda, retomar de onde parou em vez de começar do zero.
Sem gerenciamento de estado, um agente só consegue passar informação pelo histórico da conversa. O histórico da conversa transborda, se perde e é esquecido pelo agente.
Com gerenciamento de estado, o fluxo de trabalho tem uma “memória” clara: persistente, consultável, recuperável.2
Estado vs. contexto vs. memória
Essas três palavras são fáceis de confundir, então vamos fixá-las primeiro:1
Estado
- Todas as informações sobre a tarefa atual: em que passo você está, o resultado de cada passo, o que fazer em seguida
- É um instantâneo: tudo o que o fluxo de trabalho sabe neste momento
- Armazenado em: variáveis de script, um banco de dados, arquivos
Contexto
- A informação passada para uma única chamada de agente
- É entrada: o que este agente precisa saber para fazer seu trabalho
- Extraído seletivamente do estado: nem todo o estado vai para o agente, apenas a parte relevante
Memória
- Lições aprendidas no passado: o que já foi feito, que problemas apareceram, quais foram as soluções
- É histórico: conhecimento de longo prazo que atravessa tarefas e sessões
- Fora do escopo desta lição (memória de longo prazo é um tema difícil por si só)
Um exemplo:
O princípio central: o estado é global, o contexto é local.3
Padrão de estado 1: variáveis de script (estado em memória)
Quando usar: fluxos de trabalho curtos (< 10 minutos) que não precisam atravessar processos ou máquinas.
Vantagem: simples, rápido, sem dependências externas.
Desvantagem: o estado se perde quando o processo quebra, sem forma de recuperar.
Padrão básico
Onde o estado vive? Nas variáveis locais da função (processed, results, errors).
E se o processo quebrar? Todo o estado se perde, e você recomeça do início.
Melhor: um objeto de estado estruturado
Por que isso ajuda: o estado tem uma estrutura clara, é fácil de passar para outras funções e é fácil de serializar (caso você precise persistir).
Padrão de estado 2: checkpoint
Quando usar: fluxos de trabalho de duração média (10-60 minutos) em que você precisa salvar o progresso depois de operações caras.
Vantagem: depois de uma queda, você pode retomar do checkpoint mais recente e evitar refazer trabalho.
Desvantagem: você precisa projetar os locais dos checkpoints e a lógica de recuperação.1
Escolhendo os locais dos checkpoints
Estratégias de checkpoint:
- Checkpoints periódicos: salvar a cada N tarefas ou a cada M minutos
- Checkpoints por fase: salvar depois que cada fase importante termina (por exemplo, “fase de análise concluída”)
- Antes de operações críticas: salvar antes de uma operação irreversível (por exemplo, um deploy, uma exclusão)
Padrão de estado 3: armazenamento externo (estado persistente)
Quando usar: fluxos de trabalho de longa duração (> 1 hora), trabalho que precisa se coordenar entre máquinas ou trabalho que precisa de aprovação humana.
Vantagem: o estado é persistente; a queda de um processo ou o reinício de uma máquina não importam, e pausar/retomar é suportado.
Desvantagem: exige uma dependência externa (um banco de dados, Redis) e acrescenta complexidade.4
Implementação básica
O padrão central: uma máquina de estados2
As fases do fluxo de trabalho são os estados de uma máquina de estados:
Cada transição de fase é salva no armazenamento externo, e é isso que permite ao fluxo de trabalho retomar a partir de qualquer fase.
Boas práticas para passar contexto
Princípio 1: passe apenas o necessário
Por quê? Quanto maior o contexto, mais fácil é o agente se distrair; a qualidade do raciocínio cai e o custo sobe.3
Princípio 2: estruture o contexto
Por quê? Contexto estruturado é mais fácil de o agente entender e mais fácil de você depurar.
Princípio 3: contexto acumulado vs. contexto reiniciado
Contexto acumulado: o resultado de cada passo é adicionado ao contexto, que só cresce.
Contexto reiniciado: cada passo limpa o contexto e mantém apenas o necessário.
Qual escolher: use contexto reiniciado na maior parte do tempo, para evitar a explosão do contexto. Use contexto acumulado apenas quando passos posteriores realmente precisarem de todos os resultados anteriores (como um passo final de resumo).5
Observabilidade do estado
Um bom fluxo de trabalho deve conseguir responder a estas perguntas:
- Em que fase ele está agora?
- Quanto já foi feito? Quanto falta?
- Quantos erros ele encontrou?
- Quando é esperado que termine?
Implementando o acompanhamento de progresso
Próxima lição: Lição 5: Tratamento de erros e estratégias de retentativa — aprenda a fazer um fluxo de trabalho se recuperar com elegância em caso de falha, em vez de quebrar por completo