IA e LLMAgentes

Checkpoints do LangGraph

Persista agentes LangGraph no HotKV. Pause, retome e volte no tempo pelo estado do grafo, e mantenha a memória de longo prazo pesquisável pelo significado.

testes de conformidade aprovados
81
savers
Sync + async
necessária
Sem licença
Etapa 1 de 6
Instale

Um pacote para o checkpointer e o store. Python 3.10 ou mais recente.

Sessão de exemploplaying
# Instale
$ pip install langgraph-checkpoint-hotkv
Successfully installed langgraph-checkpoint-hotkv

Uma demonstração animada com comandos reais do HotKV e respostas de exemplo. Clique em qualquer etapa para ir direto a ela. Os comandos e as respostas ficam em inglês, exatamente como você os digita e vê no HotKV.

O problema

Um agente LangGraph que guarda o estado na memória do processo perde tudo em um reinício. Aprovações com intervenção humana não podem esperar até o dia seguinte, execuções que falharam não podem ser retomadas e nada do que o agente aprendeu sobrevive até a próxima conversa.

Como o HotKV resolve

O langgraph-checkpoint-hotkv armazena os checkpoints de cada grafo no HotKV. Um grafo pode ser interrompido e retomado, ou voltar a qualquer etapa anterior e ramificar a partir dela. O store complementar mantém a memória de longo prazo entre threads, encontrada por namespace, por filtro ou, com um modelo de embedding, pelo significado.

Passo a passo

O que acontece, comando por comando

  1. 01

    Instale

    Um pacote para o checkpointer e o store. Python 3.10 ou mais recente.

    pip install langgraph-checkpoint-hotkv
  2. 02

    Compile com um checkpointer HotKV

    Cada etapa do grafo agora é salva no HotKV.

    graph = builder.compile(checkpointer=HotKVSaver(hotkv.from_url("hotkv://localhost:6379")), interrupt_before=["refund"])
  3. 03

    Execute até precisar de aprovação

    O grafo percorre as suas etapas, salvando um checkpoint depois de cada uma, e para antes do reembolso.

    graph.invoke({"messages": [("user", "Refund order 1182")]}, {"configurable": {"thread_id": "t-81"}})
  4. 04

    Horas depois, após um reinício

    O processo reiniciou durante a noite. O estado continua no HotKV, esperando na mesma etapa.

    graph.get_state({"configurable": {"thread_id": "t-81"}}).next
  5. 05

    Aprove e retome

    O aprovador diz sim e o grafo continua a partir do checkpoint salvo.

    graph.invoke(None, {"configurable": {"thread_id": "t-81"}})
  6. 06

    Lembre entre threads

    A memória de longo prazo fica no store e é encontrada de novo em qualquer conversa posterior.

    store.put(("users", "42"), "prefs", {"refunds": "prefers store credit"})
Onde se encaixa

Cenários reais

Fluxos com intervenção humana

Reembolsos, mudanças de contrato e deploys em produção esperam a aprovação de uma pessoa, por minutos ou dias, sem manter um processo aberto.

Agentes de pesquisa de longa duração

Uma execução que falha na etapa 40 é retomada na etapa 40, em vez de começar do zero.

Depuração e avaliação

Volte a qualquer checkpoint anterior, mude a entrada e ramifique, para ver como o agente teria se comportado.

Integrado

O que você ganha

Checkpointer

HotKVSaver e AsyncHotKVSaver mantêm o estado do grafo entre execuções, com interrupção, retomada e viagem no tempo.

Store de longo prazo

O HotKVStore mantém itens entre threads, pesquisáveis por namespace, filtro ou significado, com expiração opcional.

Testado em conformidade

Passa na própria suíte de conformidade de checkpointers do LangGraph, 81 testes em 8 capacidades, para os dois savers.

Sem módulos, sem licença

Usa os tipos de dados essenciais do HotKV e o seu índice vetorial, e funciona com ou sem uma licença enterprise.

Checkpointer e store

python
from langgraph.checkpoint.hotkv import HotKVSaver

with HotKVSaver.from_conn_string("hotkv://localhost:6379") as checkpointer:
    graph = builder.compile(checkpointer=checkpointer)
    graph.invoke({"messages": [("user", "hi")]}, {"configurable": {"thread_id": "1"}})

Perguntas frequentes

Preciso de uma licença enterprise?

Não. O checkpointer e o store usam os tipos de dados essenciais e o índice vetorial do HotKV, e funcionam em um servidor com ou sem licença.

Há suporte a async?

Sim. AsyncHotKVSaver e AsyncHotKVStore funcionam com ainvoke e astream.

Várias aplicações podem compartilhar um servidor?

Sim. Tudo é armazenado sob um prefixo de chave, langgraph por padrão, que você pode mudar por aplicação ou ambiente.

Casos de uso relacionados

Experimente com a sua própria carga de trabalho

O HotKV fala o protocolo Redis, então você pode apontar um cliente existente para ele e executar estes mesmos comandos.