최신 소식
현대의 AI 애플리케이션은 점점 더 동적이고 유연하며 상태를 유지할 수 있는 아키텍처를 요구하고 있습니다. 랭그래프(LangGraph)는 랭체인(LangChain) 위에 구축된 오케스트레이션 프레임워크로, 대형 언어 모델(LLM)이 단순한 응답자가 아니라 워크플로우를 제어하는 "두뇌" 역할을 할 수 있도록 강력한 기반을 제공합니다.
이 글에서는 랭그래프가 무엇인지, 그 아키텍처의 세부 사항, 그리고 이를 활용해 에이전틱 시스템을 구축할 때 고려해야 할 기술적 요소들을 깊이 탐구해 보겠습니다.
랭그래프(LangGraph) 개요
랭그래프(LangGraph)는 상태를 유지하는 에니전트형 워크플로를 구축하기 위한 파이썬을 기반 프레임워크입니다. 기존의 정해진 프롬프트-응답 패턴을 따르는 전통 LLM 애플리케이션과 달리, 랭그래프는 노드와 엣지로 이루어진 그래프를 활용하여 복잡한 동작을 모델링합니다.
랭그래프의 그래프 기반 워크플로우는 작업을 상호 연결된 노드로 분할하여 동적인 실행을 가능하게 합니다. 내장된 상태 관리 및 지속성 기능을 통해 공유 컨텍스트를 유지할 수 있으며, 이를 통해 장기적인 상호작용과 오류 복구가 원활하게 이루어집니다.
또한, 유연한 제어 구조를 갖추고 있어 분기, 반복, 인간 개입 기능을 지원하여 다양한 애플리케이션에 적응할 수 있습니다.
이러한 기능을 통해 랭그래프는 LLM이 적절한 도구를 선택하고, 쿼리를 동적으로 처리하며, 예상치 못한 상황을 효과적으로 대응할 수 있도록 합니다.
1. 에이전트 AI 시스템 이해하기
에이전틱 시스템은 LLM을 제어 루프의 중심에 배치하여, 고정된 순서를 따르는 것이 아니라 동적으로 결정을 내릴 수 있도록 합니다.
LLM은 사용자 입력과 컨텍스트를 기반으로 적절한 도구 또는 작업을 선택하여 다음 단계를 결정합니다. 또한, 검색 가능한 데이터베이스, 웹 검색, 맞춤형 로직과 같은 외부 도구를 통합하여 기능을 확장할 수 있습니다. 뿐만 아니라, 내장된 지속성 및 메모리 기능을 활용하여 대화 상태를 관리함으로써, 장기적인 상호작용에서도 일관성을 유지할 수 있습니다.
예를 들어, 검색 증강 생성(RAG) 애플리케이션에서 에이전트는 먼저 벡터 데이터베이스에서 관련 문서를 검색한 후, 해당 문서의 적절성을 평가하고, 웹 검색이 필요한지 결정한 다음, 최종적으로 응답을 생성하는 과정을 모두 자동으로 수행할 수 있습니다. 이러한 접근 방식은 여러 기술 문서 및 가이드에서 연구되고 적용되고 있습니다.

2. 랭그래프 아키텍처 및 주요 구성 요소소
랭그래프를 활용한 에이전트 시스템 구축에는 여러 기술적 구성 요소가 포함됩니다.
2.1. 노드 및 엣지
노드는 LLM 호출, 검색 단계, 쿼리 재작성, 오류 처리와 같은 개별 작업이나 기능을 나타냅니다. 각 노드는 특정 작업을 처리하여 모듈화되고 재사용 가능한 워크플로우 구성 요소를 구현할 수 있도록 합니다.
엣지는 노드 간의 연결을 정의하여 실행 흐름을 결정합니다. 프로세스가 무조건적으로 한 노드에서 다른 노드로 이동하는 직접적인 연결일 수도 있고, LLM의 출력이나 시스템의 현재 상태에 따라 전환이 이루어지는 조건부 연결일 수도 있습니다.
워크플로우를 그래프 구조로 설계하면 반복과 분기 로직을 도입할 수 있어 유연하고 비선형적인 실행이 가능합니다. 이러한 방식은 상황에 따라 적응하는 동적 에이전트 워크플로우를 구축하는 데 필수적입니다.
2.2. 공유 상태 및 지속성
랭그래프의 상태 객체는 시스템의 근간입니다.
상태 관리는 모든 노드가 현재 쿼리, 대화 기록, 도구 출력 등을 포함한 공통 상태를 공유하도록 보장합니다. 이 공유 컨텍스트를 통해 새로운 정보가 처리될 때 워크플로우가 동적으로 발전할 수 있습니다.
체크포인터나 외부 메모리 저장소와 같은 지속성 메커니즘을 활용하면, 장기간의 상호작용이 중단되더라도 컨텍스트를 잃지 않고 다시 이어갈 수 있습니다. 이를 통해 세션이 중단되더라도 연속성이 유지됩니다.
운영 시스템에서는 일관성과 오류 복구를 위해 상태 유지 및 지속성이 필수적이며, 이를 통해 워크플로우의 신뢰성과 복원력이 향상됩니다.

