본문으로 건너뛰기
공원나연조회 1

Neo4j Agent Memory를 활용한 AI 에이전트 단기 및 장기 메모리 구현 가이드

Neo4j Agent Memory 라이브러리를 사용하여 AI 에이전트의 대화 맥락을 지식 그래프 구조로 저장하고 단기/장기 메모리를 체계적으로 관리하는 방법을 실습합니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

AI 에이전트의 기억력을 구조화하기 위해 Neo4j 그래프 데이터베이스를 활용하는 실전 튜토리얼을 제공합니다. 대화 내용에서 엔티티를 자동으로 추출하여 메시지 간의 관계를 형성하는 단기 메모리와, 사실 정보 및 사용자 선호도를 별도로 관리하는 장기 메모리의 구현 과정을 상세히 다룹니다. Neo4j Agent Memory 라이브러리를 통해 복잡한 쿼리 없이도 파이썬 환경에서 지식 그래프 기반의 메모리 시스템을 구축할 수 있음을 확인했습니다. 이를 통해 에이전트는 단순한 텍스트 히스토리를 넘어 엔티티 간의 연결성을 바탕으로 한 고도화된 맥락 검색이 가능해집니다.

챕터별 상세

00:00

영상 미리보기 및 개요

Neo4j Agent Memory를 활용하여 AI 에이전트의 단기 및 장기 메모리를 구현하는 전체 과정을 요약한다. 대화에서 엔티티를 추출하고 이를 그래프 데이터베이스에 저장하여 맥락을 유지하는 핵심 메커니즘을 시각적으로 보여준다. 3부작 중 2편으로, 실제 파이썬 코드를 통한 데이터 적재와 조회에 집중한다.
00:35

시작 및 환경 세팅

실습을 위해 Neo4j AuraDB 인스턴스를 생성하고 파이썬 개발 환경을 구축한다. `neo4j-agent-memory` 라이브러리를 설치하고 환경 변수에 데이터베이스 접속 정보를 설정한다. AuraDB의 무료 티어를 활용하여 클라우드 환경에서 즉시 그래프 DB를 사용할 수 있는 상태를 만든다.

AuraDB는 Neo4j의 공식 클라우드 서비스로, 로컬 설치 없이도 그래프 데이터베이스를 운영할 수 있게 해준다.

python
from neo4j_agent_memory import Neo4jAgentMemory

memory = Neo4jAgentMemory(
    url=NEO4J_URI,
    username=NEO4J_USERNAME,
    password=NEO4J_PASSWORD
)

Neo4j Agent Memory 라이브러리를 초기화하고 데이터베이스에 연결하는 코드

04:20

메시지 저장 및 엔티티 추출

사용자의 입력 메시지를 `add_message` 함수로 전달하여 단기 메모리에 저장한다. 내부적으로 LLM이 작동하여 문장 속에서 '나연', '서울', '파이썬'과 같은 엔티티를 자동으로 식별한다. 추출된 엔티티는 노드로 생성되며, 해당 메시지와 'MENTIONS' 관계를 통해 연결되는 구조를 형성한다.

엔티티 추출은 비정형 텍스트를 구조화된 데이터로 변환하는 지식 그래프 구축의 첫 단계이다.

python
memory.add_message(
    user_id="user123",
    session_id="session456",
    role="user",
    content="나연은 서울에 살고 있고 파이썬을 좋아해"
)

사용자의 메시지를 저장하고 자동으로 엔티티를 추출하여 그래프에 반영하는 코드

09:40

Neo4j에서 저장 결과 확인

Neo4j Bloom과 Browser 도구를 사용하여 저장된 데이터의 그래프 구조를 시각화한다. 메시지 노드와 엔티티 노드가 어떻게 연결되어 있는지 확인하며 데이터 모델의 정합성을 검토한다. 사용자가 입력한 텍스트가 실제 그래프 상에서 노드와 엣지로 변환된 모습을 직접 확인한다.

Neo4j Bloom은 그래프 데이터를 직관적으로 탐색하고 시각화할 수 있는 비즈니스 인텔리전스 도구이다.

16:47

엔티티 연결(MENTIONS) 누락 버그 해결

메시지 저장 시 특정 엔티티와 메시지 사이의 'MENTIONS' 관계가 생성되지 않는 문제를 발견하고 해결한다. 라이브러리 내부의 프롬프트나 처리 로직에서 엔티티 매칭이 정확히 이루어지도록 코드를 수정한다. 관계가 누락되면 검색 시 맥락을 잃을 수 있으므로 그래프의 연결성을 보장하는 것이 중요하다.
19:20

장기 메모리(preference, fact) 저장 및 컨텍스트 검색

