[AI] LangGraph 에이전트

LangChain 과 LangGraph(state, node, edge) 비교 / 다른 프레임워크와의 비교

Posted by Wonyong Jang on November 07, 2026 · 7 mins read

1. LangGraph

LangGraph는 LangChain 생태계의 일부로, LLM 기반 에이전트들의 상태를 관리하고 복잡한 워크플로를 구현하는 프레임워크이다.

LangGraph는 상태 머신(state machine) 개념을 기반으로 하여, 각 에이전트의 상태변화와 에이전트 간의 상호작용을 체계적으로 관리할 수 있게 해준다.

LangGraph 를 이해하려면 먼저 핵심 개념을 알아야 한다.

state (상태)

에이전트의 "기억"이자 "작업 공간"이라고 생각하면 된다.

마치 사람이 대화를 하면서 이전에 나눈 대화 내용을 기억하고, 현재 진행 중인 작업을 파악하는 것처럼, 에이전트도 이러한 정보를 상태에 저장하고 관리한다.

예를 들어 고객 상담을 하는 AI 에이전트라면 고객의 문의 내용, 지금까지의 대화 내용, 확인된 고객 정보, 현재 처리 중인 단계 등이 모두 상태에 포함된다.
즉 상태에는 에이전트가 작업을 수행하는데 필요한 모든 데이터를 담을 수 있다.

node (노드)

에이전트가 수행하는 구체적인 "작업" 또는 "행동"을 의미한다.

각 노드는 현태 상태를 확인하고, 자신의 작업을 수행한 후, 그 결과를 반영해 상태를 업데이트한다.

edge (에지)

노드 사이의 “길” 또는 “의사결정 규칙” 이라고 볼 수 있다.
edge 는 현재 노드에서 다음에 어떤 노드로 이동할지 를 결정한다.

예를들어 고객의 질문이 명확하지 않다면 “추가 정보 요청” 노드로, 질문이 명확하다면 “답변 생성” 노드로 이동하는 식이다.

세 가지 요소는 마치 하나의 유기체처럼 긴밀하게 협력한다고 볼 수 있다. 상태는 모든 노드가 공유하는 “공통의 기억 공간” 이다.
각 노드는 이 공간에서 필요한 정보를 읽고, 자신의 작업 결과를 기록한다.
노드는 이 상태를 바탕으로 작업을 수행하고, 그 결과를 다시 상태에 반영한다.

이러한 구조 덕분에 LangGraph는 복잡한 AI 시스템을 체계적으로 관리하고, 필요에 따라 유연하게 확장할 수 있게 된다.

LangGraph 외에도 에이전트를 구현할 수 있는 다양한 프레임워크가 존재한다.

마이크로소프트 시맨틱 커널, Haystack, LlamaIndex

LangGraph는 이러한 프레임워크들과 비교했을 때, 상태 관리와 에이전트 간 상호작용에 더 중점을 둔다.
특히, LangChain 생태계와의 긴밀한 통합은 LangGraph만의 큰 장점이다.

LlamaIndex나 Haystack이 데이터 처리와 검색에 중점을 둔다면, LangGraph는 에이전트의 행동과 상태 관리에 초점을 맞추고 있다.

1-2) LangGraph와 LangChain 의 차이점

LangChain은 LLM 어플리케이션 개발에 필요한 모듈화된 컴포넌트를 제공하며, 각 단계가 순차적으로 실행되는 파이프라인 방식을 채택하고 있어 명확하고 예측 가능한 실행 흐름을 만든다.

반면, LangGraph는 상태 기반 시스템으로 복잡한 에이전트의 행동을 관리한다. 그래프 구조를 활용해 비선형적인 워크플로를 구성할 수 있으며, 현재 상태에 따라 다음 단계가 동적으로 결정되는 방식을 사용한다.
이는 더 유연한 시스템을 구축할 수 있게 된다.

1-2-1) 워크플로 구성

LangChain의 경우 순차적으로 실행되기 때문에 각 단계가 이전 단계의 출력을 입력으로 받아 처리한다. 또한, 명확한 시작점과 끝점이 존재하며, 실행 흐름을 예측할 수 있고 이해하기 쉽다.

제한된 분기처리의 경우 조건부 분기는 가능하지만, 복잡한 분기 로직 구현이 어렵다.
또한, 한 번 분기된 후 다시 합쳐지는 구조 구현이 제한적이며, 순환적인 처리가 필요한 때는 새로운 체인을 생성해야 한다.

반면, LangGraph는 node와 edge를 활용해 복잡한 분기 처리를 할 수 있고, 상태에 따라 다른 경로로 진행할 수 있으며, 순환적인 실행 구조도 지원한다.

이러한 방식은 실제 인간의 의사결정 과정과 유사하다.