3. 랭그래프의 주요 특징
3.1 도구 통합
에이전트 시스템은 종종 LLM의 능력을 넘어서는 작업을 수행하기 위해 외부 도구에 의존합니다. 랭그래프는 이러한 도구를 원활하게 통합하여 기능을 확장할 수 있도록 지원합니다.
사용자는 웹 검색 API, 문서 검색 시스템, 데이터 프로세서와 같은 맞춤형 또는 사전 구축된 모듈을 에이전트에 직접 붙여서 도구를 연결할 수 있습니다. 또한, 조건부 엣지를 활용하여 제어 흐름을 관리함으로써, 시스템이 도구를 호출할 시점과 직접 LLM 응답을 생성할 시점을 결정할 수 있도록 합니다.
이러한 수준의 제어를 통해 자동화된 추론과 실시간 데이터 액세스를 결합한 정교한 워크플로우를 구축할 수 있으며, 이를 통해 시스템의 적응성과 지능이 더욱 향상됩니다.
3.2. 실시간 처리 및 휴먼인더루프
향상된 사용자 경험과 신뢰성을 위해:
실시간 처리 지원: 랭그래프는 응답을 토큰 단위로 스트리밍하여 에이전트가 정보를 처리하는 동안 실시간 피드백을 제공합니다.
휴먼인더루프: 워크플로우의 어느 지점에서든 실행을 일시 중지하고 인간의 검토나 승인을 위한 노드를 삽입할 수 있어 중요한 결정이 적절히 감독되도록 보장합니다.
이러한 기능들은 상호작용적이고 강력한 생산 준비 시스템을 구축하는 데 도움이 됩니다.
3.3. 메모리 관리
장기적인 상호작용에서 컨텍스트를 유지하는 것은 반응적이고 지능적인 에이전트를 만드는 데 중요합니다. 랭그래프는 이를 위해 단기 및 장기 메모리 기능을 모두 지원합니다.
단기 메모리는 일시적인 대화 컨텍스트를 유지하여 현재 상호작용을 그래프의 상태 내에서 추적합니다. 더 깊은 지속성을 위해, Zep과 같은 장기 메모리 통합은 중요한 사실과 사용자 세부 정보를 저장하여 에이전트가 여러 세션에 걸쳐 정보를 기억할 수 있도록 합니다.
이 기능은 고객 지원이나 상담 서비스와 같은 애플리케이션에서 특히 유용하며, 연속성과 개인화가 사용자 경험을 향상시키기 때문입니다.
4. 랭그래프로 에이전트 시스템 구축: 단계별 접근
아래는 랭그래프를 사용하여 기본적인 에이전트 시스템을 구축하는 개요입니다.
1단계: 워크플로 및 상태 정의
파이썬의 데이터 모델을 사용하여 상태 구조를 정의하는 것으로 시작합니다. 여기에는 사용자 쿼리, 대화 기록, 관련된 컨텍스트 문서와 같은 주요 요소들이 포함됩니다. 이 공유된 상태는 워크플로우 내 모든 노드가 필요한 정보에 접근할 수 있도록 보장합니다.
다음으로, 워크플로우를 그래프 형태로 구성하고 각 작업을 처리하는 노드를 식별합니다. 입력 수집 노드는 사용자 쿼리를 처리하여 이를 올바르게 캡처합니다. LLM 처리 노드는 컨텍스트를 바탕으로 응답을 생성하거나 다음 단계를 결정합니다.
도구 실행 노드는 웹 검색이나 벡터 검색과 같은 외부 API 호출을 처리하여 실시간 또는 저장된 데이터를 통해 응답을 강화합니다. 마지막으로, 메모리 업데이트 노드는 주요 세부 정보를 지속적으로 저장하여 상호작용 간의 연속성을 유지합니다.
이와 같은 방식으로 워크플로우를 구조화하면, 복잡한 의사결정과 장기적인 컨텍스트 유지가 가능한 동적이고 적응력 있는 시스템을 구축할 수 있습니다.
2단계: 노드 및 조건부 엣지 구현
다음과 같은 각 노드에 대한 파이썬 함수를 생성하세요:
-
검색 노드: 벡터 데이터베이스를 질의하는 기능
-
평가 노드: LLM을 사용하여 문서의 관련성을 평가하는 기능
-
결정 노드: 웹 검색이 필요한지를 판단하는 기능
-
응답 생성 노드: 컨텍스트를 종합하여 최종 답변을 생성하는 기능
랭그래프의 API를 사용하면 이러한 노드들을 추가하고, 출력 로직에 따라 조건부 엣지로 연결할 수 있습니다.
3단계: 도구 연결 및 상태 지속성 실정정
외부 도구들을 에이전트에 연결하여, 필요할 때 LLM의 출력이 해당 도구들을 호출하도록 설정하세요. 또한 체크포인터나 메모리 저장소를 구성하여 상태를 지속적으로 저장하고 장기적인 대화 컨텍스트를 유지할 수 있도록 하세요.
이 단계는 에러 발생 시 복구가 가능하고, 대화의 연속성을 유지할 수 있는 프로덕션 수준의 시스템을 구축하는 데 필수적입니다.
4단계: 스트리밍 및 평가
시스템을 스트리밍 모드로 테스트하여 중간 출력을 실시간으로 관찰하고, 각 노드가 정해진 순서대로 정확히 실행되는지 확인합니다.
또한, 머메이드로 그래프 다이어그램 생성 작업 처럼 로깅과 시각화 도구를 활용하여 에이전트의 동작을 디버깅하고 미세 조정할 수 있도록 합니다.
5단계: 반복 및 인간 감독 통합
마지막으로, 필요한 경우 사람이 개입할 수 있는 메커니즘을 통합하세요. 이 단계에서는 다음과 같은 방법이 포함될 수 있습니다:
-
워크플로우 중간에 일시 정지하는 노드를 추가하여 수동 검토가 가능하게 함
-
LLM의 판단을 개선하기 위해 피드백 루프를 설계하여 반복 학습과 조정을 가능하게 함
이러한 설계는 시스템의 신뢰성과 품질을 높이고, 민감하거나 고위험한 작업에서 인간의 판단을 반영할 수 있게 해 줍니다.

