본문 바로가기

카테고리 없음

LangGraph 조사

반응형

LangGraph: 엔터프라이즈급 에이전트 오케스트레이션을 위한 아키텍처 및 구현에 관한 포괄적 분석 보고서

1. 서론: 인지 아키텍처(Cognitive Architecture)로서의 그래프 접근법

1.1. LLM 애플리케이션의 패러다임 전환: 체인에서 에이전트로

대규모 언어 모델(Large Language Models, LLMs)의 기술적 발전은 단순히 텍스트를 생성하는 도구를 넘어, 추론(Reasoning)하고 행동(Acting)하는 자율 에이전트(Autonomous Agents) 시스템으로의 전환을 가속화하고 있다. 초기 LLM 애플리케이션 프레임워크인 LangChain은 주로 입력과 출력이 선형적으로 연결되는 유향 비순환 그래프(Directed Acyclic Graph, DAG) 구조, 즉 '체인(Chain)' 방식에 의존했다. 이러한 접근 방식은 문서 요약이나 단순 질의응답(RAG)과 같은 결정론적(Deterministic) 작업에는 효과적이었으나, 복잡한 비즈니스 로직이나 장기적인 상태 관리가 필요한 시나리오에서는 한계를 드러냈다.1

복잡한 문제 해결을 위해서는 인간의 사고 과정과 유사한 반복적(Iterative) 추론과 자기 수정(Self-correction) 메커니즘이 필수적이다. 예를 들어, 코드를 작성하는 에이전트는 코드를 생성한 후, 이를 실행해보고, 오류가 발생하면 원인을 분석하여 다시 코드를 수정하는 '루프(Loop)' 구조를 가져야 한다. 이러한 순환적(Cyclic) 흐름은 기존의 DAG 기반 구조로는 구현하기 어렵거나 불가능하다.3 LangGraph는 이러한 문제를 해결하기 위해 등장했으며, 그래프 이론을 기반으로 상태(State)를 유지하며 순환 실행을 지원하는 저수준(Low-level) 오케스트레이션 프레임워크로 정의된다.3

1.2. LangGraph의 핵심 가치와 설계 철학

LangGraph는 단순히 에이전트를 쉽게 만드는 도구가 아니라, 복잡한 에이전트 시스템을 '신뢰성 있게' 구축하기 위한 인프라스트럭처를 제공한다. LangChain Inc.에 의해 개발되었지만 LangChain과는 독립적으로 사용될 수 있으며, Google의 Pregel 시스템과 Apache Beam에서 영감을 받아 설계되었다.3

LangGraph의 핵심 설계 철학은 다음 세 가지로 요약된다:

  1. 순환성(Cycles): 루프와 반복을 일급 객체(First-class Citizen)로 지원하여, 에이전트가 목표를 달성할 때까지 작업을 반복하거나 전략을 수정할 수 있게 한다.1
  2. 제어 가능성(Controllability): 프롬프트 엔지니어링에 의존하는 블랙박스형 에이전트 대신, 개발자가 코드 레벨에서 명시적으로 제어 흐름(Control Flow)을 정의하고 상태 전이를 관리할 수 있도록 한다.3
  3. 영속성(Persistence): 실행 중인 그래프의 상태를 자동으로 저장하고, 장애 발생 시 복구하거나 시간을 거슬러 올라가 디버깅할 수 있는 기능을 제공한다.8

이러한 특성은 LangGraph가 단순한 프로토타이핑 도구를 넘어, 실제 프로덕션 환경에서 장기 실행(Long-running)되는 stateful 애플리케이션을 구축하는 데 적합한 기반 기술임을 시사한다.3

2. 핵심 아키텍처 및 이론적 배경

LangGraph의 아키텍처는 노드(Nodes)와 엣지(Edges)로 구성된 그래프 구조 위에서 상태(State)가 메시지 패싱(Message Passing) 방식으로 전파되는 모델을 따른다. 이는 분산 처리 시스템의 Actor 모델과 유한 상태 머신(Finite State Machine, FSM)의 특성을 결합한 형태이다.

