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.
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 planParticipaçã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.
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
- Por que os grafos superam as cadeias lineares
- Nós, arestas e estado
- Roteamento condicional e ramificações
- Persistindo o estado do grafo (pontos de verificação)