개요
LangChain과 LangGraph 1.0 정식 릴리즈를 소개하는 공식 유튜브 영상의 요약입니다. LangChain의 공동 창립자이자 CEO인 해리슨과 오픈 소스 엔지니어들이 3년간의 발전 과정과 1.0 버전의 핵심 내용을 설명합니다.
주요 발표자: 해리슨 체이스(CEO), 시드니, 헌터, 윌(엔지니어)
LangChain의 초기 비전과 발전
시작 (약 3년 전, ChatGPT 출시 한 달 전)
LangChain은 두 가지 핵심 요소로 시작되었습니다:
-
통합 세트 (Integrations)
- OpenAI, Cohere, Hugging Face 등의 모델 통합
- 벡터 저장소, 문서 로더 등 핵심 구성 요소 통합
-
상위 수준 인터페이스 (High-level Interface)
- 단 5줄의 코드로 RAG나 SQL 구현 가능
- 초보자도 쉽게 AI 애플리케이션 구축 가능
패러다임 전환
산업이 성숙하고 사용자들이 프로토타입에서 실제 제품으로 전환하면서 LangChain의 초점이 변화했습니다:
- 쉬운 시작 → 프로덕션 준비
- 단순한 추상화 → 제어 가능성과 사용자 정의
LangGraph의 탄생과 핵심 원칙
LangGraph는 LangChain 출시 약 1년 반 후에 개발되었으며, 두 가지 핵심 원칙을 바탕으로 합니다:
1. 제어 가능성 (Control)
-
문제: LangChain은 시작하기 쉬웠지만 프로덕션 환경에서 사용자 정의가 어려움
- ‘5줄 코드 RAG’는 내부적으로 많은 가정과 숨겨진 컨텍스트 엔지니어링 수행
- 수정 시 낮은 수준의 제어 기능 필요
-
해결: 일반 소프트웨어를 작성하는 것처럼 쉽게 사용자 정의 가능하도록 설계
- 모델 기능과 프로덕션 안정성 간의 격차 해소
- 예상치 못한 사용자 상호작용에 대한 적절한 프롬프트와 안전 장치 구성 가능
- 장기 실행 에이전트의 범위 제어
2. 런타임 (Runtime)
-
내구성 있는 실행 환경
- 오류 발생 시 체크포인트에서 복구 가능
- 전체 실행을 취소할 필요 없음
-
기본 기능으로서의 스트리밍
- 사용자가 에이전트의 진행 상황 실시간 확인 가능
- 프레임워크 내에서 스트리밍 네이티브 지원
-
휴먼-인-더-루프 (Human-in-the-loop)
- LangChain 초기에는 고려되지 않았던 중요한 요소
- LangGraph에서 핵심 기능으로 설계
LangChain 1.0: LangGraph 기반의 쉬운 시작
핵심 특징
LangChain 1.0 = LangGraph의 강력함 + LangChain의 쉬운 시작
-
LangGraph 런타임 기반
- 휴먼-인-더-루프
- 지속성 (Persistence)
- 내구성 있는 실행
-
에이전트 생성 추상화
- 노드, 에지, 워크플로 기본 요소에 익숙하지 않아도 됨
- 몇 줄의 코드로 모델 도구 호출 루프 시작 가능
- LangGraph의
create_react_agent패턴 계승 및 개선
목표
생성형 AI, 특히 에이전트 구축을 시작하는 가장 쉬운 곳
미들웨어: 에이전트 루프의 확장성
개념
미들웨어는 개발자가 핵심 에이전트 루프의 어느 시점에든 추가 로직을 추가할 수 있게 하는 LangChain 1.0의 핵심 기능입니다.
주요 미들웨어 유형
-
요약 미들웨어
- 모델 호출 전 과거 대화 기록 요약
-
휴먼-인-더-루프 미들웨어
- 위험하거나 비용이 많이 드는 도구 호출 전 사람의 승인
-
동적 프롬프트/도구 미들웨어
- 상황에 따른 프롬프트 및 도구 사용자 정의
-
동적 모델 미들웨어 ⭐
- 컨텍스트 기반으로 메시지 재생성
- 작업에 따라 최적의 모델 동적 선택
- 예: 코딩(Anthropic), 추론(OpenAI), 멀티모달(Google)
의미
- 더 이상 하나의 챔피언 모델이 존재하지 않음
- 모델 간 선택 가능성은 LangChain의 원래 목표
- 에이전트 구축의 최첨단 유지
모델 통합의 발전: 콘텐츠 블록
진화 과정
- 초기: 문자열 입력 → 문자열 출력
- 발전: 메시지 목록 입력 → 메시지 출력
- 현재: 멀티모달 모델로 인한 복잡성 증가
콘텐츠 블록의 필요성
문제:
- 모든 제공업체가 콘텐츠 블록 형태에 대해 고유한 의견 보유
- 심지어 서버 측 도구도 제공업체마다 다름
- 모델 변경 시 메시지 형태가 바뀌어 스트리밍 코드 등이 망가짐
해결:
- 콘텐츠 블록 표준화
- 개발자들이 메시지 형태에 대한 불확실성 없이 애플리케이션 구축 가능
LangChain과 LangGraph: 언제 무엇을 사용할 것인가?
권장 접근 방식
graph TD A[새 프로젝트 시작] --> B{무엇을 원하는가?} B -->|빠른 시작<br/>기본 에이전트| C[LangChain 1.0으로 시작] B -->|높은 제어력<br/>복잡한 워크플로| D[LangGraph 사용] C --> E{기능 확장 필요?} E -->|기본 기능으로 충분| F[LangChain 1.0 유지] E -->|복잡한 사용자 정의 필요| G[LangGraph로 전환<br/>또는 연결]
LangChain 1.0 사용 시나리오
✅ 다음과 같은 경우에 적합:
- 에이전트를 빠르게 시작하고 싶을 때
- 높은 수준의 구성 요소 사용
- 다양한 추상화에 대해 깊이 생각하지 않고 유용한 작업 수행
- AI와 파이썬 프로그래밍 처음 시작
- 프로덕션 준비된 런타임이 필요할 때
특징:
- 최저점(진입 장벽)은 낮아지고 상한선(기능)은 높아짐
- 프로덕션 준비된 런타임 제공
LangGraph 사용 시나리오
✅ 다음과 같은 경우에 적합:
- 매우 사용자 정의된 워크플로
- 에이전트가 더 복잡하게 “사고”하기를 원할 때
- 결정론적 단계와 에이전트 단계를 명시적으로 구분
- 컨텍스트 엔지니어링을 강제하고 싶을 때
- 더 복잡한 에이전트 빌딩 주제에 익숙해지고 싶을 때
특징:
- 모든 것이 매우 구성 가능
- 결정론과 명시적인 단계, 워크플로 제어
하이브리드 접근
LangChain의 에이전트 생성을 사용하여 기능적인 에이전트를 구축한 다음 기존 LangGraph 워크플로에 연결 가능
미래 전망: 커뮤니티의 역할과 UI/UX
커뮤니티의 역할
가장 기대되는 점: 커뮤니티에서 어떤 맞춤형 미들웨어를 개발할지
현재 제공되는 미리 만들어진 미들웨어:
- 요약
- 동적 모델
- 도구
- 프롬프트
- 휴먼-인-더-루프
미들웨어의 특성:
- 매우 확장 가능
- 매우 구성 가능
- 커뮤니티의 창의적인 아이디어 기대
UI/UX 개선
투자 영역:
-
스트리밍 개선
- LangGraph의 핵심 구성 요소
- LangChain의 기능 강화
-
JavaScript 측면 강화
- JavaScript에서 모든 풀 스택 에이전트 생성
- 프론트 엔드, 백 엔드, 상호 작용 패턴 탐색
지속적 발전
1.0 릴리스는 시작점이며, 사용자 피드백을 통해 계속 발전할 예정
참고 링크
- LangGraph 공식 문서: https://docs.langchain.com/oss/python/langchain/overview
- LangChain 공식 문서: https://docs.langchain.com/oss/python/langgraph/overview