2.1. 상태(State) 중심의 설계: 공유 메모리 모델

LangGraph의 가장 큰 특징은 중앙집중식 상태 관리이다. StateGraph 클래스는 그래프의 모든 노드가 공유하는 데이터 구조인 '상태 스키마(State Schema)'를 정의함으로써 초기화된다.6 이 상태는 에이전트의 단기 기억(Short-term Memory) 역할을 하며, 대화 기록, 수행된 작업의 결과, 에이전트의 내부 변수 등을 저장한다.

2.1.1. 스키마 정의와 TypedDict

상태는 일반적으로 Python의 TypedDict를 사용하여 정의된다. 이는 정적 타입 검사를 가능하게 하여 개발 시 오류를 줄여준다.

구성 요소 설명 역할
State Schema 그래프 내 데이터 구조 정의 (TypedDict/Pydantic) 모든 노드가 접근 및 수정 가능한 공유 메모리
Reducer 상태 업데이트 방식 정의 (예: operator.add) 기존 데이터를 덮어쓸지, 추가할지 결정하는 로직
Channels 노드 간 데이터 전달 경로 상태의 각 키(Key)가 하나의 채널로 동작

예를 들어, 대화형 에이전트의 상태는 다음과 같이 정의될 수 있다:

 

Python



from typing import TypedDict, Annotated, List
import operator

class AgentState(TypedDict):
    # 메시지 리스트는 덮어쓰지 않고 추가(Append)된다.
    messages: Annotated[List[str], operator.add]
    # 현재 단계(step)는 매번 최신 값으로 덮어씌워진다.
    current_step: str

여기서 Annotated[List, operator.add] 패턴은 LangGraph 상태 관리의 핵심이다. 일반적인 변수 할당과 달리, 노드가 반환하는 값은 기존 상태를 대체하는 것이 아니라 리듀서 함수(operator.add)를 통해 병합된다.10 이는 분산 시스템에서 여러 노드가 동시에 상태를 업데이트할 때 발생할 수 있는 충돌을 방지하고, 대화 기록과 같이 누적되어야 하는 데이터를 효율적으로 관리하게 해준다.1

2.2. 노드(Nodes): 작업의 실행 단위

노드는 그래프 내에서 실제 연산이나 작업을 수행하는 함수이다. 각 노드는 현재의 State를 입력으로 받아 로직을 수행한 후, 상태에 반영할 변경 사항(Update)을 딕셔너리 형태로 반환한다.6 노드는 LLM 호출, 데이터베이스 조회, 외부 API 실행 등 어떠한 파이썬 코드라도 포함할 수 있다.

노드의 실행 결과는 전체 상태를 반환할 필요가 없으며, 변경하고자 하는 필드만 부분적으로 반환하면 된다. LangGraph 런타임은 이 반환값을 받아 앞서 정의된 리듀서 로직에 따라 전체 상태를 갱신한다. 이러한 방식은 네트워크 트래픽을 줄이고 상태 관리의 효율성을 높인다.7

2.3. 엣지(Edges): 동적 제어 흐름의 구현

엣지는 노드 간의 연결을 정의하며, 시스템의 제어 흐름(Control Flow)을 결정한다. LangGraph는 세 가지 유형의 엣지를 제공하여 복잡한 로직을 구현한다.6

  1. 일반 엣지(Normal Edges): 노드 A가 완료되면 무조건 노드 B로 이동하는 결정론적 연결이다.
  2. 조건부 엣지(Conditional Edges): LangGraph의 가장 강력한 기능 중 하나로, 노드 실행 후 특정 조건에 따라 다음 이동할 노드를 동적으로 결정한다. 이는 주로 LLM의 출력 결과나 도구 사용 여부를 판단하는 '라우터(Router)' 함수에 의해 제어된다.
  3. 진입점 및 종료점(Entry & Exit Points): 그래프 실행의 시작(START)과 끝(END)을 정의한다.