도전 과제 및 모범 사례
랭그래프는 에이전트 워크플로우에 대해 강력한 제어 기능을 제공하지만, 시스템을 설계할 때 개발자들이 고려해야 할 몇 가지 과제가 있습니다.
우선 복잡성과 제어력의 균형이 중요합니다. 유연성이 높아질수록 워크플로우가 점점 더 복잡해질 수 있으므로, 불필요한 오버헤드를 피하기 위해 명확성과 확장성을 유지하는 것이 필수적입니다.
또한, 메모리 관리 역시 중요한 요소입니다. 대화 기록이 길어질 경우, 과도한 리소스 사용을 방지하기 위해 효율적인 요약이나 선택적 업데이트 전략이 필요합니다.
마지막으로, 툴의 신뢰성 문제도 해결해야 합니다. 외부 API나 검색 시스템은 실패하거나 예상치 못한 결과를 반환할 수 있으므로, 이를 대비한 견고한 에러 처리가 매우 중요합니다.
이러한 문제를 완화하기 위한 모범 사례로는, 먼저 워크플로우 로직을 검증할 수 있는 소규모 개념 증명(PoC) 에이전트부터 시작하는 것, 기능을 효율적으로 관리할 수 있도록 모듈형 설계를 적용하는 것, 그리고 프로덕션 환경의 안정성을 유지하기 위해 지속적인 모니터링을 구현하는 것이 있습니다.
결론
랭그래프는 개발자들이 동적이고 상태 기반이며 견고한 에이전트 기반 AI 시스템을 구축할 수 있도록 지원합니다.
그래프 기반 아키텍처를 활용하고, 외부 도구를 통합하며, 메모리를 효과적으로 관리함으로써, LLM이 워크플로우를 주도하면서 결정을 내리고, 정보를 검색하고, 필요할 경우 인간의 개입까지 포함하는 애플리케이션을 설계할 수 있습니다.
정교한 RAG 시스템을 구축하든, 개인화된 챗봇을 개발하든, 랭그래프는 여러분의 AI 애플리케이션을 프로토타입에서 프로덕션까지 안정적으로 확장할 수 있는 기술적 기반을 제공합니다. 지속적인 개선과 커뮤니티의 지원을 바탕으로, 랭그래프는 차세대 에이전트 기반 시스템의 길을 열어가고 있습니다.
Newsletter
더 보기

이메일을 입력해 주세요
원하시는 내용을 입력해 주세요
Hanoi, Vietnam
Web3 Tower, No. 15, Alley 4, Duy Tan, Cau Giay, Hanoi, Vietnam









































![[Recap] UPP Global Technology JSC Establishing Anniversary](/homepage/news-section/new-4.webp)

























































