LangGraph 에이전트에 대화 기억력을 부여하는 단 한 줄의 어노테이션
The 1-line annotation that gives your LangGraph agent conversation memory
핵심 요약
LangGraph에서 대화 기록이 유지되지 않는 문제를 해결하는 add_messages 어노테이션 활용법 공유.
- 대화 기억력 — LangGraph 에이전트가 이전 대화를 기억하지 못하는 문제를 해결함.
- add_messages 어노테이션 — 상태 업데이트 시 메시지를 덮어쓰지 않고 추가하도록 설정함.
- TypedDict 기본값 — 기본적으로 마지막 메시지만 남는 동작 방식을 이해해야 함.
- 문서의 한계 — 공식 문서에 중요 내용이 파편화되어 있어 직접 삽질이 필요함.
ReAct 에이전트가 단독 질문은 잘 답하는데 후속 질문을 못 처리하는 버그를 겪음.
"15 * 127이 뭐야?" → "1905" ✓
"거기에 10 더해줘" → "무슨 말인지 모르겠어" ✗
에이전트가 메시지 간의 맥락을 잃어버림. 이틀 동안 디버깅함.
해결책은 어노테이션 한 줄임:
messages: Annotated[list, add_messages]
이걸 안 쓰면 LangGraph의 기본 동작은 상태 업데이트마다 메시지 필드를 교체해버림. 에이전트가 가장 최근 메시지만 보고 이전 기록을 모름.
add_messages를 리듀서로 쓰면, 새로운 메시지가 기존 리스트에 추가됨. 에이전트가 전체 대화를 볼 수 있음.
한 줄인데 알아내는 데 이틀 걸림. 문서에 한 문장으로 대충 적혀 있음.
레포 (30번째 줄): https://github.com/dunjeonmaster07/react-agent/blob/main/src/agent.py
LangGraph에서 상태 관리하다가 당황한 사람 또 있음? 다른 기본 설정 중에 놀랐던 거 있으면 알려줘.