2.3.1. 슈퍼 스텝(Super-step) 실행 모델

LangGraph의 실행은 '슈퍼 스텝'이라는 이산적인 단계로 이루어진다. 이는 Google의 Pregel 알고리즘에서 유래한 개념으로, 하나의 슈퍼 스텝에서는 활성화된 모든 노드가 병렬로 실행될 수 있다.6 모든 노드의 실행이 완료되고 상태 업데이트가 적용되면, 시스템은 다음 슈퍼 스텝으로 넘어간다. 이 모델은 병렬 처리를 자연스럽게 지원하며, 멀티 에이전트 시스템에서 다수의 에이전트가 동시에 작업을 수행하고 결과를 동기화하는 데 매우 유리하다.

3. 영속성(Persistence)과 체크포인팅(Checkpointing) 기술

엔터프라이즈 환경에서 에이전트를 배포할 때 가장 중요한 요구사항 중 하나는 상태의 영속성이다. 사용자와의 대화가 길어지거나, 에이전트가 며칠에 걸쳐 작업을 수행해야 하는 경우, 메모리 상의 데이터만으로는 시스템의 신뢰성을 보장할 수 없다. LangGraph는 이를 위해 강력한 체크포인팅 시스템을 내장하고 있다.8

3.1. 체크포인터(Checkpointer)의 작동 원리

체크포인터는 그래프의 각 슈퍼 스텝이 완료될 때마다 상태의 스냅샷(Snapshot)을 저장소에 기록한다. 그래프를 컴파일할 때 checkpointer 인자를 통해 설정하며, 실행 시에는 thread_id를 포함한 설정(config)을 전달하여 특정 세션을 식별한다.8

 

Python



from langgraph.checkpoint.memory import MemorySaver
# 인메모리 체크포인터 생성 (프로덕션에서는 PostgresSaver 권장)
memory = MemorySaver()
# 그래프 컴파일 시 체크포인터 주입
graph = builder.compile(checkpointer=memory)
# 스레드 ID 지정하여 실행
config = {"configurable": {"thread_id": "session_1"}}
graph.invoke(inputs, config=config)

저장되는 체크포인트에는 다음 정보들이 포함된다:

  • Values: 해당 시점의 상태 값 전체.
  • Next: 다음에 실행될 노드의 목록.
  • Config: 스레드 ID, 체크포인트 ID 등 메타데이터.
  • Writes: 해당 단계에서 발생한 상태 변경 사항.

3.2. 데이터베이스 백엔드와 확장성

LangGraph는 다양한 스토리지 백엔드를 지원한다. 개발 및 테스트 단계에서는 MemorySaver나 SqliteSaver를 사용할 수 있지만, 프로덕션 환경에서는 높은 동시성과 데이터 무결성을 보장하기 위해 PostgresSaver 또는 CouchbaseSaver와 같은 분산 데이터베이스 기반의 체크포인터를 사용하는 것이 필수적이다.11

PostgreSQL을 사용할 경우, JSONB 타입을 활용하여 유연한 상태 스키마를 효율적으로 저장하고 조회할 수 있다. 또한, 연결 풀(Connection Pool)을 구성하여 수천 개의 동시 세션을 처리할 수 있는 확장성을 확보해야 한다. 대용량 데이터(이미지, 긴 PDF 등)를 상태에 포함시켜야 할 경우, 데이터베이스 부하를 줄이기 위해 실제 데이터는 S3와 같은 객체 스토리지에 저장하고, 상태에는 해당 데이터의 참조(Reference) URL만 저장하는 전략이 권장된다.12

3.3. 타임 트래블(Time Travel)과 디버깅

영속성 계층은 단순한 저장 기능을 넘어 '타임 트래블'이라는 고급 디버깅 기능을 가능하게 한다. 개발자는 graph.get_state_history(config)를 통해 과거의 모든 실행 단계를 조회할 수 있으며, 특정 시점의 체크포인트 ID를 지정하여 그 시점의 상태를 불러올 수 있다.8

