Skip to content
LangGraph에서 마이그레이션

LangGraph에서 Lumen + Kova로 마이그레이션

SqliteSaver → LumenCheckpointer + LumenTracer, Agent를 Kova 클러스터에 배포합니다——비즈니스 코드는 그대로입니다.

얻게 되는 것 ​

Before(순수 LangGraph)After
SqliteSaver 단일 머신 영속화LumenCheckpointer + Kova 마이크로초급 WAL 복구
Trace 없음LumenTracer 자동 수집
Cost 통계 없음CostTracker Node 단위 집계
수동 ReplayReplay.from_run_id() 한 줄

마이그레이션 단계 ​

  1. Checkpointer 교체 — LumenCheckpointer는 BaseCheckpointSaver를 100% 구현하므로 비즈니스 코드를 전혀 수정할 필요가 없습니다.

    diff
    - from langgraph.checkpoint.sqlite import SqliteSaver
    + from lumen_ai import LumenCheckpointer
    
    - graph = wf.compile(
    -     checkpointer=SqliteSaver.from_conn_string("./state.db")
    - )
    + graph = wf.compile(
    +     checkpointer=LumenCheckpointer()
    + )
  2. Tracer 추가 — 로컬에서 기동한 후 http://localhost:7070에 접속하면 Trace 타임라인을 확인할 수 있습니다.

    diff
    + from lumen_ai import LumenTracer
    
      graph = wf.compile(
          checkpointer=LumenCheckpointer(),
    +     callbacks=[LumenTracer()],
      )
  3. Kova에 배포

    yaml
    # agent.yaml
    name: research-agent
    entry: python my_agent.py
    checkpointer: lumen
    replicas: 3
    bash
    lumen deploy --target kova://prod-cluster

로컬 검증 ​

bash
python my_agent.py           # 정상 실행
kill -9 $(pgrep -f my_agent) # 크래시 시뮬레이션
python my_agent.py           # 중단 지점부터 이어서 실행, LLM 재호출 없음

성능 비교 ​

지표BeforeAfter
복구 지연8ms마이크로초급
다중 프로세스락 필요네이티브
멀티 데이터센터수동비동기 복제
LLM 재호출가끔절대 없음

롤백

기존 SqliteSaver 코드를 주석으로 남겨 두면 언제든 diff를 되돌려 원상태로 복귀할 수 있습니다. 데이터는 서로 호환되지 않지만 병렬로 실행할 수 있습니다.

다음 단계 ​

다음 단계

Powered by Lurus Technologies