AI VIDEO BRIEFING

AI 에이전트 메모리 구현: LangGraph 단기 기억과 스레드 ID로 대화 기억시키기

AI 에이전트가 대화를 기억하게 만드는 단기 메모리를 LangGraph의 InMemorySaver와 스레드 ID로 구현하는 방법을, 6가지 메모리 유형과 함께 코드로 정리했다.

AI 에이전트에 '기억'을 심는 법: LangGraph 단기 메모리 실전 정리 영상 대표 이미지

핵심 메시지

  • AI 에이전트의 메모리는 단기, 장기, 프로필, 에피소드, 의미, 절차의 6가지 유형으로 나뉜다.
  • 단기 메모리(대화 메모리)는 같은 세션 안의 대화만 기억하며, 세션이나 프로그램을 종료하면 RAM에 있던 내용이 모두 사라진다.
  • LangGraph의 InMemorySaver(체크포인터)를 에이전트에 연결하면 단기 메모리가 활성화된다.
  • 같은 대화로 묶이려면 모든 메시지가 동일한 스레드 ID를 사용해야 하며, 스레드 ID가 다르면 별개의 대화로 취급된다.
  • 시스템 프롬프트에 '이전 답변이나 도구 결과를 참조하면 도구를 다시 호출하지 말고 대화 메모리에서 답하라'는 규칙을 넣어 불필요한 도구 재호출을 막는다.

쉽게 이해하기

이 영상은 'You Can Automate' 채널의 AI 에이전트 시리즈 다섯 번째 편으로, 앞선 편에서 만든 에이전트에 '메모리' 기능을 붙이는 과정을 다룬다. 발표자는 에이전트가 도구를 호출하는 것까지는 배웠으니 이번에는 대화를 기억하게 만드는 단기 메모리에 집중한다고 설명한다.

먼저 에이전트가 가질 수 있는 메모리를 여섯 가지로 정리한다. 단기 메모리는 현재 세션의 대화만 기억하고, 장기 메모리는 세션을 넘어 정보를 보관한다. 프로필 메모리는 사용자의 선호와 특성을, 에피소드 메모리는 생일이나 여행 날짜 같은 특정 사건을, 의미 메모리는 시간과 무관한 사실과 개념을, 절차 메모리는 작업을 수행하는 방법과 워크플로를 기억한다.

이번 편의 핵심은 단기 메모리다. 단기 메모리는 같은 스레드(대화) 안의 메시지를 기억하며, 데이터가 RAM에 저장되기 때문에 세션을 닫거나 프로그램을 종료하면 내용이 사라진다. 발표자는 사용자가 보낸 메시지를 InMemorySaver에 저장하고, 다시 물으면 그 메모리에서 값을 가져와 응답하는 구조를 그림으로 설명한다.

구현 단계에서는 앞선 편의 Llama 3.2 대신 메모리 예제에 더 적합하다고 소개한 Ollama의 Qwen 3 모델(약 5.2GB)을 내려받아 사용한다. requirements.txt에 LangGraph를 추가해 설치한 뒤, 시스템 프롬프트를 수정하고 InMemorySaver 객체를 만들어 에이전트에 checkpointer로 연결한다. 이어 recursion limit과 함께 thread_id를 담은 config를 만들어 에이전트 실행에 전달한다.

마지막으로 두 개의 시나리오로 메모리를 검증한다. 두 수를 더하게 한 다음 '이전 결과에 8을 곱하라'고 하면 에이전트가 앞선 계산 결과를 기억해 곱셈 도구를 호출한다. 또 이름을 알려준 뒤 '내 이름이 뭐냐'고 물으면 같은 스레드에서 이름을 기억해 답한다. 발표자는 단기 메모리가 개발과 단일 세션 앱에 적합하지만 영속적 메모리에는 부적합하다는 한계도 함께 짚는다.

주요 인사이트

  • 메모리를 유형별로 나눠 이해하면, 지금 필요한 것이 '대화 유지'인지 '사용자 정보 저장'인지에 따라 단기·장기·프로필 메모리 중 무엇을 붙일지 판단하기 쉬워진다.
  • InMemorySaver는 이름 그대로 RAM 기반이라 빠르고 단순하지만, 프로세스를 종료하면 기억이 사라지므로 프로토타이핑과 단일 세션 용도로만 써야 한다.
  • 스레드 ID는 대화를 구분하는 열쇠다. 같은 ID를 유지하면 맥락이 이어지고, ID를 바꾸면 완전히 새로운 대화로 시작된다.
  • 시스템 프롬프트에 '이전 결과는 메모리에서 답하라'는 규칙을 명시하면, 이미 답한 내용을 위해 도구를 다시 호출하는 낭비를 줄일 수 있다.
  • 메모리 예제에서 모델을 Llama 3.2에서 Qwen 3으로 바꾼 것처럼, 같은 에이전트라도 작업 성격에 맞춰 로컬 LLM을 교체하는 선택이 결과 품질에 영향을 준다.

자주 묻는 질문

AI 에이전트의 단기 메모리는 정확히 무엇을 기억하나요?

같은 세션(같은 스레드) 안에서 오간 대화 메시지와 도구 호출 결과를 기억합니다. 데이터는 RAM에 저장되며, 세션을 닫거나 프로그램을 종료하면 모두 사라집니다.

단기 메모리는 어떤 도구로 구현하나요?

LangChain/LangGraph의 InMemorySaver를 사용합니다. 이를 체크포인터라고 부르며, 에이전트에 checkpointer로 연결하면 대화가 메모리에 저장됩니다.

스레드 ID는 왜 중요한가요?

같은 대화로 묶이려면 모든 메시지가 동일한 스레드 ID를 사용해야 하기 때문입니다. 스레드 ID가 다르면 에이전트는 이를 별개의 대화로 보고 이전 맥락을 참조하지 않습니다.

단기 메모리를 실무에 그대로 쓰기 어려운 이유는 무엇인가요?

RAM에만 저장되어 앱을 종료하면 기억이 사라지기 때문입니다. 개발과 단일 세션 앱에는 적합하지만, 세션을 넘어 유지해야 하는 영속적·장기 메모리에는 맞지 않습니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식