LangGraph vs LlamaIndex: JavaScript에서 AI 에이전트 개발 프레임워크 비교
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
앱 개발
대상자
JavaScript/TypeScript를 사용하는 AI 에이전트 개발자 및 프론트엔드/백엔드 엔지니어
난이도: 중급 이상 (AI 에이전트 개발 경험이 필요)
핵심 요약
- LlamaIndex.TS는 이벤트 기반 워크플로우를 통해
tool
과agent
간의 상호작용을 모듈화하여 유연한 로직 구조를 제공 - LangGraph는 타입 기반 함수 그래프(
StateGraph
)로 구성된 상태 기계(Statemachine) 모델을 사용해 복잡한 멀티스텝 에이전트 구현 가능 - 두 프레임워크 모두 OpenAI GPT-4.1-mini 모델과 호환되며, CLI 도구(
create-llama
,langgraph
)를 통해 템플릿 기반 프로젝트 생성 지원
섹션별 세부 요약
1. AI 에이전트 개발의 현재 트렌드
- 정적 프롬프트 엔지니어링에서 자율적 에이전트(Agent) 개발로 이동
- LLM 기반 작업 흐름, 메모리 관리, 도구 사용이 필수적
- Python 생태계가 주도했으나 JavaScript/TypeScript 생태계에 대한 수요 증가
2. LlamaIndex.TS의 핵심 기능
- 이벤트 기반 워크플로우
- tool
과 agent
의 각 단계를 이벤트로 모델링
- ChatMemoryBuffer
를 통한 메모리 관리
- 코드 예시
```typescript
const sumNumbers = tool({ name: "sumNumbers", parameters: z.object({ a: z.number(), b: z.number() }) });
const chatAgent = agent({ llm: openai({ model: "gpt-4.1-mini" }), tools: [sumNumbers] });
```
- 지원 기능
- Agentic RAG, 코드 생성, 재무 보고서 등 템플릿 제공
- OpenTelemetry, LangTrace 통합
3. LangGraph의 핵심 기능
- 타입 기반 함수 그래프(
StateGraph
)
- 상태 기계 모델로 각 노드가 비동기 함수로 구성
- Checkpointers를 통해 세션 간 상태 저장 및 재생 기능 지원
- 코드 예시
```typescript
const graphState = Annotation.Root({ message: Annotation
const callModel = async (state: typeof graphState.State) => { ... };
const graph = new StateGraph(graphState);
graph.addNode('callModel', callModel).addEdge(START, 'callModel').addEdge('callModel', END);
```
- 지원 기능
- Human-in-the-Loop 기능으로 결정 측면 작업 가능
- LangGraph Studio에서 에이전트 인터랙션 및 상태 분석
4. 두 프레임워크의 주요 차이
- LlamaIndex.TS
- 모듈화된 워크플로우에 적합
- 이벤트 기반 처리로 유연한 로직 구성
- LangGraph
- 복잡한 상태 관리와 타입 기반 그래프로 장기 실행 에이전트 구현
- CLI 도구를 통한 프로젝트 템플릿 생성
결론
- LlamaIndex.TS는 중간 단계의 에이전트 개발에 적합하며, 모듈화된 워크플로우를 통해 유연한 확장성 제공
- LangGraph는 복잡한 멀티스텝 에이전트와 장기 실행 작업에 적합하며, 타입 기반 그래프로 예측 가능한 상태 관리 가능
- 선택 시 고려사항:
- LlamaIndex.TS: create-llama
CLI를 통한 템플릿 기반 프로젝트 생성
- LangGraph: LangGraph Studio를 통한 인터랙션 분석 및 디버깅 활용