LangGraph State
2026년 7월 16일
LangGraph State
정의
State는 LangGraph 그래프 전체에서 노드들이 공유하는 데이터 구조이다.
노드는 State를 입력받고, 자신이 만든 결과를 State에 다시 반영한다.
기본 예시
Python
필드 의미
| 필드 | 타입 | 의미 |
|---|---|---|
question | str | 사용자가 입력한 질문 |
context | List[str] | 답변 생성에 참고할 문서 목록 |
answer | str | LLM이 만든 최종 답변 |
State가 변하는 흐름
초기 입력:
Python
retrieve 실행 후:
Python
generate 실행 후:
Python
중요한 규칙
노드 함수는 전체 State를 모두 반환하지 않아도 된다.
Python
이렇게 일부 필드만 반환하면 LangGraph가 기존 State에 병합한다.
Reducer와 add_messages
여러 노드가 같은 State 필드를 업데이트할 수 있다면 reducer가 필요하다.
대표 예시는 messages이다.
Python
add_messages는 새 메시지를 기존 메시지 리스트 뒤에 붙이는 reducer이다.
TEXT
특히 Parallel Agent Fan-out에서는 여러 agent가 같은 messages 필드에 결과를 반환한다.
이때 reducer가 없으면 어느 결과가 덮어써지거나 충돌할 수 있다.
add_messages를 붙이면 다음처럼 누적된다.
Mermaid스크롤로 확대 · 드래그로 이동
따라서 멀티 에이전트에서 messages를 공유 상태로 쓸 때는 보통 Annotated[..., add_messages]를 사용한다.
한 줄 정리
State는 LangGraph 노드들이 함께 들고 다니는 작업 상태이며, 각 노드는 State의 일부를 읽고 일부를 업데이트한다.
관련: