Module 3: Human-in-the-Loop
LangGraph에서 사람이 개입할 수 있는 워크플로우를 구현하는 방법을 학습하는 모듈입니다. 스트리밍부터 시작하여 중단점, 상태 편집, 동적 중단점, 시간 여행까지 단계별로 진행합니다.
📚 학습 내용
1. 스트리밍과 중단 (1-streaming-interruption.ipynb)
- LangGraph의 스트리밍 기능과 다양한 스트리밍 모드
values와updates모드를 통한 그래프 상태 스트리밍- 토큰 단위 스트리밍과
.astream_events메서드 활용 - LangGraph API를 통한 스트리밍 구현
2. 중단점 (2-breakpoints.ipynb)
- 사용자 승인을 위한 중단점(Breakpoints) 설정
interrupt_before옵션을 통한 그래프 실행 제어- 중단점에서 사용자 입력을 받고 승인 프로세스 구현
- LangGraph API를 사용한 중단점 관리
3. 상태 편집과 사람 피드백 (3-edit-state-human-feedback.ipynb)
- 중단점에서 그래프 상태를 직접 편집하는 방법
update_state를 사용한 상태 수정과 메시지 덮어쓰기- 사용자 피드백을 위한 placeholder 노드 구현
as_node매개변수를 통한 특정 노드로서의 상태 업데이트
4. 동적 중단점 (4-dynamic-breakpoints.ipynb)
NodeInterrupt를 사용한 조건부 중단점 구현- 그래프가 스스로 동적으로 중단하는 메커니즘
- 중단 이유를 사용자에게 전달하는 방법
- 내부 로직에 따른 조건부 중단 처리
5. 시간 여행 (5-time-travel.ipynb)
- 과거 상태를 탐색하고 재생하는 시간 여행 기능
get_state_history를 통한 상태 히스토리 조회- 특정 체크포인트에서 그래프 재실행(Replaying)
- 분기(Forking)를 통한 대안 경로 탐색
🎯 학습 목표
이 모듈을 완료하면 다음을 할 수 있습니다:
- Human-in-the-Loop의 세 가지 주요 동기 이해 (승인, 디버깅, 편집)
- 다양한 스트리밍 모드를 활용한 실시간 상태 모니터링
- 중단점을 통한 사용자 승인 워크플로우 구현
- 그래프 상태를 동적으로 편집하고 사용자 피드백 반영
- 동적 중단점을 통한 조건부 제어 흐름 구현
- 시간 여행 기능을 활용한 디버깅과 대안 경로 탐색
🚀 시작하기
- 환경 설정을 위해
1-streaming-interruption.ipynb부터 시작하세요 - 각 노트북을 순서대로 진행하는 것을 권장합니다
studio/디렉토리의 파일들은 LangGraph Studio에서 활용할 수 있습니다agent.py: 기본 에이전트 구현dynamic_breakpoints.py: 동적 중단점 예제langgraph.json: Studio 설정 파일