|
| 'LangGraph'를 알아봅시다. |
LangGraph란?
LangGraph는 LangChain 팀이 개발한 그래프 기반 AI 에이전트 프레임워크입니다.
OpenAI Agents SDK나 Google ADK가
고수준 API를 통해 빠른 구현을 돕는다면,
LangGraph는
State, Node, Edge라는 최소 단위로
개발자가 직접 에이전트의 흐름을 설계할 수 있습니다.
즉, 복잡한 AI Agent의 로직과 흐름을 더 정밀하게 제어할 수 있는 프레임워크입니다.
LangGraph의 특징
LangGraph는 다음과 같은 특징을 가지고 있습니다.
- 높은 자유도
- 강한 제어력
- 그래프 구조 기반의 흐름 설계
- 에이전트 동작의 시각화
복잡한 워크플로우를 가진 AI 에이전트를 구현할 때 특히 유용합니다.
세 가지 핵심 요소
LangGraph의 모든 구조는 다음 세 가지로 구성됩니다.
1. State: 그래프 전체에서 공유되는 데이터 저장소
- 그래프 전체가 읽고 쓰는 데이터 컨테이너
- 모든 노드는 State를 입력으로 받고, 업데이트 값을 반환
2. Node: 실제 작업을 수행하는 실행 단위
- LLM 호출
- 도구 실행
- 데이터 가공
즉, 에이전트의 행동을 정의하는 함수입니다.
3. Edge : 노드 간의 흐름을 정의하는 연결
- add_edge() 함수로 노드 연결
- 실행 순서를 정의하는 역할
graph_builder.add_edge("node_a", "node_b")
Reducer - State 업데이트 방식 제어
기본적으로 State는 값을 업데이트하면 기존 값을 덮어씁니다.
하지만, 이전 값을 유지하면서 누적해야 하는 경우에는 reducer를 사용합니다.
아래는 LangGraph에서 reducer를 사용하는 예시입니다.
Annotated[list, add_messages]는
"이 필드는 덮어쓰지 말고, 누적 방식으로 처리하라"는 의미입니다.
MessagesState - 챗봇을 위한 편의 기능
매번 message 필드와 reducer를 직접 정의하는 것이 번거롭다면,
MessagesState를 상속하여 더 간단하게 구현할 수 있습니다.
아래는 MessagesState 사용 예시입니다.
Conditional Edge - 동적 분기 처리
기본 Edge는 항상 같은 노드로 이동합니다.
하지만 Conditional Edge를 사용하면
State를 기반으로 다음 노드를 동적으로 결정할 수 있습니다.
아래는 Conditional Edge 구현 예시입니다.
예를 들어,
- LLM이 tool call을 반환하면 → tools 노드 이동
- 그렇지 않으면 → 종료
Command - 실행 중 흐름 제어
기존 Edge는 그래프 구성 시점에 경로가 정해집니다.
하지만 Command를 사용하면
노드 실행 시점에 다음 흐름을 동적으로 변경할 수 있습니다.
- 다음 노드 지정
- State 업데이트
ToolNode - 도구 실행 전담 노드
LangGraph는 도구 실행을 별도의 노드로 분리합니다.
다른 프레임워크와 비교하면:
- OpenAI Agents SDK → 자동 실행
- Google ADK → 자동 실행
- LangGraph → 명시적으로 노드 분리
이 덕분에,
- 로깅
- 검증
- 중간 처리
Checkpointer - 상태 저장과 메모리
Checkpointer는 각 단계의 State를 저장합니다.
이를 통해 다음 기능이 가능합니다.
- 대화 메모리 유지
- Human-in-the-loop
- 타임 트래블 (이전 상태로 복원)
interrupt & resume - Human-in-the-loop
interrupt()를 사용하면
그래프 실행을 중단하고 사용자 입력을 받을 수 있습니다.
이후
Command(resume=value)
로 실행을 이어갈 수 있습니다.
단, Checkpointer가 반드시 필요합니다.
타임 트래블 - 과거 상태로 돌아가기
특정 시점으로 돌아가
State를 수정하고 다시 실행할 수 있습니다.
이 방법은, 디버깅에 매우 유용하며,
- “이 선택을 다르게 했다면?”
- “이 시점에서 다른 결과는?”
LangGraph는 언제 사용하면 좋을까?
다음과 같은 경우에 특히 적합합니다.
- 복잡한 분기 로직이 필요한 AI Agent
- tool 사용 흐름을 세밀하게 제어해야 하는 경우
- multi-step reasoning이 필요한 시스템
- human-in-the-loop가 중요한 서비스
복잡한 워크플로우 기반 에이전트에 적합합니다.
정리
LangGraph는
AI 에이전트를 더 자유롭고 정밀하게 설계할 수 있는 프레임워크입니다.
- State → 데이터
- Node → 행동
- Edge → 흐름
LangGraph의 전체 구조를 파악할 수 있습니다.
다음엔 LangGraph (2) | 주요 기술적 특징으로 돌아오겠습니다.
읽어주셔서 감사합니다.







