DOCS/journey/plans/251218_langgraph_1.0_upgrade_plan.md

4.1 KiB

LangGraph 1.0 업그레이드 계획

날짜: 2025-12-18 작성자: admin 관련 파일: rb8001/app/services/workflows/coldmail_workflow.py, rb8001/requirements.txt


현재 상황

  • 현재 버전: langgraph==0.6.10
  • 사용 위치: 콜드메일 워크플로우 (coldmail_workflow.py)
  • 체크포인터: AsyncSqliteSaver 사용 (수동 설정)

LangGraph 1.0 주요 변경사항

  1. 지속적인 상태 관리 (Durable State): 서버 재시작/중단 시 자동 재개
  2. 내장된 지속성: 워크플로우 저장/재개 기능 강화
  3. 휴먼 인 더 루프 (HITL) 패턴: 실행 일시 중지 후 인간 승인 API 제공
  4. 그래프 기반 실행 모델 개선: 결정론적/에이전트 컴포넌트 혼합 제어 강화

업그레이드 활용 방안

Phase 1: 콜드메일 워크플로우 개선

  • 현재: "이 기업을 분석해 드릴까요?" 버튼이 Slack 인터랙션으로 별도 처리 (워크플로우 외부)
  • 개선: process_node에서 HITL 패턴으로 일시 중지 → 사용자 승인 대기 → 재개
  • 효과: 워크플로우 내부에서 상태 관리, 중단/재개 자동화

Phase 2: 프론트엔드 IR 평가 통합

  • 현재: 프론트엔드 요청은 REST API로 직접 처리 (IRDeckAnalyzer().analyze())
  • 개선: 프론트엔드 요청도 LangGraph 워크플로우로 처리
  • 효과: IR Deck 평가(수 분 소요) 중단/재개 지원, 상태 관리 일원화

Phase 3: 자동 상태 복구

  • 현재: 체크포인터 수동 설정 (AsyncSqliteSaver.from_conn_string())
  • 개선: 1.0의 자동 상태 관리 활용
  • 효과: 서버 재시작 시 콜드메일 처리 중단 지점부터 자동 재개

워크플로우 통합 설계

설계 고려사항

문제: 콜드메일과 프론트엔드 IR Deck 분석이 서로 다른 진입점을 가짐

  • 콜드메일: 스케줄러 → coldmail_workflow.py
  • 프론트엔드: REST API → ir_deck.py (직접 IRDeckAnalyzer().analyze() 호출)

고려한 방법:

  1. 라우터 노드 통합: 단일 워크플로우에서 라우터 노드로 분기
  2. 서브그래프 통합: 공통 분석 부분을 서브그래프로 만들어 재사용
  3. 별도 워크플로우 + 공통 함수: 각각 독립 워크플로우, 공통 로직은 함수로 재사용

최종 결정

2개 워크플로우 + 공통 함수 재사용 방식 채택

방식 장점 단점 결정
라우터 통합 단일 워크플로우 관리 진입점이 달라 복잡도 증가
서브그래프 공통 부분 재사용 여전히 2개 워크플로우 필요 ⚠️
별도 워크플로우 단순, 유지보수 용이 공통 로직 중복 가능

구조:

  • 워크플로우 1: 콜드메일 처리 (기존 + HITL 패턴)
  • 워크플로우 2: 프론트엔드 IR Deck 분석 (신규, HITL 없음)
  • 공통 함수: extract_ir_metrics(), evaluate_ir_deck(), save_evaluation()

이유: 진입점이 다르면 별도 워크플로우로 관리하는 것이 단순하고 유지보수에 유리함

마이그레이션 전략

  1. 의존성 업데이트: requirements.txt에서 langgraph==0.6.10langgraph>=1.0.0
  2. API 변경 확인: StateGraph, AsyncSqliteSaver API 변경사항 확인
  3. 체크포인터 마이그레이션: 기존 SQLite 체크포인트 데이터 호환성 확인
  4. 단계적 적용: 콜드메일 워크플로우부터 적용 후 프론트엔드 IR 평가 확장

필요 작업

  • LangGraph 1.0 공식 마이그레이션 가이드 확인
  • coldmail_workflow.py API 호환성 테스트
  • HITL 패턴 적용 설계 (콜드메일 "분석할까요?" 버튼)
  • 프론트엔드 IR 평가 워크플로우화 설계
  • 체크포인트 데이터 마이그레이션 스크립트 작성

참고

  • LangGraph 공식 문서: https://github.com/langchain-ai/langgraph
  • 현재 구현: rb8001/app/services/workflows/coldmail_workflow.py
  • 관련 문서: troubleshooting/251015_claude_coldmail_workflow_langgraph_test.md