즉, LangChain의 선형적 워크플로는 단순하고 예측 가능한 처리에 적합하며, LangGraph의 동적 워크플로는 복잡한 의사결정과 유연한 처리가 필요한 상황에 적합하다.

1-2-2) 상태 관리

LangChain은 메모리 컴포넌트를 활용해 상태를 관리하지만 아래와 같이 특징과 한계가 존재한다.

  • 메모리 컴포넌트의 종류와 한계
    • 대화 메모리: 이전 대화 내용을 저장하지만, 단순 리스트 형태로만 관리한다.
    • 버퍼 메모리: 최근 N개의 메시지만 유지하며 오래된 정보는 자동 삭제한다.
    • 요약 메모리: 대화 내용을 요약하여 저장하지만, 세부 정보는 손실될 수 있다.
  • 상태 접근의 제한성
    • 체인 내부에서만 상태에 접근할 수 있다.
    • 외부에서 상태를 관찰하거나 수정하기 어렵다.
    • 상태 변화의 이력 추적이 제한적이다.

반면, LangGraph는 명시적이고 중앙화된 상태 관리 시스템을 제공한다.

  • 상태의 구조화
    • 모든 상태 정보가 중앙화된 객체에 저장한다
    • 상태의 타입과 구조를 명확하게 정의할 수 있다.
    • 복잡한 중첩 구조도 쉽게 관리한다.
  • 상태 변화의 추적
    • 모든 상태 변화가 기록되어 디버깅이 용이하다.
    • 각 노드에서 상태 변화의 원인을 추적할 수 있다.
    • 상태 변화의 히스토리로 에이전트의 의사결정 과정을 분석할 수 있다.

두 프레임워크는 상호 배타적이지 않다.
LangChain의 컴포넌트를 LangGraph의 노드로 사용할 수 있어 두 프레임워크의 장점을 모두 활용할 수 있다.

LangChain은 선형적 워크플로에 적합하며 빠른 개발이 가능한 반면 LangGraph는 복잡한 상태관리와 의사결정이 필요한 상황에 적합하다.
두 프레임워크는 서로 보완적으로 사용될 수 있으며, 프로젝트의 복잡도와 요구 사항에 따라 적절한 프레임워크를 선택해야 한다.
특히 복잡한 에이전트 시스템을 구축할 때는 LangChain의 기본 컴포넌트들을 LangGraph의 구조 안에서 활용하는 방식이 효과적일 수 있다.


2. 워크플로(workflow) vs 에이전트(agent)

워크플로와 에이전트는 AI 시스템을 구축하는 두 가지 주요 접근 방식이다.

워크플로는 미리 정의된 규칙과 순서에 따라 작업을 처리하는 방식이다.
워크플로의 가장 큰 특징은 예측 가능성이다. 실행 흐름이 명확하게 정의되어 결과를 예측하기 쉽고, 각 단계의 책임과 역할이 명확하게 구분된다. 워크플로에는 단점이 존재하는데, 가장 큰 한계는 유연성 부족이다.
예외 상황에 대한 대처가 제한적이고, 새로운 요구사항을 반영하기가 어렵다.
동적으로 변화하는 환경에 대응하는 데 한계가 있고, 조건과 분기가 많아질 수록 전체 흐름을 관리하기가 어려워지며, 변경 사항을 반영할 때 전체 흐름을 수정해야 하는 상황이 자주 발생한다.

에이전트는 독립적인 의사결정 능력을 갖추고 있으며, 주어진 목표에 기반해 행동을 선택한다.
환경 변화에 유연하게 대응할 수 있으며, 경험을 바탕으로 학습하고 개선할 수 있다. 새로운 상황에 직면했을 때도 창의적인 해결 방안을 찾아 낼 수 있다.
에이전트는 환경과 지속적으로 상호작용 하며, 필요하면 다른 에이전트와 협업할 수 있다. 특히 사용자와 자연스럽게 대화를 주고받을 수 있다는 점이 큰 장점이다.

하지만, 에이전트도 완벽한 것은 아니다.
에이전트의 가장 큰 한계는 예측 불가능성이다. 에이전트의 행동 결과를 완전히 예측하기가 어렵고, 일관성을 보장하기도 쉽지 않다.
이로인해 품질 관리에 어려움이 따른다. 또한, 구현의 복잡성도 중요한 한계점이다. 의사 결정 로직이 복잡하며, 테스트와 디버깅이 까다롭고, 성능을 최적화하는 것도 워크플로에 비해 어려운 과제다.

워크플로는 예측 가능성과 제어 용이성이 강점이며, 에이전트는 유연성과 적응성이 강점이다. 실제 시스템 구현할 때는 두 접근 방식의 장점을 결합한 하이브리드 접근이 효과적일 수 있다. 시스템의 요구사항과 제약 조건을 고려해 적절한 접근 방식을 선택하는 것이 중요하다.


Reference

https://wikidocs.net/261585
https://platform.openai.com/