AI Agents · Aula

Persistindo o estado do grafo (pontos de verificação)

Salve o estado no Postgres ou SQLite para que um agente de longa duração possa ser pausado, retomado e auditado.

Aula 4 de 415 etapas

Persistindo o estado do grafo (pontos de verificação) é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Por que persistir o estado?

Agentes de longa duração precisam de:

  • Pausar e retomar horas depois
  • Recuperar-se de falhas durante a execução
  • Oferecer suporte à participação humana (aguardar aprovação)
  • Reproduzir uma execução para depuração

Os pontos de verificação do LangGraph persistem o estado em cada limite entre nós.

Ponto de verificação em memória

Para desenvolvimento/testes:

from langgraph.checkpoint.memory import MemorySaver

checkpointer = MemorySaver()
app = graph.compile(checkpointer=checkpointer)

Ponto de verificação do Postgres

Para produção:

from langgraph.checkpoint.postgres import PostgresSaver

checkpointer = PostgresSaver.from_conn_string('postgresql://...')
await checkpointer.setup()   # create tables
app = graph.compile(checkpointer=checkpointer)

Ponto de verificação do Sqlite

Persistência local sem um servidor de banco de dados:

from langgraph.checkpoint.sqlite import SqliteSaver
import sqlite3

conn = sqlite3.connect('agents.db', check_same_thread=False)
checkpointer = SqliteSaver(conn)

IDs de thread

Cada execução tem um thread_id — como um ID de sessão. Usuários diferentes recebem thread_ids separados; retomar uma execução significa usar o mesmo ID:

config = {'configurable': {'thread_id': 'user-42-conversation-1'}}
result = app.invoke({'messages': [...]}, config)

Retomando uma execução

Chame invoke com o mesmo thread_id e sem entrada — o agente continuará de onde parou:

# Some hours later:
app.invoke(None, config)

Inspecionando o estado

Leia o estado atual de uma thread:

snapshot = app.get_state(config)
print(snapshot.values)         # current state dict
print(snapshot.next)           # which node is next
print(snapshot.created_at)

Histórico do estado

Retroceda por cada ponto de verificação:

for snapshot in app.get_state_history(config):
    print(snapshot.created_at, snapshot.values)

Criando uma ramificação de uma execução

Você pode atualizar o estado em qualquer ponto de verificação anterior e executar novamente a partir dali — útil para depuração de cenários hipotéticos:

app.update_state(config, {'plan': 'a different plan'})
app.invoke(None, config)   # continue with the new plan

Participação humana com interrupt_before

Pause a execução antes de um nó sensível para que uma pessoa possa revisar:

app = graph.compile(
    checkpointer=checkpointer,
    interrupt_before=['send_email']
)

result = app.invoke({'messages': [...]}, config)
# Agent paused. Human inspects state.
# When approved:
app.invoke(None, config)

Retomando após a edição

A pessoa pode editar o estado antes de retomar:

app.update_state(config, {'email_draft': 'final version'})
app.invoke(None, config)

Acompanhamento de custos entre pontos de verificação

O estado persistido pode incluir contadores de tokens/custos que sobrevivem a falhas:

class State(TypedDict):
    cost_usd: Annotated[float, lambda a, b: a + b]

# Every LLM-calling node adds to it.

Limpeza

Threads antigas se acumulam. Exclua periodicamente as concluídas para controlar o armazenamento:

await checkpointer.delete(thread_id='old-thread')

Retomando threads

Como retomar uma execução de agente após uma falha?

Recapitulação

Use SqliteSaver localmente e PostgresSaver em produção. Os IDs de thread separam as execuções. Combine-os com interrupt_before para fluxos de trabalho com participação humana.

Grátis para começar

Aprenda AI Agents com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
60
Aulas
239

Perguntas Frequentes

A aula “Persistindo o estado do grafo (pontos de verificação)” é grátis?

Sim — o texto completo de “Persistindo o estado do grafo (pontos de verificação)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Persistindo o estado do grafo (pontos de verificação)”?

Salve o estado no Postgres ou SQLite para que um agente de longa duração possa ser pausado, retomado e auditado. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Persistindo o estado do grafo (pontos de verificação)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Por que os grafos superam as cadeias lineares
  2. Nós, arestas e estado
  3. Roteamento condicional e ramificações
  4. Persistindo o estado do grafo (pontos de verificação)
← Voltar para AI Agents