LangGraph는 LangChain 팀이 개발한 그래프 기반의 AI 에이전트 오케스트레이션 프레임워크입니다. 기존 LangChain이 LLM과 다양한 도구를 연결하는 체인(chain) 기반이라면, LangGraph는 보다 구조적이고 상태를 관리할 수 있는 그래프 기반 시스템으로 복잡한 에이전트의 논리를 설계할 수 있도록 합니다.
LangGraph 상세 설명
1. LangGraph란?
LangGraph는 에이전트 기반 워크플로우를 그래프 데이터 구조로 표현하고 실행할 수 있는 AI 에이전트 프레임워크입니다. 이는 기존 LangChain 체인 기반 시스템의 한계를 넘어, 복잡한 루프, 분기, 상태 관리 등을 지원하여 보다 강력한 AI 시스템을 구축할 수 있도록 합니다.
주요 특징
- 그래프 기반 에이전트 설계 → 단순한 체인 대신 노드와 엣지를 활용하여 복잡한 워크플로우를 구축
- 상태(State) 관리 가능 → 에이전트의 실행 이력을 추적하고 제어 가능
- 순환 구조(Loops) 지원 → LLM이 반복적으로 동작할 수 있도록 설계 가능
- 다중 에이전트 지원 → 여러 에이전트를 조합하여 협력 구조 구축 가능
- LangChain과 완벽한 호환 → LangChain의 체인, 도구, LLM 등을 그래프에 통합 가능
2. LangGraph의 원리 및 작동 방식
LangGraph는 그래프(노드 + 엣지)와 상태(State) 기반의 실행 모델을 따릅니다.
2.1 LangGraph의 주요 개념
- 노드(Node)
- 그래프의 개별 작업 단위 (예: LLM 호출, 도구 실행, 조건 평가 등)
- 각 노드는 현재 상태를 입력으로 받아 상태를 갱신하는 함수로 정의됨
- 엣지(Edge)
- 노드 간 연결을 정의하며, 일반 엣지(고정된 흐름) 및 조건부 엣지(분기 가능) 형태가 있음
- 상태(State) 객체
- 그래프의 모든 실행 정보를 저장하는 공유 데이터 공간
- 예를 들어, 사용자의 입력, LLM의 응답, 이전 실행 결과 등이 포함됨
- 그래프 컴파일 및 실행
- 그래프를 정의한 후
.compile()
을 실행하면 실행 가능한 그래프 객체가 생성됨 .invoke(input)
,.stream(input)
등을 사용해 실행 가능
- 그래프를 정의한 후
2.2 작동 방식 예시
- 사용자가 입력을 제공하면 시작 노드(entry node) 에서 실행 시작
- LLM이 판단하여 특정 노드로 이동하거나 도구를 호출
- 필요 시 루프를 반복하며 상태를 업데이트
- 종료 노드(end node) 에 도달하면 실행이 완료됨
3. LangGraph의 주요 기능
LangGraph는 기존 LangChain 기반 체인보다 더 강력한 기능을 제공합니다.
1) 그래프 기반 오케스트레이션
- 체인 방식의 일직선적인 흐름 대신 노드-엣지 구조를 활용한 동적 워크플로우 구축 가능
- 조건부 엣지를 사용하여 유연한 분기 및 복잡한 에이전트 루프 설계 가능
2) 상태(State) 관리 지원
- LangGraph는 중앙 상태 객체(State) 를 활용하여 에이전트의 실행 이력을 추적
- 에이전트가 과거 데이터를 참조하여 더 나은 의사결정을 할 수 있도록 지원
- 예를 들어, 사용자와의 대화 히스토리를 유지하고, 특정 조건이 충족될 때만 추가 액션 수행 가능
3) 순환 루프(Loops) 지원
- LLM이 반복적으로 특정 노드를 방문하여 추가 정보를 수집하는 자기 피드백(self-feedback) 루프 가능
- 예제: GPT가 도구를 사용하여 여러 번 검색한 후 최적의 답을 찾아내는 구조
4) 다중 에이전트 시스템 구축 가능
- 여러 개의 에이전트를 하나의 그래프에서 실행하여 협력적으로 작동하도록 설계 가능
- 예제: 하나의 AI 에이전트가 질문을 분석하고, 다른 AI가 검색을 수행한 후 최종적으로 요약
5) 스트리밍 및 실시간 응답 지원
.stream()
메서드를 활용하여 LLM의 응답을 스트리밍 방식으로 출력 가능- 대화형 AI 시스템에서 빠른 응답 제공 가능
4. 활용 사례
LangGraph는 다양한 분야에서 활용될 수 있습니다.
1) AI 고객 지원 챗봇
- LangGraph를 활용하여 상담 시나리오 기반의 지능형 챗봇 구축
- 고객의 질문을 분석하고, 적절한 응답을 생성하며, 필요 시 추가 정보를 검색
2) 자동화된 연구 및 검색 에이전트
- LangGraph를 활용해 논문이나 웹 검색을 수행하는 자동 검색 에이전트 구축 가능
- 사용자가 질문을 하면, 여러 번 검색하여 최적의 답을 찾아 제공
3) 코드 생성 및 디버깅 도구
- 개발자가 코드를 작성하면 AI가 자동으로 코드 리뷰 및 수정 사항 제안
- 코드 테스트 자동 생성 시스템과 연계 가능
4) 금융 및 법률 컨설팅 AI
- 사용자의 재무 상태나 법률 질문을 분석하여 맞춤형 답변을 제공하는 AI 에이전트 구축
5. 설치 및 사용법
LangGraph는 Python 기반이며, 간단한 명령어로 설치할 수 있습니다.
설치
pip install langgraph
기본 예제
다음은 LangGraph로 간단한 AI 에이전트를 구현하는 예제입니다.
from langgraph.graph import StateGraph, START, END
from langchain.chat_models import ChatOpenAI
#
상태 정의
from typing import TypedDict, Annotated, List
import operator
class AgentState(TypedDict):
messages: Annotated[List[str], operator.add]
#
그래프 생성
graph = StateGraph(AgentState)
#
노드 추가 (AI 응답 생성)
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
def call_model(state: AgentState):
user_msg = state["messages"][-1]
ai_response = llm.predict(user_msg)
return {"messages": [f"AI: {ai_response}"]}
graph.add_node("agent", call_model)
#
그래프 실행 흐름 정의
graph.set_entry_point("agent")
graph.add_edge("agent", END)
#
그래프 컴파일 및 실행
app = graph.compile()
output_state = app.invoke({"messages": ["안녕하세요, 날씨 알려줘"]})
print(output_state["messages"][-1]) # AI의 응답 출력
실행 흐름
AgentState
를 정의해 대화 메시지를 저장call_model
노드에서 LLM(GPT-3.5)를 호출하여 응답 생성set_entry_point
를 통해 실행 시작점을agent
로 설정- 그래프 실행 후
invoke()
로 AI 응답 확인
6. 관련 연구 및 최신 동향
LangGraph는 최근 AI 연구에서 주목받는 인지 아키텍처(cognitive architecture) 패러다임과 연결됩니다.
최신 연구 트렌드
- AutoGPT, BabyAGI 등의 에이전트 프레임워크와 유사한 개념
- 멀티에이전트 시스템을 통한 협업형 AI 연구 진행
- 자기 피드백(Self-Reflection) 기능을 활용하여 AI 성능 개선
LangGraph 향후 발전 가능성
- LangSmith 등과 통합하여 실시간 모니터링 지원
- 더 정교한 에이전트 협업 프레임워크 추가 개발 예정
- 기업 환경에 최적화된 배포 도구 추가
마무리
LangGraph는 기존 LangChain보다 더 복잡한 AI 에이전트 워크플로우를 다룰 수 있는 강력한 툴입니다. 그래프 기반 설계, 상태 관리, 루프 지원 등을 활용하여 더 강력하고 신뢰성 높은 AI 시스템을 구축할 수 있습니다.