이는 에이전트가 잘못된 행동을 했을 때, 과거로 돌아가서 원인을 분석하거나, 사용자의 입력을 수정하여 다른 결과를 생성해보는 시뮬레이션(Counterfactual Analysis)에 매우 유용하다. update_state 메서드를 사용하면 특정 시점의 상태를 강제로 수정하여 새로운 분기(Fork)를 만들 수 있으며, 이는 "만약 에이전트가 이 도구 대신 저 도구를 사용했다면?"과 같은 가정을 테스트하는 데 활용된다.14

4. Human-in-the-Loop (HITL) 상호작용 패턴

완전 자율 에이전트는 이상적이지만, 실제 비즈니스 환경에서는 비용 발생, 민감한 데이터 처리, 환각 방지 등을 위해 인간의 개입이 필수적이다. LangGraph는 이러한 HITL 워크플로우를 기본 아키텍처 수준에서 지원한다.16

4.1. 인터럽트(Interrupt) 메커니즘

LangGraph는 그래프 실행을 특정 지점에서 일시 중단하고, 외부 입력(인간의 개입)을 기다리게 할 수 있다.

  • 정적 인터럽트 (interrupt_before, interrupt_after): 그래프 컴파일 시 특정 노드를 지정하여, 해당 노드 실행 전이나 후에 무조건 멈추도록 설정한다. 이는 개발자가 명시적으로 검토 지점을 설정할 때 유용하다.17
  • 동적 인터럽트 (interrupt 함수): 노드 내부 로직에서 interrupt() 함수를 호출하여 조건부로 실행을 멈출 수 있다. 예를 들어, LLM이 생성한 결과의 신뢰도 점수가 특정 임계값 미만일 때만 인간의 확인을 요청하는 로직을 구현할 수 있다.17

 

Python



from langgraph.types import interrupt

def sensitive_action_node(state):
    # 사용자에게 승인 요청
    decision = interrupt("이 작업을 승인하시겠습니까?")
    if decision == "approved":
        return perform_action()
    else:
        return {"status": "rejected"}

4.2. 상태 수정 및 실행 재개

인터럽트로 멈춘 상태에서 운영자(Human)는 현재의 상태를 검사(Inspect)하고, 필요한 경우 update_state를 통해 상태를 수정한 뒤 실행을 재개할 수 있다. 예를 들어, 에이전트가 작성한 이메일 초안이 마음에 들지 않으면, 사용자가 초안을 직접 수정한 후 승인 버튼을 누르면 에이전트는 수정된 내용을 바탕으로 이메일을 전송하게 된다. 이 과정에서 에이전트는 자신이 수정한 것으로 인식하고 자연스럽게 워크플로우를 이어간다.16

4.3. 스트리밍(Streaming) 전략

HITL 환경에서 사용자 경험(UX)을 극대화하기 위해서는 실시간 피드백이 중요하다. LangGraph는 다양한 스트리밍 모드를 제공한다.19

스트리밍 모드 설명 활용 사례
values 각 단계 후 전체 상태 값 스트리밍 UI 상태 동기화
updates 변경된 상태 델타(Delta)만 스트리밍 네트워크 효율성 최적화
messages LLM 토큰 단위 실시간 출력 챗봇 타이핑 효과 (Typewriter effect)
custom 노드 내부에서 사용자 정의 데이터 전송 진행률 표시줄(Progress bar), 디버그 로그

특히 messages 모드는 LLM이 생성하는 토큰을 실시간으로 프론트엔드에 전달하여, 긴 생성 시간 동안 사용자가 지루해하지 않도록 돕는다.

5. 고급 RAG 및 적응형 에이전트 패턴

LangGraph는 단순한 검색 증강 생성(RAG)을 넘어, 검색 품질을 스스로 평가하고 전략을 수정하는 고급 RAG 패턴 구현에 최적화되어 있다. 이 섹션에서는 주요 고급 패턴들의 구현 로직을 상세히 분석한다.

5.1. Corrective RAG (CRAG)

CRAG는 검색된 문서가 사용자의 질문에 적합한지 평가하고, 부적합할 경우 수정 조치를 취하는 패턴이다.21

  1. 검색(Retrieve): 사용자의 질문에 대해 문서를 검색한다.
  2. 평가(Grade): 검색된 각 문서에 대해 LLM 기반의 평가자(Grader)가 관련성 점수를 매긴다.
  3. 분기(Branching):
  • 관련성 있는 문서가 있으면 -> 생성(Generate) 단계로 이동.
  • 관련성 있는 문서가 없거나 부족하면 -> 웹 검색(Web Search) 도구를 호출하여 외부 지식을 보완하거나, 쿼리를 재작성(Query Rewrite)하여 재검색한다.
  1. 생성(Generate): 확보된 문서를 바탕으로 답변을 생성한다.

이 패턴은 잘못된 검색 결과로 인한 환각(Hallucination)을 획기적으로 줄여준다. LangGraph에서는 '평가' 노드와 '조건부 엣지'를 통해 이를 구현한다.22

5.2. Adaptive RAG

Adaptive RAG는 모든 질문에 대해 똑같은 RAG 파이프라인을 적용하는 것이 비효율적이라는 문제의식에서 출발한다. 질문의 복잡도에 따라 동적으로 전략을 선택한다.22

  • 질의 분석(Query Analysis): 라우터(Router) 에이전트가 질문을 분석하여 분류한다.
  • 단순 질문: LLM의 내부 지식만으로 답변 (No Retrieval).
  • 사실적 질문: 벡터 데이터베이스 검색 (RAG).
  • 복잡/최신 질문: 웹 검색 엔진 사용 (Web Search).
  • 적응형 실행: 분류된 결과에 따라 서로 다른 서브그래프(Subgraph)나 노드로 라우팅된다.

이 방식은 비용과 지연 시간(Latency)을 최적화하는 동시에 답변의 정확도를 높이는 효과가 있다.25

5.3. Self-RAG

Self-RAG는 생성된 답변 자체를 스스로 평가(Self-Reflection)하는 구조이다. 에이전트는 답변을 생성한 후 다음 세 가지를 검증한다.23

  1. Groundedness: 답변이 검색된 문서에 근거하고 있는가?
  2. Relevance: 답변이 사용자의 질문에 적절한가?
  3. Usefulness: 답변이 유용한가?

평가 결과가 기준에 미치지 못하면, 에이전트는 답변을 폐기하고 다시 생성하거나 추가 정보를 검색하는 루프를 돈다. LangGraph의 순환 구조는 이러한 '생성-평가-재생성' 루프를 구현하는 데 가장 이상적이다.

6. 멀티 에이전트 아키텍처 및 구현

단일 에이전트의 성능 한계를 극복하기 위해 다수의 전문화된 에이전트가 협업하는 멀티 에이전트 시스템이 주목받고 있다. LangGraph는 이를 위한 다양한 아키텍처 패턴을 지원한다.26

6.1. 슈퍼바이저(Supervisor) 아키텍처

중앙 관리자(Supervisor) 에이전트가 존재하여 작업을 하위 에이전트(Worker)들에게 할당하고 결과를 취합하는 중앙집중형 구조이다.

  • 작동 방식: 사용자의 복잡한 요청이 들어오면 슈퍼바이저는 이를 분석하여 '검색 에이전트', '코딩 에이전트', '작문 에이전트' 중 적합한 작업자에게 작업을 위임한다. 작업자가 결과를 반환하면 슈퍼바이저는 이를 검토하고 다음 단계의 작업자를 호출하거나 최종 답변을 생성한다.
  • 구현: 슈퍼바이저 노드는 LLM을 사용하여 다음으로 실행할 작업자의 이름(예: "Researcher", "Coder")을 반환하는 라우팅 로직을 수행한다. Command 객체를 활용하여 작업자 노드로 상태를 전달하고 제어권을 넘긴다.26
  • 장점: 시스템의 상태를 중앙에서 추적하기 쉬워 관리가 용이하며, 명확한 위계질서가 필요한 작업에 적합하다.

