데브허브 | DEVHUB | ToT 소스코드 2 - AI App 디자인의 핵심 State 관리를 살펴 봅니다. 시간 여행도 가능하게 해 줍니다.ToT 소스코드 2 - AI App 디자인의 핵심 State 관리를 살펴 봅니다. 시간 여행도 가능하게 해 줍니다.
- AI 앱은 '스테이트 관리'를 통해 과거 시점으로 돌아가 재시작하는 '시간 여행'이 가능하며, 이는 AI와의 맥락 있는 대화 유지에 필수적입니다. ⏳
- LangGraph의 핵심
TOTState 클래스는 AI 앱의 문제, 후보군, 점수 매겨진 후보군, 탐색 깊이 등 주요 데이터를 체계적으로 관리합니다. 📊
update_candidates 함수는 후보군 리스트를 누적하거나 초기화하여 상태를 동적으로 갱신하는 핵심 로직을 담당합니다. 🔄
Configuration 클래스는 트리 탐색의 최대 깊이, 정답 기준 점수, 후보 생성 수, 가지치기 후 남길 후보 수 등 알고리즘의 주요 설정값을 정의합니다. ⚙️
ExpansionState는 TOTState를 확장하여 이전 단계에서 선택된 '시드' 정보를 포함, expand 노드에서 AI에게 맥락을 제공합니다. 🌱
expand, score, prune 노드는 각각 후보군 생성, 평가, 가지치기 역할을 수행하며, AI의 '생각'을 트리처럼 확장하고 최적화하는 핵심 에이전트입니다. 🏗️
should_terminate 함수는 정답 발견 또는 최대 탐색 깊이 도달 시 탐색을 종료(End)하고, 그렇지 않으면 다음 단계(Send)로 진행하는 조건부 엣지 역할을 합니다. 🛑
StateGraph를 사용하여 노드와 엣지를 정의함으로써 AI 앱의 복잡한 실행 흐름을 시각적이고 체계적으로 구축할 수 있습니다. 🕸️
MemorySaver는 그래프 실행 중 상태를 저장하는 체크포인터 역할을 하며, 스레드 ID를 통해 독립적인 상태 관리가 가능하여 '시간 여행'의 기반을 제공합니다. 💾
- AI 앱 개발은 '구조'보다 '의미' 중심이어야 하며, AI와의 지속적인 상호작용을 위한 '맥락'과 '상태' 관리가 성공적인 앱의 핵심입니다. 💬