MessagesState

채정윤·2025년 6월 16일
0

AI

목록 보기
16/20

MessagesState

상태(State)의 형태"를 미리 정의해 놓은 클래스

대화 기록(메시지 리스트)을 그래프의 상태로 사용하고 싶을 때, 매번 직접 상태 구조를 정의하는 번거로움을 덜어주는 편리한 도구입니다.

핵심 특징과 장점

  • 편의성: 대화형 에이전트의 상태를 정의할 때 TypedDict, Annotated, lambda 함수를 매번 작성할 필요가 없습니다. 그냥 MessagesState 한 줄이면 끝납니다.
  • 가독성: 코드만 봐도 "이 그래프는 대화 기록을 상태로 관리하는구나"라는 의도를 명확하게 알 수 있습니다.
  • 표준화: LangGraph를 사용하는 여러 프로젝트에서 일관된 방식으로 대화 상태를 관리할 수 있게 해줍니다.
  • 자동 누적 기능 (Reducer): 개발자가 직접 상태를 업데이트하는 로직을 짤 필요 없이, 노드가 메시지를 반환하기만 하면 LangGraph가 알아서 대화 기록을 차곡차곡 쌓아줍니다.

사용법 비교

  • TypedDict
    from typing import TypedDict, Annotated, List
    from langchain_core.messages import BaseMessage
    
    # MessagesState는 아래와 같은 구조를 가집니다.
    class AgentState(TypedDict):
        # 'messages'라는 키를 가지며,
        # 값은 BaseMessage 객체들의 리스트입니다.
        messages: Annotated[List[BaseMessage], lambda x, y: x + y]
  • MessagesState
    from langgraph.prebuilt import MessagesState # MessagesState를 import
    from langgraph.graph import StateGraph
    
    # 그래프를 생성할 때 MessagesState를 바로 넘겨주면 끝!
    workflow = StateGraph(MessagesState)

MessagesState가 훨씬 간결하고 편리하다!!

0개의 댓글