6.2. 계층적 팀(Hierarchical Teams) 및 스웜(Swarm) 아키텍처

슈퍼바이저 없이 에이전트들이 서로 직접 소통하며 제어권을 넘기는 분산형 구조이다. 이를 '스웜(Swarm)' 또는 '네트워크' 구조라고도 한다.27

  • 핸드오프(Handoff): 에이전트 A가 작업을 수행하다가 자신의 능력을 벗어나거나 다른 전문 지식이 필요하다고 판단하면, 에이전트 B에게 제어권을 넘기는 '핸드오프'를 수행한다. LangGraph에서는 도구 호출(Tool Call)의 형태로 핸드오프를 구현할 수 있으며, Command(goto="AgentB")를 통해 명시적으로 다음 실행 주체를 지정할 수 있다.29
  • 활용 사례: 고객 지원 봇에서 '일반 상담 봇'이 해결하지 못하는 기술적 문제를 '기술 지원 봇'에게 넘기거나, '환불 처리 봇'에게 넘기는 시나리오에 적합하다.

7. LangGraph vs. 타 프레임워크 비교 분석

LangGraph는 시장의 다른 에이전트 프레임워크들과 뚜렷한 차별점을 가진다. 가장 대표적인 AutoGen, CrewAI와의 비교를 통해 LangGraph의 포지셔닝을 명확히 할 수 있다.30

특징 LangGraph AutoGen (Microsoft) CrewAI
아키텍처 철학 명시적 그래프 (Graph-based)

상태와 엣지를 코드로 정의
대화형 (Conversational)

에이전트 간 메시지 교환
역할 기반 (Role-playing)

팀 구성 및 프로세스 정의
제어 수준 최상 (Low-level)

세밀한 제어 가능, 높은 복잡도
중간

대화 패턴 설정 가능
고수준 (High-level)

빠른 설정, 낮은 제어력
상태 관리 공유 상태 (Shared State Schema) 대화 히스토리에 의존 프레임워크 내부 관리
주요 강점 프로덕션 배포, 영속성, HITL, 복잡한 로직 코드 생성, 시뮬레이션 빠른 프로토타이핑, 단순 협업
학습 곡선 가파름 (그래프 이론, 스키마 정의 필요) 중간 완만함

분석: LangGraph는 "가장 유연하지만 가장 설정할 것이 많은" 프레임워크이다. CrewAI가 미리 정의된 패턴으로 빠르게 에이전트 팀을 구성할 수 있게 해준다면, LangGraph는 그 팀이 어떻게 소통하고, 언제 멈추며, 데이터를 어떻게 저장할지 바닥부터 설계할 수 있게 해준다. 따라서 엔터프라이즈 환경에서 정교한 비즈니스 로직과 안정성을 요구하는 시스템을 구축할 때는 LangGraph가 사실상 표준(De facto standard)으로 자리 잡고 있다.1

8. 엔지니어링 모범 사례 및 결론

성공적인 LangGraph 프로젝트를 위해서는 단순한 구현을 넘어 엔지니어링 관점의 접근이 필요하다.

