LangGraph 개요

🔥 #LangGraph 개념 완전 정복 몰아보기(3시간) 🔥

일반 RAG를 수행했을 때 흔히 볼 수 있는 상황

- 문서 내 질문에 대한 답변이 존재하지 않는 경우

- 부족한 정보를 WEB검색하여 문서에 추가하는 로직을 추가해보자!! -> 그러나 잘못된 검색결과를 반환한다면 ???

- 선형적인 chain 여러개로는 효율적이지 않아 ....

 

위의 내용이 하나의 체인 내에서 잘 이루어져야지 좋은 답변을 내놓을 수 있음(단방향 파이프라인) -> 확률적으로 그러긴 어렵...

갔다가 빠꾸가 어려워용


LangGraph 제안

flow engineering = 노드와 엣지를 통해서 그래프를 만든다

 

흐름 예시

앞으로 배울 것

- 노드를 만드는 방법 (파이썬 함수)

- 엣지를 연결하는 방법

- state (상태관리) : 메시지 전달자, 택배 상자 처럼 노드 결과를 담아서 다음 노드에 전달함

- 분기 엣지를 만드는 방법

- 흐름을 세우는 방법

- 순환 (cycle) 연산 기능을 추가하여 손쉽게 흐름을 제어


LangGraph 세부 기능(State, Node, Edge, Conditional Edge, Compile)

- 상태

 

annotatetd : 주석

add_mesages : reducer -> 리스트 안에 메시지를 계속 덮는 게 아니라 뒤에 추가하는 방식으로 쌓아두기 위해 필요함

State 처리


노드(Node)

노드를 만들 때 입력인자 : 상태(state)

retriever로 호출할 때 : state를 어떤 행동을 수행시킬건지 결정


그래프 생성 및 시각화

노드끼리의 연결과 엣지를 만드는 과정이 헷갈리기 때문에 그래프를 그리는 것이 필수적임!

thread_id 를 통해서 실행을 구분할 수 있다.


배운 후 느낀점

 

오늘은 LangGraph를 집중적으로 파고들었다. 처음엔 “체인이나 그래프나 뭐가 그렇게 다르겠어?”라는 생각으로 시작했는데, 막상 공부해보니 완전히 다른 세계가 열렸다.

 

LangGraph는 단순히 체인을 더 편리하게 만드는 툴이 아니라, 아예 플로우 아키텍처를 설계하는 사고방식을 바꾸게 만든다.

  • “조건 분기와 상태 누적” 같은 걸 체인만으로 구현하려 했을 땐 번거로웠는데, 그래프 구조에선 훨씬 자연스럽게 풀린다.
  • 실제 서비스에 적용한다면, 검색 기반 QA 시스템이나 대화형 에이전트처럼 복잡한 시나리오를 다루는 프로젝트에서 진가를 발휘할 것 같다.
  • 무엇보다, 눈으로 흐름을 그려보면서 설계한다는 게 생각보다 직관적이고 재미있었다.

앞으로 더 해보고 싶은 것

  • 다양한 노드 작성 패턴을 실험해보기 (retriever, generator, web search, DB query 등)
  • 조건 분기를 좀 더 정교하게 설계해보기
  • 지금까지 만든 RAG 파이프라인을 LangGraph로 리팩토링해보기

✍️ 마무리

LangGraph는 그냥 라이브러리를 넘어서, “AI 에이전트의 흐름을 어떻게 설계할까?”라는 질문에 대한 하나의 해답을 준다.
3시간 정도만 집중해도 단방향 체인 사고에서 벗어나 그래프적 사고를 체감할 수 있었고, 이제 복잡한 흐름도 한결 자신 있게 다룰 수 있을 것 같다. 🚀