
【AI 에이전트 해부학: 제6회】 기억과 망각의 조화: Memory & RAG Engineering 실전
요약
AI 에이전트의 지속적인 기억을 구현하기 위한 단기 메모리와 장기 메모리(RAG)의 하이브리드 설계 방식을 다룹니다. 대화 이력을 요약하여 컨텍스트 윈도우를 효율적으로 관리하는 '기억의 요약(Memory Consolidation)' 패턴을 설명합니다.
핵심 포인트
- 단기 메모리는 컨텍스트 윈도우를 활용한 실시간 대화 흐름 유지
- 장기 메모리는 Vector DB를 활용한 외부 지식 및 과거 이력 저장
- Memory Consolidation을 통해 토큰 비용 절감 및 컨텍스트 관리
- 하이브리드 메모리 설계를 통한 장수 에이전트 구현 가능
【
신연재: AI 에이전트 해부학】 ※본 연재는, 아무 말도 할 수 없는 텅 빈 '챗봇 (Chatbot)' 앞에 서서, 그에게 생명을 불어넣으며 자신의 의지로 움직이는 'AI 에이전트 (AI Agent)'로 파트별로 만들어가는 개발 다큐멘터리입니다.
지난 회차에서 우리는 로봇의 시스템에 'Loop Control (안전 퓨즈)'와 '샌드박스 (Sandbox, 무균 실험실)'를 장착하여, 그가 스스로 코드를 실행하더라도 호스트 PC나 운영 환경을 절대 파괴하지 않는 '안전성'을 구현했습니다.
하지만 안전하게 가동되기 시작한 그에게는 아직 치명적인 결핍이 있습니다.
그것은 '어제 사용자와 무엇을 이야기했는지', '10분 전에 도구를 실행해서 무엇을 알아냈는지'를 기억하기 위한 지속적인 기억 장치가 없다는 점입니다.
대화의 왕복이 늘어남에 따라, 그는 오래된 대화를 컨텍스트 윈도우 (Context Window)의 한계 밖으로 흘려보내며 깨끗이 잊어버리고 맙니다.
이번에는 한정된 뇌의 공간을 소비하지 않고, 과거의 사건이나 얻은 지식을 데이터베이스에 보관하고 필요에 따라 불러오는 뇌의 기억 저장소, "Memory & RAG Engineering" 아카이브 블록을 로봇의 머리 슬롯에 장착합니다.
시간과 언어의 벽을 넘어, 그에게 '경험으로부터 배우는 지혜'를 선사합시다.
인간과 마찬가지로 자율적으로 움직이는 AI 에이전트에게도 '단기 메모리 (Short-Term Memory, 채팅 이력)'와 '장기 메모리 (Long-Term Memory, 외부 지식 베이스)' 두 가지를 조합한 하이브리드 설계가 필요합니다.

※그림: 단기 메모리 (채팅 이력)와 장기 메모리 (Vector DB)가 합류하여, 오래된 이력을 요약 (Consolidation)으로 압축 유지하는 하이브리드 구조 (AI 생성 다이어그램)
단기 메모리 (Short-Term Memory):
지금 바로 진행 중인 대화의 흐름 (최근 채팅의 응답)을 그대로 기억하기 위한 일시적 기억. 이는 LLM의 프롬프트 컨텍스트 윈도우 (Context Window)에 직접 버퍼 (Buffer)로서 채워집니다. -
장기 메모리 (Long-Term Memory / RAG):
과거 대화의 전체 이력 또는 공유 파일 등의 지식. 이것들은 모두 '벡터 데이터 (Vector Data, 수치화된 의미의 덩어리)'로 변환되어 외부 데이터베이스 (Vector DB)에 보관됩니다.
채팅이 길어지면 단기 메모리의 데이터량이 불어나 LLM을 구동하기 위한 이용 요금 (토큰 소비량)이 폭발적으로 높아집니다.
이를 방지하고 에이전트를 장기적으로 활동시키기 위한 가장 중요한 패턴이 바로 "Memory Consolidation (기억의 요약·압축)"입니다.
【Memory Consolidation 실행 사이클】
1. 채팅 이력의 왕복 수가 일정 수준(예: 5회 왕복)을 초과한다.
2. 프로그램 백그라운드에서 "지금까지의 대화 중 중요한 논점을 한 문장으로 요약해 주세요"라고 LLM에 개별적으로 명령을 보낸다 (비동기 요약 처리).
...
이 "불필요한 오래된 생텍스트를 잊고, 본질적인 요약만을 남기는" 망각의 조화를 통해, 에이전트의 컨텍스트 사용량은 극히 낮은 수준으로 일정하게 유지되며, 수천 번의 채팅을 반복해도 프리즈(Freeze)되지 않는 장수 에이전트가 완성됩니다.
채팅 이력이 일정량을 초과했을 때, 오래된 로그를 삭제하고 한 문장의 '기억 다이제스트'로 변환하여 대화의 문맥을 경량으로 계속 유지하는 미니 프로그램입니다.
직접 환경에서 실행해 보세요.
# 에이전트의 단기 메모리 (최근 채팅 이력)
chat_history = [
{"role": "user", "content": "제 이름은 타로입니다."},
...
이 코드를 실행하면 과거의 잡다한 대화 이력이 삭제되어 하나의 '요약 텍스트 (summary)'로 변환되고, 컨텍스트에 전달할 버퍼가 대폭 클리닝되는 동작을 확인할 수 있습니다.

※이미지: 로봇의 뇌 블록에 과거의 로그나 경험을 캡슐 형태로 정리·格納하는 아카이브 유닛을 삽입하는 이미지 (AI 생성 이미지)
이로써 로봇에 "Memory & RAG Engineering" 아카이브 슬롯이 장착되었으며, 과거의 대화나 도구의 결과로부터 배우고 지능의 역사를 영원히 축적하는 '기억'이 구현되었습니다.
하지만 기억과 도구를 가진 그에게는 아직 '스스로 복잡한 상황을 판정하고, 실행 경로를 그물망처럼 분기시켜 나아가는' 시스템으로서의 지도가 없습니다.
그가 자신의 의지로 "에러가 발생하면 이 단계로 돌아간다", "성공하면 저 승인 단계로 진행한다"와 같은 복잡한 워크플로우 (Workflow)를 제어할 수 있게 만들지 않으면, 고도의 실무를 수행할 수 없습니다.
다음, 제7회.
일직선의 단순한 처리 플로우 (Processing Flow)에서 벗어나, 그래프 구조 (Graph Structure)를 통해 의사결정 경로를 자유자재로 조건 분기 및 제어하는 "State & Graph Routing의 제어 기술"의 뇌내 맵을 그에게 장착합니다.
지능의 행동 경로가 직선에서 그물망 (Network)으로 확장되는 순간으로 나아갑시다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기