LangGraph 에이전트 RAG — 검색 여부를 스스로 결정
LangGraph 에이전트 RAG
LangGraph로 만드는 커스텀 검색 에이전트의 핵심은 벡터 스토어를 검색할지, 바로 답할지를 결정하는 분기예요. 문서를 인덱싱해 retriever 툴을 만들고, 그래프 상태에 따라 조건부 엣지로 경로를 나눠요.
흐름
- 문서를 불러와 전처리하고 청크로 나눠 인덱싱.
- 그 문서들에 대한 리트리버 툴 생성.
- 에이전트가 '질문 생성하거나 바로 응답' → 필요 시 '검색' → '질문 재작성' → '답변 생성' 을 오가는 그래프 구성.
그래프 개념
LangGraph 그래프는 State(공유 상태, 예: MessagesState), Nodes(모델·툴 호출 같은 함수), Edges(조건부 분기를 포함한 흐름)로 구성돼요. 이 세 가지로 검색 여부를 자유롭게 오가는 루프를 만들 수 있어요.
왜 유용한가
- 질문마다 최적 경로를 타서 불필요한 검색 비용을 줄여요.
- 쿼리가 명확하지 않으면 재작성까지 거쳐 검색 품질을 높여요.
- LangSmith로 각 쿼리의 검색·툴 호출·응답을 추적·관찰할 수 있어요.