AI 및 LLM에이전트

LangGraph 체크포인트

LangGraph 에이전트를 HotKV에 영속화하십시오. 그래프 상태를 일시정지, 재개, 되감기할 수 있고, 장기 메모리는 의미로 검색할 수 있습니다.

통과한 적합성 테스트
81
세이버
동기 + 비동기
불필요
라이선스
단계 1 / 6
설치

체크포인터와 스토어가 하나의 패키지에 들어 있습니다. Python 3.10 이상이 필요합니다.

예시 세션playing
# 설치
$ pip install langgraph-checkpoint-hotkv
Successfully installed langgraph-checkpoint-hotkv

실제 HotKV 명령과 예시 응답으로 구성된 애니메이션 안내입니다. 원하는 단계를 클릭하면 해당 단계로 이동합니다. 명령과 응답은 HotKV에서 입력하고 보는 그대로 영어로 표시됩니다.

문제

프로세스 메모리에 상태를 두는 LangGraph 에이전트는 재시작하면 모든 것을 잃습니다. 사람의 승인을 밤새 기다릴 수 없고, 실패한 실행을 재개할 수 없으며, 에이전트가 배운 것은 다음 대화까지 남지 않습니다.

HotKV의 해결 방식

langgraph-checkpoint-hotkv는 각 그래프의 체크포인트를 HotKV에 저장합니다. 그래프를 중단했다가 재개하거나, 이전의 어느 단계로든 되감아 거기서 분기할 수 있습니다. 함께 제공되는 스토어는 스레드를 넘나드는 장기 메모리를 보관하며, 네임스페이스나 필터로, 임베딩 모델이 있으면 의미로 찾을 수 있습니다.

단계별 설명

명령 하나하나, 무슨 일이 일어나는가

  1. 01

    설치

    체크포인터와 스토어가 하나의 패키지에 들어 있습니다. Python 3.10 이상이 필요합니다.

    pip install langgraph-checkpoint-hotkv
  2. 02

    HotKV 체크포인터로 컴파일

    이제 그래프의 모든 단계가 HotKV에 저장됩니다.

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

    승인이 필요할 때까지 실행

    그래프는 단계를 진행하며 매 단계 후 체크포인트를 저장하고, 환불 직전에 멈춥니다.

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

    몇 시간 뒤, 재시작 후

    밤사이 프로세스가 재시작되었습니다. 상태는 여전히 HotKV에 있으며 같은 단계에서 기다리고 있습니다.

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

    승인하고 재개

    승인자가 승인하면 그래프는 저장된 체크포인트부터 계속 진행합니다.

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

    스레드를 넘어 기억

    장기 메모리는 스토어에 있으며 이후 어떤 대화에서도 다시 찾을 수 있습니다.

    store.put(("users", "42"), "prefs", {"refunds": "prefers store credit"})
적용 분야

실제 시나리오

사람이 개입하는 워크플로

환불, 계약 변경, 프로덕션 배포는 프로세스를 열어 두지 않고도 몇 분이든 며칠이든 사람의 승인을 기다립니다.

장시간 실행 리서치 에이전트

40단계에서 실패한 실행은 처음부터 다시 시작하지 않고 40단계부터 재개합니다.

디버깅과 평가

이전의 어느 체크포인트로든 돌아가 입력을 바꾸고 분기하여, 에이전트가 어떻게 동작했을지 확인합니다.

내장 기능

제공되는 기능

체크포인터

HotKVSaver와 AsyncHotKVSaver는 실행 사이에 그래프 상태를 유지하며, 중단, 재개, 시간 여행을 지원합니다.

장기 스토어

HotKVStore는 스레드를 넘나드는 항목을 보관하며, 네임스페이스, 필터, 의미로 검색할 수 있고 선택적으로 만료를 지정합니다.

적합성 테스트 완료

두 세이버 모두 LangGraph 자체 체크포인터 적합성 스위트(8개 기능, 81개 테스트)를 통과합니다.

모듈도, 라이선스도 불필요

HotKV의 핵심 데이터 타입과 벡터 인덱스를 사용하며, 엔터프라이즈 라이선스 유무와 관계없이 동작합니다.

체크포인터와 스토어

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"}})

자주 묻는 질문

엔터프라이즈 라이선스가 필요합니까?

아닙니다. 체크포인터와 스토어는 HotKV의 핵심 데이터 타입과 벡터 인덱스를 사용하므로, 라이선스 유무와 관계없이 서버에서 동작합니다.

비동기를 지원합니까?

예. AsyncHotKVSaver와 AsyncHotKVStore는 ainvoke 및 astream과 함께 동작합니다.

여러 앱이 하나의 서버를 공유할 수 있습니까?

예. 모든 데이터는 키 프리픽스(기본값 langgraph) 아래에 저장되며, 애플리케이션이나 환경마다 이를 바꿀 수 있습니다.

관련 사용 사례

직접 워크로드로 사용해 보십시오

HotKV는 Redis 프로토콜을 사용하므로 기존 클라이언트를 연결해 같은 명령을 그대로 실행할 수 있습니다.