영구 메모리를 가진 AI 챗봇 — 그 말이 실제로 사주는 것
요즘 시장에 나온 모든 챗봇이 “메모리”를 내세워요. 하지만 그 말이 뜻하는 바는 거의 다 달라요. 두 달째가 되면 봇이 당신 강아지의 이름을, 11월 내내 매달린 프로젝트를, 써달라고 부탁했던 말투를 잊어버린 걸 알아차리게 돼요. “AI가 기억을 못 해서”가 아니라 — 벤더들이 메모리의 얇은 한 조각만 내놓고 그걸 통째로 “영구적”이라 부르기 때문이에요. 여기 그 말이 뜻할 수 있는 것들의 솔직한 지도와, 약속을 지키는 챗봇을 고르는 법이 있어요.
“영구 메모리”는 2026년 챗봇 시장에서 가장 과부하된 표현이에요. OpenAI의 랜딩 페이지에도, Claude Projects 문서에도, 모든 오픈소스 출시 공지에도, 그리고 GPT-4에 프롬프트를 밀어 넣고 “컴패니언 AI”라고 부르는 모든 래퍼의 가격표에도 적혀 있어요. 기술적으로는 다들 거짓말이 아니고 — 동시에 다들 서로 다른 것을 설명하고 있어요. 아래는 진짜 장기 기억과 그 판매용 향료를 갈라놓는 프레임워크예요.
단기 vs 장기 — 모든 혼란이 시작되는 지점
단기 기억은 컨텍스트 윈도우예요. 지금 이 턴에서 당신과 모델이 방금 주고받은 모든 것이고, 토큰 한도에 묶여 있어요 — 200k든 1M이든 모델이 허용하는 만큼이요. 턴이 끝나면 모델 자체는 아무것도 간직하지 않아요. 다음 턴은 백지에서 시작하고, 이력을 다시 윈도우로 실어 오는 건 클라이언트(채팅 UI, 봇)예요.
장기 기억은 클라이언트가 모델 바깥에 — 데이터베이스, 파일, 벡터 인덱스에 — 저장해 두었다가 새 턴마다 당신을 대신해 다시 끌어오는 것이에요. 사람들이 “영구 메모리를 가진 AI 챗봇”이라고 칠 때 뜻하는 레이어가 바로 이거예요. 거대한 컨텍스트 윈도우는 영구 메모리가 아니에요. 그저 지금 이 턴을 넓힐 뿐이죠.
정직한 메모리 대화는 언제나 이 둘 중 무엇을 원하는지 고르는 데서 시작해요. 몇 달에 걸쳐 봇이 당신을 기억하길 원한다면, 당신이 원하는 건 장기 기억이에요. 아래 내용은 전부 그것에 대한 이야기예요.
영구 메모리가 실제로 가질 수 있는 네 개의 레이어
진짜 장기 기억은 하나가 아니에요. 서로 독립된 네 개의 레이어이고, 제품마다 그중 다른 부분집합만 덮어요 — 대개는 조용히 한두 개만요.
레이어 1 — 전체 대화 기록. 당신과 봇이 주고받은 모든 메시지를 원문 그대로, 검색 가능하게 보관해요. 메모리의 “하드 드라이브”죠. 덕분에 봇은 “지난달 출시에 대해 우리가 뭘 결정했지?”라는 질문에 정확한 그 턴을 찾아 답할 수 있어요. 이게 없으면 위의 모든 것은 요약본을 두고 하는 추측이 돼요.
레이어 2 — 당신에 대한 타입화된 사실. 봇이 배워가며 추출해 저장하는 구조화된 항목들이에요 — 이름, 타임존, 하는 일, 아이들의 나이, 선호도, 진행 중인 프로젝트. 원문 메시지가 아니라 정제된 사실이죠. 대부분의 벤더 “메모리” 기능이 덮는 건 딱 여기까지예요. 유용하지만, 이것만으로는 그 사실을 의미 있게 만들었던 사례를 잊어버려요.
레이어 3 — 배운 교훈. 봇이 교정을 받으면 — “아니, 내 말은 사실 X였어” — 같은 실수를 반복하지 않도록 그 실수와 수정을 적어 둬요. “학습” 레이어예요. 이걸 일급 기능으로 드러내는 벤더 제품은 거의 없고, 그래서 봇은 다음 주면 같은 종류의 오류를 조용히 되풀이해요.
레이어 4 — 흘러가는 감정 / 관심 모델. “무슨 일이 있었나”가 아니라 “지금 우리 사이가 어떤가”예요. 요즘 어떤 주제가 당신을 살아나게 하고 어떤 것이 당신을 소진시키는지, 최근의 기분, 마지막으로 편안한 대화를 나눈 지 얼마나 됐는지. 매 메시지마다 중립적인 톤으로 되돌아가는 대신 분위기를 읽는 존재로 챗봇을 바꿔주는 게 이거예요.
레이어 2만 가진 챗봇은 “당신의 이름과 직업을 기억”하고 나머지는 전부 잊어요. 네 레이어를 모두 가진 챗봇은 유능한 동료가 그러듯 당신을 기억해요.
오늘의 챗봇들은 이 네 레이어에 어떻게 대응하나
ChatGPT (메모리 ON). 레이어 2, 그것도 상한이 있어요. OpenAI는 당신의 대화에서 짧은 사실을 뽑아 작은 저장소(토큰 몇천 개)에서 새 세션에 주입해요. 질의할 수 있는 전체 기록은 없어요. 교훈 레이어도, 감정 모델도 없고요. 메모리를 끄면 레이어 2마저 사라져요.
Claude Projects. 프로젝트 단위의 라이트한 레이어 1이에요. 하나의 프로젝트 안에서 여러 대화가 공유하는 고정 문서/컨텍스트죠. 범용 비서보다는 범위가 정해진 작업 공간에 더 맞아요. 프로젝트를 넘어 이어지지 않고, 새 턴마다 전체 컨텍스트를 다시 실어 와요(Claude의 윈도우로는 괜찮지만 토큰은 비싸요).
Custom GPTs, Copilots, Poe 봇. 잘해야 레이어 2이고, 아예 없는 경우도 많아요 — 사용자별 저장소 없는 정적 시스템 프롬프트죠. 그들은 페르소나를 “알지만”, 당신을 알지는 못해요.
캐릭터형 컴패니언 앱. 대개 레이어 2 + 레이어 4의 조각이에요(참여를 위해 “기분”을 추적하죠). 언제나 벤더의 서버 위에 있고, 언제나 정책 변경의 대상이에요. 메모리가 곧 제품이지만, 그 메모리는 당신 것이 아니에요.
셀프호스팅 비서(Avelina, 오픈소스 스택, 직접 만든 것). 제대로 만들었다면 레이어 1~4가 전부 있어요. 당신의 SQLite/Postgres에 담긴 전체 기록, 타입화된 사실, 교훈 테이블, 흘러가는 상태 모델. 디스크는 당신 것이고, 벤더의 업데이트가 그걸 초기화할 수 없어요.
벤더 “메모리”가 두 달째에 조용히 무너지는 이유
상한. 벤더의 메모리 저장소는 의도적으로 작아요 — OpenAI식 메모리는 토큰 몇천 개 수준이죠. 저장소가 차면 오래된 항목부터 떨어져 나가요. 알려주지도 않아요. 그냥 봇이 당신의 11월 프로젝트를 잊어버렸다는 걸 알아차리게 될 뿐이에요.
정제 과정에서 사례가 사라져요. 레이어 2는 “사용자는 타투 스튜디오를 운영한다”를 저장해요. 당신이 가격 이야기를 하는 방식을 만들어 준 지난봄의 그 구체적인 사건은 저장하지 않고요. 사실은 살아남지만, 그 사실의 이유는 살아남지 못해요.
정책 / 모델 리셋. 벤더가 메모리 등급을 바꾸거나, 새 모델로 이전하거나, 당신이 구독을 바꾸면 — 저장소가 재구성되거나 지워져요. 그러면 봇이 갑자기 첫 주처럼 당신에게 인사해요.
교훈 레이어의 부재. 4월에 교정해 준 실수를 10월에 또 저질러요. 영구적인 교훈 저장소가 없다면 “학습”은 메커니즘이 아니라 마케팅 단어일 뿐이에요.
진짜 영구 메모리를 가진 챗봇의 내부는 어떻게 생겼나
마법은 없어요. 지루하지만 빠진 데 없는 스택이에요.
데이터베이스. 최소 세 개의 테이블을 가진 SQLite 또는 Postgres예요. messages(모든 턴, 원문 그대로), claims(출처가 붙은 사용자에 대한 타입화된 사실), lessons(실수 + 교정, 중요도 태그 포함). 선택적으로 네 번째로 state(흘러가는 감정 / 관심 채널)를 둬요.
검색. 전문 검색(개인 규모 봇이라면 SQLite의 FTS5면 충분해요)에 의미 검색용 벡터 인덱스를 더해요 — 그래야 말을 바꿔 물어도 “우리가 X에 대해 뭐라고 했더라”가 작동해요.
컨텍스트 빌더. 새 턴마다 작은 루틴이 골라요. 최근 N개의 메시지, 기록에서 뽑은 상위 K개의 의미 매치, 고정된 고중요도 교훈, 현재의 claims, 현재의 state. 이걸 하나의 시스템 메시지로 조립해 모델에 보내요. 요령의 전부가 이거예요.
기록(write-back). 답변 이후에 또 다른 루틴이 새 사실을 추출하고, 사용자가 봇을 교정했다면 교훈을 기록하고, 상태 채널을 갱신해요. 특별할 게 없어요 — 같은 모델이 백그라운드에서 돌리는 작은 프롬프트 기반 파이프라인이에요.
구체적인 파일 이름과 테이블 스키마까지 그려진 모양을 보고 싶다면, 네 가지 기억 레이어 심층 해설과 기억 기능 페이지가 그 지도예요.
선택 치트시트
“봇이 내 이름과 직업만 기억해 주면 돼요.” → 레이어 2 메모리를 가진 챗봇이면 다 돼요. ChatGPT 메모리로 충분해요.
“진행 중인 프로젝트의 세부 사항을 기억했으면 해요.” → Claude Projects, 또는 레이어 1을 갖춘 셀프호스팅 비서요.
“지난달에 한 실수를 그만 되풀이했으면 해요.” → 레이어 3이 필요해요. 그건 셀프호스팅의 영역이에요.
“세션이 아니라 몇 년 단위로 나를 진짜 알았으면 해요.” → 네 레이어 전부요. 셀프호스팅 개인 비서예요. 현재 벤더 호스팅 제품 중 넷을 정직하게 다 갖춘 건 없어요.
“메모리 위에 프라이버시까지 원해요.” → 무엇을 고르든 메모리 저장소는 당신이 소유한 기계 위에 있어야 해요. 그렇지 않으면 영구 메모리는 그저 “벤더에게 영구적인” 것일 뿐이에요.
Avelina는 어디에 들어맞나
Avelina AI는 네 개의 영구 메모리 레이어를 첫날부터 전부 내장한 챗봇이에요. 모든 대화의 기록은 당신 VPS의 SQLite 파일 안에 살아요(레이어 1). 당신에 대한 타입화된 사실은 출처가 되는 턴과 함께 claims 테이블에 자리 잡아요(레이어 2). lessons 테이블은 교정을 기록해 같은 실수가 반복되지 않게 해요(레이어 3). 여덟 채널의 상태 모델이 우리 관계가 어떻게 흘러왔는지를 추적하고요(레이어 4). 모델이 당신의 메시지를 보기도 전에, 새 턴마다 관련 조각들이 다시 채워져요 — 손으로 다시 상기시킬 필요도, 컨텍스트 윈도우 곡예도 없어요. 가이드 인스톨러로 20분쯤이면 설치되고, 그 기억은 당신의 것이에요 — 어떤 벤더도 초기화할 수 없어요. 같은 모양의 DIY 버전을 원한다면 AI가 당신을 기억하게 만드는 법 가이드가 처음부터 안내하고, 비서의 기억을 다룬 글은 같은 아이디어를 비서 관점에서 짚어요.
자주 묻는 질문
AI 챗봇에서 “영구 메모리”란 무슨 뜻인가요?
세션이 끝난 뒤에도 봇이 대화에서 무언가를 간직했다가, 당신이 다시 입력하지 않아도 나중에 그걸 사용한다는 뜻이에요. 그 “무언가”는 네 가지 가능한 레이어 중 하나예요 — 대화 기록, 사실, 교훈, 감정 상태. 대부분의 벤더는 한 레이어만 내놓아요.
긴 컨텍스트 윈도우가 곧 메모리 아닌가요?
아니에요. 100만 토큰 컨텍스트는 지금 이 턴을 넓힐 뿐, 턴과 턴 사이에는 아무것도 저장하지 않아요. 영구 메모리는 클라이언트가 당신을 대신해 새 턴마다 다시 실어 오는 것이에요.
ChatGPT와 Claude에는 진짜 영구 메모리가 있나요?
부분적으로요. ChatGPT 메모리는 상한이 있는 레이어 2를 덮어요. Claude Projects는 하나의 프로젝트 안에서 고정된 라이트 레이어 1을 덮고요. 어느 쪽도 네 레이어를 다 갖추진 않았어요.
진짜 영구 메모리를 가진 챗봇을 직접 만들 수 있나요?
네 — SQLite + FTS + 작은 벡터 인덱스 + 컨텍스트 빌더 루틴이면 돼요. DIY 가이드를 보세요.
제 챗봇은 왜 얼마 지나면 저를 “잊어버리나요”?
보통 셋 중 하나예요. 벤더 메모리 상한이 차서 조용히 덮어쓰거나, 정제된 사실이 그걸 의미 있게 만든 사례를 떨어뜨렸거나, 정책/모델 업데이트가 저장소를 재구성했거나. 당신이 소유한 하드웨어 위의 메모리 저장소는 이 셋을 모두 피해요.
“이름을 불러주는 채팅”이 아니라 “몇 년을 함께한 동료”의 모양을 원하시나요? 기억과 지식 그래프 페이지가 네 레이어가 어떻게 엮여 있는지 보여줘요.