단순 대화 이력을 넘어 영구적으로 보존해야 할 장기 메모리의 개념을 정의한다. 사용자의 고정된 정보인 'Fact'와 개인적 취향인 'Preference'를 구분하여 저장하는 전략을 수립한다. 이를 통해 에이전트가 세션이 바뀌어도 사용자를 기억하고 맞춤형 대응을 할 수 있게 한다.

장기 메모리는 에이전트의 개인화(Personalization) 성능을 결정짓는 핵심 요소이다.

21:00

엔티티 및 관계 수동 추가

`add_entity`와 `add_relationship` 함수를 사용하여 그래프에 직접 데이터를 입력한다. 자동 추출에 의존하지 않고 명시적으로 '나연'과 '파이썬' 사이에 'LIKES' 관계를 정의하는 방식을 실습한다. 데이터의 정확도를 높이기 위해 관리자가 직접 지식 그래프를 보정하는 시나리오에 유용하다.
22:19

사실 정보(Fact) 추가 및 조회

`add_fact` 함수를 통해 특정 엔티티에 종속된 사실 정보를 텍스트 형태로 저장한다. 저장된 정보는 `get_facts` 함수를 사용하여 엔티티 이름을 기준으로 다시 불러올 수 있다. '나연은 AI 엔지니어이다'와 같은 명제를 저장하여 에이전트의 지식 베이스로 활용한다.
python
memory.add_fact(entity_name="나연", fact="나연은 AI 엔지니어이다")
memory.add_preference(entity_name="나연", preference="나연은 다크 모드를 선호함")

특정 엔티티에 대한 사실 정보와 사용자 선호도를 장기 메모리에 저장하는 코드

27:08

사용자 선호도(Preference) 저장 및 조회

`add_preference` 함수를 사용하여 사용자의 개인적 취향이나 설정 정보를 저장한다. '다크 모드 선호'와 같은 정보를 저장하면 추후 에이전트가 UI나 답변 스타일을 결정할 때 참고할 수 있다. 저장된 선호도는 리스트 형태로 반환되어 에이전트의 시스템 프롬프트에 주입될 수 있다.
30:17

엔티티 검색 vs 통합 컨텍스트 검색

특정 엔티티의 정보만 가져오는 `search_entities`와 전체 맥락을 구성하는 `get_context`의 차이점을 비교한다. `get_context`는 관련 엔티티, 최근 메시지, 사실 정보, 선호도를 모두 취합하여 LLM에게 전달할 최적의 프롬프트 재료를 생성한다. 검색 결과의 풍부함에 따라 에이전트 답변의 질이 달라짐을 확인한다.

컨텍스트 검색은 RAG 시스템에서 관련성 높은 정보를 추출하는 핵심 프로세스이다.

34:25

전체 컨텍스트 그래프 조회 및 마무리

실습을 통해 구축된 전체 지식 그래프의 형상을 최종적으로 확인하며 튜토리얼을 마무리한다. 단기 메모리와 장기 메모리가 유기적으로 연결되어 에이전트의 지능을 높이는 구조를 정리한다. 다음 편에서 다룰 실제 에이전트 연동 및 활용 방안을 예고한다.

용어 해설

지식 그래프(Knowledge Graph)
엔티티(노드)와 그들 사이의 관계(엣지)를 그래프 구조로 표현한 데이터베이스 모델이다. AI 에이전트가 단순 텍스트가 아닌 구조화된 정보를 이해하고 검색할 수 있게 하여 답변의 정확도와 맥락 이해도를 높이는 역할을 한다.
엔티티 추출(Entity Extraction)
비정형 텍스트 데이터에서 인물, 장소, 조직, 개념 등 의미 있는 고유 명사를 식별해내는 과정이다. 지식 그래프 구축의 핵심 단계로, 추출된 엔티티는 그래프의 노드가 되어 다른 정보와 연결된다.
아우라DB(AuraDB)
Neo4j에서 제공하는 클라우드 기반의 완전 관리형 그래프 데이터베이스 서비스이다. 별도의 서버 구축 없이 지식 그래프를 운영할 수 있으며, AI 에이전트의 메모리 저장소로 활용하기에 적합한 인프라를 제공한다.
단기 메모리(Short-term Memory)
현재 진행 중인 대화의 흐름과 메시지 이력을 일시적으로 저장하는 기능이다. 에이전트가 바로 직전의 질문이나 맥락을 기억하여 자연스러운 대화를 이어갈 수 있도록 돕는다.
장기 메모리(Long-term Memory)
사용자의 선호도, 고정된 사실 정보 등 시간이 지나도 유지되어야 하는 정보를 영구적으로 저장하는 기능이다. 대화가 종료된 후에도 정보를 보존하여 추후 개인화된 서비스를 제공하는 기반이 된다.
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 07. 06.수집 2026. 07. 06.출처 타입 YOUTUBE

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.