8.1. 모범 사례 (Best Practices)

  1. 상태 스키마의 최소화: 상태 객체는 그래프의 모든 노드를 거쳐가므로 크기를 최소화해야 한다. 대용량 문서는 외부 저장소에 두고 참조만 상태에 저장한다.13
  2. 노드의 불변성 지향: 노드 함수는 가능한 한 부작용(Side-effect)을 줄이고 입력에 대해 예측 가능한 출력을 반환하도록 설계해야 테스트가 용이하다.
  3. 명확한 종료 조건: 순환 그래프는 무한 루프에 빠질 위험이 있다. recursion_limit을 반드시 설정하고, 최대 재시도 횟수를 상태에서 카운팅하여 강제 종료시키는 안전 장치를 마련해야 한다.13
  4. 관측 가능성(Observability) 확보: LangSmith와 같은 도구를 연동하여 각 노드의 입출력, 지연 시간, 토큰 사용량을 추적해야 한다. 복잡한 그래프일수록 시각화된 트레이스(Trace) 없이는 디버깅이 불가능에 가깝다.32

8.2. 결론 및 전망

LangGraph는 LLM 애플리케이션 개발의 새로운 지평을 열었다. 결정론적인 코드와 확률론적인 LLM의 추론을 그래프라는 구조 안에서 조화롭게 융합함으로써, 개발자는 더욱 지능적이고 신뢰할 수 있는 시스템을 구축할 수 있게 되었다. 특히 내장된 영속성과 HITL 기능은 실험실의 AI를 실제 비즈니스 현장으로 가져오는 데 결정적인 역할을 하고 있다.

향후 LangGraph는 더욱 고도화된 멀티 에이전트 패턴, 서버리스 배포 환경 지원, 그리고 다양한 외부 도구 생태계와의 통합을 통해 AI 에이전트 오케스트레이션 분야의 핵심 인프라로 자리매김할 것으로 전망된다. 개발자들에게 LangGraph는 단순한 도구가 아니라, AI의 인지 과정을 설계하고 구현하는 새로운 언어가 될 것이다.

