상태(State)의 형태"를 미리 정의해 놓은 클래스
대화 기록(메시지 리스트)을 그래프의 상태로 사용하고 싶을 때, 매번 직접 상태 구조를 정의하는 번거로움을 덜어주는 편리한 도구입니다.
TypedDict
, Annotated
, lambda
함수를 매번 작성할 필요가 없습니다. 그냥 MessagesState
한 줄이면 끝납니다.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]
from langgraph.prebuilt import MessagesState # MessagesState를 import
from langgraph.graph import StateGraph
# 그래프를 생성할 때 MessagesState를 바로 넘겨주면 끝!
workflow = StateGraph(MessagesState)
→ MessagesState
가 훨씬 간결하고 편리하다!!