Pressione Esc para fechar

Agentes - State

← Voltar para o Dia 7: Agentes

State

O que é

State (estado) é o retrato atual da execução do agente: tudo o que descreve em que ponto a tarefa está naquele momento.

Pode incluir:

  • histórico de mensagens;
  • resultados de ferramentas já executadas;
  • plano e etapas concluídas;
  • variáveis de negócio (ex.: pedido_id, aprovado = false);
  • número de passos já usados.

Diferença em relação a Memory:

State  → situação da tarefa em andamento (o "agora")
Memory → conhecimento guardado para usar depois (o "lembrar")

Na prática, os termos se sobrepõem: a memória de curto prazo faz parte do estado.

Como funciona

Em frameworks como o LangGraph, o estado é um objeto explícito que passa de etapa em etapa:

class Estado(TypedDict):
    mensagens: list
    pedido_id: str | None
    status: str | None
    aprovado: bool

Cada nó do grafo lê o estado, faz seu trabalho e devolve atualizações:

[Identificar pedido] → estado.pedido_id = "123"
         ↓
[Consultar status]   → estado.status = "atrasado"
         ↓
[Pedir aprovação]    → estado.aprovado = True
         ↓
[Abrir reembolso]

O estado pode ser salvo (checkpoint) em um banco, permitindo pausar e retomar a execução.

Um exemplo

Um agente de reembolso precisa de aprovação do gerente, que só responde no dia seguinte.

Dia 1:
Estado = {pedido: 123, valor: 900, aguardando_aprovacao: true}
→ salvo no banco, execução pausada

Dia 2:
Gerente aprova
→ estado recarregado
→ agente continua exatamente de onde parou

Sem estado persistido, seria preciso refazer tudo.

Por que é importante

Gerenciar estado é o que separa um protótipo de um agente de produção.

Ele permite:

  • retomar tarefas longas após falhas;
  • Human-in-the-loop (pausar para aprovação);
  • depurar ("em que estado o agente estava quando errou?");
  • reproduzir execuções;
  • controlar o fluxo com regras de negócio explícitas, em vez de depender só do LLM.

link de compartilhamento