참고 자료

  1. From Basics to Advanced: Exploring LangGraph - Medium, 12월 7, 2025에 액세스, https://medium.com/data-science/from-basics-to-advanced-exploring-langgraph-e8c1cf4db787
  2. LangGraph — Architecture and Design | by Shuvrajyoti Debroy, 12월 7, 2025에 액세스, https://medium.com/@shuv.sdr/langgraph-architecture-and-design-280c365aaf2c
  3. LangGraph overview - Docs by LangChain, 12월 7, 2025에 액세스, https://docs.langchain.com/oss/python/langgraph/overview
  4. LangGraph Conditional Edges for Controllable Agent Architectures, 12월 7, 2025에 액세스, https://www.youtube.com/watch?v=coKCXQ6kfwQ
  5. What is LangGraph? - IBM, 12월 7, 2025에 액세스, https://www.ibm.com/think/topics/langgraph
  6. Graph API overview - Docs by LangChain, 12월 7, 2025에 액세스, https://docs.langchain.com/oss/python/langgraph/graph-api
  7. LangGraph Tutorial: Complete Beginner's Guide to Getting Started, 12월 7, 2025에 액세스, https://latenode.com/blog/ai-frameworks-technical-infrastructure/langgraph-multi-agent-orchestration/langgraph-tutorial-complete-beginners-guide-to-getting-started
  8. Persistence - Docs by LangChain, 12월 7, 2025에 액세스, https://docs.langchain.com/oss/python/langgraph/persistence
  9. Mastering Persistence in LangGraph: Checkpoints, Threads, and ..., 12월 7, 2025에 액세스, https://medium.com/@vinodkrane/mastering-persistence-in-langgraph-checkpoints-threads-and-beyond-21e412aaed60
  10. LangGraph - LangChain Blog, 12월 7, 2025에 액세스, https://blog.langchain.com/langgraph/
  11. Tutorial - Persist LangGraph State with Couchbase Checkpointer, 12월 7, 2025에 액세스, https://developer.couchbase.com/tutorial-langgraph-persistence-checkpoint/
  12. How do I configure checkpointing in LangGraph? - LangChain Support, 12월 7, 2025에 액세스, https://support.langchain.com/articles/1242226068-how-do-i-configure-checkpointing-in-langgraph?ref=blog.langchain.com&threadId=285c524c-7b58-44e4-89ab-210e6393cc7e
  13. LangGraph Best Practices - Swarnendu De, 12월 7, 2025에 액세스, https://www.swarnendu.de/blog/langgraph-best-practices/
  14. Use time-travel - Docs by LangChain, 12월 7, 2025에 액세스, https://docs.langchain.com/oss/python/langgraph/use-time-travel
  15. Before `interrupt_after`, is it necessary to first decide which node ..., 12월 7, 2025에 액세스, https://github.com/langchain-ai/langgraph/issues/1464
  16. AI Agents in LangGraph - DeepLearning.AI - Learning Platform, 12월 7, 2025에 액세스, https://learn.deeplearning.ai/courses/ai-agents-in-langgraph/lesson/k87e1/human-in-the-loop
  17. Interrupts - Docs by LangChain, 12월 7, 2025에 액세스, https://docs.langchain.com/oss/python/langgraph/interrupts
  18. Human-in-the-loop using server API - Docs by LangChain, 12월 7, 2025에 액세스, https://docs.langchain.com/langsmith/add-human-in-the-loop
  19. Streaming - Docs by LangChain, 12월 7, 2025에 액세스, https://docs.langchain.com/oss/python/langgraph/streaming
  20. Graphs | LangChain Reference, 12월 7, 2025에 액세스, https://reference.langchain.com/python/langgraph/graphs/
  21. Implementing Corrective RAG with LangChain & LangGraph - Chitika, 12월 7, 2025에 액세스, https://www.chitika.com/corrective-rag-langchain-langgraph/
  22. Building adaptive RAG from scratch with Command-R - YouTube, 12월 7, 2025에 액세스, https://www.youtube.com/watch?v=04ighIjMcAI
  23. Self-Reflective RAG with LangGraph - LangChain Blog, 12월 7, 2025에 액세스, https://blog.langchain.com/agentic-rag-with-langgraph/
  24. RAG Series — Part 13: Adaptive RAG | by Hariharan - Medium, 12월 7, 2025에 액세스, https://medium.com/@hari.haran849/rag-series-part-13-adaptive-rag-9e07808ce085
  25. langgraph/examples/rag/langgraph_adaptive_rag_cohere.ipynb at ..., 12월 7, 2025에 액세스, https://github.com/langchain-ai/langgraph/blob/main/examples/rag/langgraph_adaptive_rag_cohere.ipynb
  26. 🧠 Building a Supervisor Multi-Agent System with LangGraph ..., 12월 7, 2025에 액세스, https://medium.com/@mnai0377/building-a-supervisor-multi-agent-system-with-langgraph-hierarchical-intelligence-in-action-3e9765af181c
  27. LangGraph Multi-Agent Systems: Complete Tutorial & Examples, 12월 7, 2025에 액세스, https://latenode.com/blog/ai-frameworks-technical-infrastructure/langgraph-multi-agent-orchestration/langgraph-multi-agent-systems-complete-tutorial-examples
  28. Build a supervisor agent - Docs by LangChain, 12월 7, 2025에 액세스, https://docs.langchain.com/oss/python/langchain/supervisor
  29. Multi-agent - Docs by LangChain, 12월 7, 2025에 액세스, https://docs.langchain.com/oss/python/langchain/multi-agent
  30. First hand comparison of LangGraph, CrewAI and AutoGen - Aaron Yu, 12월 7, 2025에 액세스, https://aaronyuqi.medium.com/first-hand-comparison-of-langgraph-crewai-and-autogen-30026e60b563
  31. Best AI Agent Frameworks 2025: LangGraph, CrewAI, OpenAI, ..., 12월 7, 2025에 액세스, https://www.getmaxim.ai/articles/top-5-ai-agent-frameworks-in-2025-a-practical-guide-for-ai-builders/
  32. How to Continuously Improve Your LangGraph Multi-Agent System, 12월 7, 2025에 액세스, https://www.getmaxim.ai/articles/how-to-continuously-improve-your-langgraph-multi-agent-system/

 

반응형