LangGraph 개요 (Overview)
LangGraph 개요 (Overview)
Klarna, Uber, J.P. Morgan 등 에이전트 생태계를 이끄는 기업들이 신뢰하는 LangGraph는, 오래 실행되고 상태(stateful)를 유지하는 에이전트를 만들고 관리하고 배포하기 위한 저수준(low-level) 오케스트레이션 프레임워크이자 런타임이에요. LangGraph는 손으로 짠 결정적(deterministic) 단계와 LLM이 주도하는 에이전트 단계를 하나의 그래프 안에 섞는 정밀한 제어를 제공하므로, 애플리케이션이 요구하는 대로 정확히 동작하는 맞춤형 에이전트를 만들 수 있어요.
LangGraph는 아주 저수준이며, 전적으로 에이전트 **오케스트레이션(orchestration)**에 집중해요. LangGraph를 쓰기 전에 에이전트를 구성하는 몇 가지 컴포넌트, 특히 모델(models)과 도구(tools)를 먼저 익혀두는 걸 권장해요.
문서 전반에서 모델과 도구를 통합하기 위해 LangChain 컴포넌트를 자주 사용하지만, LangGraph를 쓰기 위해 LangChain이 꼭 필요한 건 아니에요. 에이전트를 이제 막 시작하는 분이거나 더 높은 수준의 추상화를 원한다면, 흔한 LLM·도구 호출 루프를 위한 사전 구축 아키텍처를 제공하는 LangChain의 agents를 추천해요.
LangGraph는 에이전트 오케스트레이션에 중요한 기반 기능, 즉 내구성 있는 실행(durable execution), 스트리밍, 인간 개입(human-in-the-loop) 등에 집중해요.
LangGraph의 핵심 강점 중 하나는 결정적 단계와 LLM이 주도하는 에이전트 단계를 하나의 그래프에 섞을 수 있다는 점이에요. 덕분에 일부 로직은 완전히 예측 가능하고 감사(auditable) 가능하게, 다른 부분은 유연하고 모델 주도로 만들 수 있어서, AI를 정확히 어디서 어떻게 적용할지 세밀하게 제어할 수 있어요.
LangChain 제품들이 어떻게 맞물리는지
- Deep Agents는 LangGraph 위에 계획(planning), 서브에이전트, 파일시스템 도구, 컨텍스트 관리를 얹는 에이전트 하네스(agent harness)예요.
- LangChain은 에이전트 프레임워크예요 — 모델·도구·에이전트 루프를 위한 추상화와 통합을 제공하죠.
- LangGraph는 오케스트레이션 런타임이에요 — 내구성 있는 실행, 스트리밍, 인간 개입, 영속화(persistence)를 담당해요.
- LangSmith는 프레임워크 전반에 걸친 트레이싱, 평가, 프롬프트, 배포를 위한 플랫폼이에요.
- LangSmith Engine은 LangGraph 에이전트 트레이스에서 문제를 감지하고 수정안을 제안해요. Engine 탭에서 제안된 수정을 곧바로 pull request로 열 수도 있어요.
- LangSmith Fleet은 템플릿·통합·일상 자동화를 위한 코드 없는(no-code) 에이전트 빌더예요.
오픈소스 스택의 비교는 Frameworks, runtimes, and harnesses 문서를 읽어보세요.
설치(Install)
pip 또는 uv로 설치해요.
pip install -U langgraph
uv add langgraph
그다음 간단한 hello world 예제를 만들어볼게요.
from langgraph.graph import StateGraph, MessagesState, START, END
def mock_llm(state: MessagesState):
return {"messages": [{"role": "ai", "content": "hello world"}]}
graph = StateGraph(MessagesState)
graph.add_node(mock_llm)
graph.add_edge(START, "mock_llm")
graph.add_edge("mock_llm", END)
graph = graph.compile()
graph.invoke({"messages": [{"role": "user", "content": "hi!"}]})
LangSmith를 사용하면 요청을 추적하고, 에이전트 동작을 디버깅하고, 출력을 평가할 수 있어요. LANGSMITH_TRACING=true를 설정하고 API 키를 넣으면 곧바로 시작할 수 있어요. 자세한 설정은 tracing quickstart를 따라 하시면 돼요. 트레이스를 모니터링하고 문제를 감지·수정안을 제안하는 LangSmith Engine도 함께 설정하는 걸 권장해요.
핵심 이점(Core benefits)
LangGraph는 모든 오래 실행되는 상태 유지 워크플로나 에이전트를 위한 저수준 지원 인프라를 제공해요. LangGraph는 프롬프트나 아키텍처를 추상화하지 않으며, 다음과 같은 중심 이점을 제공하죠.
- 결정적 단계와 에이전트 단계 섞기: 손으로 짠 결정적 로직과 LLM 주도 의사결정을 하나의 그래프에 결합해요. 신뢰성과 예측 가능성이 필요한 곳에는 결정적 단계를, 유연성이 필요한 곳에는 에이전트 단계를 써서 에이전트 동작의 모든 부분을 정밀하게 제어할 수 있어요.
- 영속화(Persistence): 실패에도 살아남고 오래 실행될 수 있는 에이전트를 만들어, 멈췄던 지점에서 다시 이어서 실행할 수 있어요.
- 인간 개입(Human-in-the-loop): 어느 시점에서든 에이전트 상태를 검사하고 수정해 인간의 감독을 반영할 수 있어요.
- 포괄적 메모리(Comprehensive memory): 지속적인 추론을 위한 단기 작업 메모리와 세션을 넘어서는 장기 메모리를 모두 갖춘 상태 유지 에이전트를 만들 수 있어요.
- LangSmith로 디버깅: 실행 경로를 추적하고 상태 전이를 포착하며 상세한 런타임 지표를 제공하는 시각화 도구로, 복잡한 에이전트 동작을 깊이 들여다볼 수 있어요.
- 프로덕션 준비 배포: 상태 유지·장기 실행 워크플로의 고유한 난제를 처리하도록 설계된 확장 가능한 인프라로, 정교한 에이전트 시스템을 자신 있게 배포할 수 있어요.
LangGraph 생태계
LangGraph는 단독으로도 쓸 수 있지만, 어떤 LangChain 제품과도 매끄럽게 통합되어 에이전트를 만들기 위한 완전한 도구 모음을 제공해요. LLM 애플리케이션 개발을 개선하려면 LangGraph를 이렇게 짝지어 쓰면 돼요.
- LangSmith Observability: 요청을 추적하고, 출력을 평가하고, 배포를 한곳에서 모니터링해요. LangGraph로 로컬에서 프로토타입을 만든 뒤, 통합된 가시성과 평가와 함께 프로덕션으로 옮기면 더 신뢰할 수 있는 에이전트 시스템을 구축할 수 있어요. (Learn more)
- LangSmith Deployment: 오래 실행되는 상태 유지 워크플로를 위해 특별히 만들어진 배포 플랫폼으로 에이전트를 손쉽게 배포하고 확장해요. 팀 간에 에이전트를 발견·재사용·구성·공유할 수 있고, Studio에서 시각적 프로토타이핑으로 빠르게 반복할 수 있어요. (Learn more)
- LangChain: LLM 애플리케이션 개발을 간소화하는 통합과 조립 가능한 컴포넌트를 제공해요. LangGraph 위에 구축된 에이전트 추상화를 포함하죠. (Learn more)
감사의 말(Acknowledgements)
LangGraph는 Pregel과 Apache Beam에서 영감을 받았어요. 공개 인터페이스는 NetworkX에서 영감을 얻었죠. LangGraph는 LangChain의 창시자인 LangChain Inc가 만들었으며, LangChain 없이도 사용할 수 있어요.