What is Langchain & LangGraph?
LangChain과 LangGraph의 차이
- Langchain?
- 하나의 agent를 만드는 프레임워크이다.
- LangGraph?
- 여러개의 agent를 만드는 프레임워크. agent 하나하나가 노드이다.
- 노드들 사이의 연결이 있다.
- 그래프에 정의해논 각 tool 혹은 agent들이 모듈화돼서 각자의 역할을 한다.
=> 다룰 수 있는 범위의 제약이 다르다. LangGraph가 좀 더 무겁고 어렵지만 활용 가능성이 더 많긴 하다. 둘 중에 뭘 쓰든, LangSmith를 연결해 놓고 쓰는 경우가 많을 것이다.
작동 방식
- 사용자가 에이전트에게 쿼리를 날림
- LLM(agent)이 쿼리를 바탕으로 Tool을 선택한다
- 사용자에게 넘길 수 있는 output이 나올때까지 과정을 반복(roop를 돌면서)해서 완성이 되면 사용자에게 준다.
LangChain
LLM 기반 애플리케이션을 빠르게 개발할 수 있는 오픈 소스 프레임워크이다. 즉, LLM을 활용하여 자동화된 작업을 수행하는 Agent를 만드는 라이브러리이다.
LLM을 다양한 데이터/툴과 연결하여 강력한 애플리케이션 개발이 가능하다.
다양한 LLM provider(OpenAI, Anthropic, Google… 등등)과 통합하여 모델/회사별 API 차이를 공통 인터페이스로 관리가 가능하다.
Prompt, Memory, Tools와 같은 컴포넌트들이 모듈화 되어 있어서 재사용과 확장성 확보에 좋고,
LangGraph 기반으로 복잡한 워크플로우를 시각적으로 설계 및 관리가 가능한 장점이 있다.
- 일단 Agent인 대빵 LLM 모델을 설정해줘야한다.
invoke메서드로 실행할 수 있다. => 모델을 호출할수도 있다. / Agent도 호출할 수 있다.def같은 함수를 에이전트에게 넘기는 것도 가능하다.- multi-turn 대화를 위해 메모리를 남겨 놓거나, 중간 과정에 개입해서 커스터마이징하는 것도 LangGraph에서 빌려와서 쓸 수 있게 하는 것도 가능하다.
- LangChain Community 라이브러리가 있는데 여기를 통하면 기존에 만들어 놓은 서비스 tool들을 쉽게 바로 랭체인에 연결해서 랭체인 메서드로 쓸 수가 있다.
추가적으로, OepnAI 플랫폼을 보면 여러 tool들이 있다.
이런식으로 LLM vendor들이 만들어 놓은 tool이 있는데, agent가 아니라 LLM에서 할 수 있게 함. 하나의 모델이 agent역할을 수행할 수 있게 제공해 놓은 느낌이다.
그런데 agent에는 바인더가 안된다.
그래서 이거는 아직 쓰면 안될 것 같다. 그래서 이런 오픈소스가 있다면 유의하며 코드를 사용해야 한다.
Langchain의 구성요소
- Langchain Library : Lanchain의 다양한 기능을 사용할 수 있게 구현해둔 패키지
- langchain-core: LangChain의 가장 기본 문법
- Integrated Package : 다른 AI 도구와 LangChain을 쉽게 연결할 수 있는 패키지 (e.g. langchain-upstage, langchain_chroma)
- langchain: 애플리케이션 구성에 필요한 체인, 에이전트, 정보 검색 전략 등을 제공하여 애플리케이션의 ‘두뇌’ 역할을 한다.
-
Langchain Templates: 다양한 작업에 맞춘 템플릿으로, 개발자들이 애플리케이션을 더 빠르게 설정하고 실행할 수 있도록 돕는다.
-
LangServe: LangChain으로 만든 애플리케이션을 REST API로 쉽게 배포할 수 있게 해주는 도구이다.
-
LangSmith: 개발자가 애플리케이션을 디버그하고 테스트하며 모니터링할 수 있도록 도와주는 플랫폼이다.
- LangGraph: LLM이 가지는 여러 상태들을 관리하여 Agent를 구조화하여 구현할 수 있는 프레임워크이다.
- MCP를 langchain으로 활용할 수 있도록 최근 langchain에서 개발한 라이브러리다.
- 자기만의 MCP 서버를 만들 수 있게 되었음!
LangGraph
- 그럼 LangGraph는 위의 설명의 LangChain이 여러개라고 볼 수도 있지 않을까?
- 각자의 agent 역할을 잘 맡겨놓으면 효용서이 매우 큼. 즉, 프로젝트 규모가 커질수록 잠재력이 크다.
아키텍처
- Node : Agent
- Edge : 데이터의 연결
- State : 노드가 에이전트라고 했을 때, 각각의 워크플로우가 정해져 있다면 각각의 에이전트가 output을 낼 건데, 이때의 output이 state.
LangSmith
추가적으로 랭스미스도 알아두면 좋다.
랭스미스는 Langchain Agent 실행을 기록하고 분석하는 Observability 플랫폼이다.
모든 입력을 tracing하여 입출력 확인, 토큰 사용량 및 비용 확인, 에러 로그 시각화, 지연시간 측정 등의 기능을 제공한다.
Agent 실행에 대한 모든 로그를 langsmith에서 확인할 수 있다.
기능
- tracing : 각 요청에 대한 Agent 실행 기록 추적 및 시각화한다.
- 사용자 및 AI의 입출력
- 워크플로우 실행 과정
- 각 과정에서의 토큰 사용량, 지연 시간, 과금량 등 리소스 소모량
- 오류 로그 및 디버깅 정보 등
- monitoring : 프로젝트 내 전체적인 Agent 실행 관련 지표 실시간 제공한다.
- 일별·모델별 사용량 및 과금액
- 도구별 호출 횟수 등
- 기타 실행 최적화를 위한 다양한 분석 툴 제공한다.