LLM 애플리케이션을 만드는데, 이미 Langchain과 같은 프레임웍이 있는데, 왜 추가로 Langgraph와 같은 프레임웍이 필요할까?
예를 들어서, 질문에 대해서 구글 검색을 하고, 그 내용을 기반으로 답변하는 Agent를 만든다고 하자.
아래 구조와 같이 질문을 분석해서 좀 더 명확한 프롬프트로 만들어내고, 구글 검색을 한 후, 검색 내용이 답변을 하는데 충분한 정보를 가지고 있는지 판단을 하고, 만약에 검색된 정보가 충분하지 않으면 질문을 변경해서 다시 구글 검색을 하고, 충분한 정보를 수집할때 까지 이 과정을 반복한 다음에, 이 정보를 이용해서 답변을 생성해서 리턴한다.
이 구조를 Langchain으로 만들 수 없을까?
물론 가능은 하다. 대략 다음과 같은 구조를 가지면 된다.
chain = (
검색 쿼리를 재작성한다.
| 구글 검색
| 답변에 필요한 정보가 모두 수집되었는지 검토
)
While True:
output = chain.invoke
if (답변에 필요한 정보가 모두 수집되었음 == True):
break
최종답변 = 답변생성.invoke(output)
이런식으로 Sequential chain과 While, If 문등을 엮어서 하면 구현은 된다.
그런데 플로우가 아래 그림과 같이 스텝이 많고, 많은 분기와 Loop 컨디션이 있을때는?
답변은 가능은 하다. 단지 코드가 복잡해질 뿐이다.
Langchain은 멀티 스탭으로 처리하는 내용에 대해서 LCEL 이라는 기능을 이용해서 Flow를 처리할 수 있지만, 복잡한 구조나 특히 Loop 가 있는 구조는 LCEL만으로는 구현이 불가능하고, 위의 예제에서 처럼 While이나 If문을 추가해줘야 하고, 이는 코드를 복잡하게 만든다.
아울러, 여러개의 노드가 있을때 State 정보를 유지하고 관리해야 하는데, 이 또한 복잡한 코드를 요구하게 된다.
Langgraph는 이렇게 복잡한 처리 구조를 가지고 있는 애플리케이션에 대해서 Loop나 분기, 그리고 상태 관리등의 기능을 프레임웍내에서 내장함으로써, 그래프 구조의 워크플로우를 처리하는데 최적화된 프레임워크 이다.
Langchain이 이러한 구조를 처리하지 못하는 것이 아니라, Langgraph가 훨씬 더 쉽게 처리할 수 있도록 해준다. 비교를 하자면, Java Servlet 으로도 REST API 를 구현할 수 있지만, Java Spring을 사용하면 조금 더 쉬운것 처럼, 개발을 조금 더 쉽게 해주기 위한 특화된 프레임웍으로 생각하면 된다.
그러면, 다음 질문이 Langgraph를 사용하면 langchain은 전혀 사용하지 않는가?
답변은 “No”.
Langgaph는 그래프 구조의 워크플로우를 처리하는데 최적화 되어 있지만, Prompt template이나, 적절한 예제를 선택해주는 Example Selector, RAG를 만들기 위한 기능들은 빠져 있다.
Langgraph를 통해서 전체적은 워크플로우와 틀을 만든다면, 그 안에 있는 각각의 노드에 대한 기능을 Langchain을 사용해서 구현할 수 있다.
즉 둘중에 하나를 선택해서 사용하는게 아니라, 양쪽을 같이 사용해서 상화 보완적인 관계로 사용이 가능하다.
'빅데이타 & 머신러닝 > 생성형 AI (ChatGPT etc)' 카테고리의 다른 글
AI 자동화와 Zapier, n8n 소개 및 비교 (4) | 2025.07.17 |
---|---|
고급 Agent를 위한 Langgraph 개념 이해 #4 - Tool 호출 (2) | 2025.07.15 |
고급 Agent를 위한 Langgraph 개념 이해 #3 - Edge (1) | 2025.07.10 |
고급 Agent를 위한 Langgraph - Multi State 사용시 주의해야할점 (1) | 2025.07.10 |
고급 Agent를 위한 Langgraph 개념 이해 #2 - Node (0) | 2025.07.08 |