[13. Langchain][RAG] langgraph (250620 수업)

해피해피슈크림·2025년 6월 22일

LangGraph 요약

랭그래프란?

노드와 엣지로 구성된 그래프 기반 워크플로우 프레임워크로, 복잡한 상태 기반 애플리케이션을 유연하게 설계하고 실행할 수 있다.


주요 특징

  • 비선형, 그래프 기반 워크플로우

    • 작업 단위인 노드들이 그래프 형태로 연결되어, 단순 직선 흐름이 아닌 복잡한 분기와 반복이 가능
  • 상태 기반 처리

    • 전체 애플리케이션 상태(State)를 중앙에서 관리
    • 각 노드는 이 상태를 읽고 변경하며, 상태 변화를 기반으로 다음 작업 수행
  • 조건부 분기 (동적 라우팅)

    • 노드 실행 후 결과나 상태에 따라 실행할 다음 노드를 동적으로 결정
    • 예: 조건문처럼 “만약 A이면 노드 X로, 아니면 노드 Y로” 흐름 제어 가능
  • 순환 구조(사이클) 지원

    • 그래프 내에 순환 경로를 허용해 반복 작업 구현 가능
  • 멀티 에이전트 협업 지원

    • 여러 에이전트(또는 노드)가 동시에 작업을 수행하거나 서로 상호작용 가능

랭그래프 기본 구조

구성 요소설명
노드(Node)Python 함수 형태의 작업 단위. 특정 비즈니스 로직이나 데이터 처리 담당
엣지(Edge)노드 간 연결 정의. 그래프 내 작업 흐름 및 조건부 분기 규칙을 포함할 수 있음
상태(State)애플리케이션의 현재 상태를 나타내는 공유 데이터 구조. 모든 노드가 접근, 갱신 가능
StateGraph상태 기반 계산 그래프를 정의하는 핵심 클래스. 노드와 엣지를 조합해 워크플로우 설계 및 실행 담당

동적 라우팅 (조건부 분기) 설명

  • 노드 실행 후 상태나 결과를 기반으로 다음 실행 노드를 동적으로 선택하는 기능
  • 이를 통해 복잡한 비즈니스 로직을 유연하게 표현할 수 있음
  • 예를 들어, 사용자의 입력이나 처리 결과에 따라 워크플로우 흐름이 분기됨
  • 구현 시, add_conditional_edges 같은 메서드를 사용해 조건에 따른 엣지를 정의
  • 동적 라우팅으로 인해 그래프는 고정된 선형 흐름이 아닌 상황별 맞춤 경로를 따를 수 있음

Agent 구현 관련

  • create_tool_calling_agent() 함수를 통해 툴 호출 기능을 가진 Agent 생성 가능
  • 생성된 Agent는 AgentExecutor로 실행하며, 내부에서 랭그래프 워크플로우를 따라 작업 수행

0개의 댓글